Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pictures;
- import data.ListItem;
- import Aufgabe_1.B.B;
- import Aufgabe_1.A.*;
- import Aufgabe_1.C.*;
- import Aufgabe_1.D.D;
- import model.GeometricModelElement;
- import java.util.concurrent.ThreadLocalRandom;
- /**
- * Methods for manipulating an existing picture by creating a new one
- *
- * @author Nora Wester
- */
- public class PictureManipulator {
- /**
- * manipulates the given picture in the manner, that every element is duplicated and moved
- *
- * @param g
- * original picture
- * @return the new changed picture
- */
- public static ListItem<GeometricModelElement> doSomething(ListItem<GeometricModelElement> g) {
- ListItem<GeometricModelElement> newGraphic = new ListItem<GeometricModelElement>(null);
- for (int j = 1; j <= g.getSize(); j++) {
- GeometricModelElement e = g.get(j);
- // draw the original element
- newGraphic.insert(e);
- // clone it
- GeometricModelElement cloneE = e.cloneElement();
- // and move it
- cloneE.move(1, 1);
- newGraphic.insert(cloneE);
- }
- return newGraphic;
- }
- public static ListItem<GeometricModelElement> nextElement(ListItem<GeometricModelElement> g)
- {
- A<GeometricModelElement> newB = new A<>();
- newB.ringShiftLeft(g);
- return g;
- }
- public static ListItem<GeometricModelElement> removeFirst(ListItem<GeometricModelElement> g)
- {
- B<GeometricModelElement> newB = new B<>();
- newB.removeHead(g);
- return g;
- }
- public static ListItem<GeometricModelElement> lastElement(ListItem<GeometricModelElement> g)
- {
- B<GeometricModelElement> newB = new B<>();
- newB.ringShiftRight(g);
- return g;
- }
- public static ListItem<GeometricModelElement> invert(ListItem<GeometricModelElement> g)
- {
- C<GeometricModelElement> newC = new C<>();
- newC.invert(g);
- return g;
- }
- public static ListItem<GeometricModelElement> random(ListItem<GeometricModelElement> g)
- {
- D<GeometricModelElement> newD = new D<>();
- C<GeometricModelElement> newC = new C<>();
- Object[] arr = newD.listIntoArray(g, GeometricModelElement.class);
- // int rnd1, rnd2;
- // for(int i=0; i < 50; i++) {
- // GeometricModelElement swap;
- // rnd1 = ThreadLocalRandom.current().nextInt(0, arr.length);
- // rnd2 = ThreadLocalRandom.current().nextInt(0, arr.length);
- // swap = arr[rnd1];
- // arr[rnd1] = arr[rnd2];
- // arr[rnd2] = swap;
- // }
- // g = newC.arrayIntoList(arr);
- return g;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement