public ShadowUtil(AABB scene) { assert scene != null; this.scene = scene.getCorners(); } //TODO auf Szenen ausmasse und sonnen rotation optimieren
@Override public void reset() { matrix.loadIdentity(); } }
public MatrixCache(ProjectionMatrix pro) { view = new ViewMatrix(); view.loadIdentity(); projektion = pro; listener = new LinkedList<>(); AABB scene = new AABB(new Vector3(), new Vector3()); // sutil = new ShadowUtil(scene); // addListener(sutil); // sutil.changeOccured(new MatrixEvent(this, VIEW)); }
@Override public Iterator<LineSegment<E>> iterator() { return getLineSegmentIterator(); } };
public MatrixCache() { this(new ProjectionMatrix()); }
@Override public void scale(ImmutableVector<Vector3> delta) { matrix.scale(delta); }
public Matrix getNormal() { if (n == null) { n = model.getNormalMatrix(); } return n; } }
@Override public void shiftRelativePosition(ImmutableVector<Vector3> delta) { matrix.translate(delta); }
@Override public void rotateEuler(ImmutableVector<Vector3> delta) { matrix.rotateEuler(delta); }
@Override public Quaternion getRotation() { return matrix.getRotation(); }
@Override public void rotate(Quaternion rotation) { matrix.rotate(rotation); }
@Override public void setWorldPosition(ImmutableVector<Vector3> pos) { matrix.setWorldTranslate(pos); }
@Override public void setRotation(Matrix4 rot) { matrix.setRotation(rot); }
@Override public Vector3 getPosition() { return matrix.getTranslation(); }
@Override public void shiftWorldPosition(ImmutableVector<Vector3> delta) { matrix.worldTranslate(delta); }
public SimpleTransformation() { matrix = new ModelMatrix(); }
public Circle getScaledCircle(float scale) { return new Circle(center, radius * scale); }
public ModelMatrix() { loadIdentity(); }
@Override public void scale(float delta) { matrix.scale(delta); }