1 package de.lathanda.eos.geo;
3 import de.lathanda.eos.base.FillStyle;
4 import de.lathanda.eos.base.LineStyle;
5 import de.lathanda.eos.base.MutableColor;
6 import de.lathanda.eos.base.Picture;
7 import de.lathanda.eos.base.layout.BalancePoint;
8 import de.lathanda.eos.base.layout.BoundingBox;
9 import de.lathanda.eos.base.layout.Transform;
10 import de.lathanda.eos.base.util.ConcurrentLinkedList;
11 import de.lathanda.eos.geo.exceptions.RecursiveGroupException;
49 figure.replaceGroup(
this);
76 f.restoreTransformation(
this);
100 super.fireLayoutChanged();
107 }
else if (m instanceof
Group) {
108 ((
Group) m).setLineColor(color);
117 }
else if (m instanceof
Group) {
118 ((
Group) m).setLineStyle(linetype);
127 }
else if (m instanceof
Group) {
128 ((
Group) m).setLineWidth(linewidth);
137 }
else if (m instanceof
Group) {
138 ((
Group) m).setFillStyle(filltype);
147 }
else if (m instanceof
Group) {
148 ((
Group) m).setFillColor(color);
173 private void setCenterInternal(
double x,
double y) {
174 synchronized (
this) {
175 double dx =
getX() - x;
176 double dy =
getY() - y;
177 members.forEach(figure -> figure.moveInternal(dx, dy));
191 setCenterInternal(x, y);
199 private void recenter() {
204 setCenterInternal(wp.getPoint().getX() +
getX(), wp.getPoint().getY() +
getY());
214 bp = figure.getBalancePoint();
216 if (figureWeight > 0) {
217 weight += figureWeight;
218 x += bp.
getX() * figureWeight;
219 y += bp.
getY() * figureWeight;
224 return new BalancePoint(weight, x / weight, y / weight);
235 bound.
add(figure.calculateBoundingBox(t));
void setFillColor(MutableColor color)
void setLineColor(MutableColor color)
void setFillStyle(FillStyle filltype)
void addFigure(Figure figure)
FigureGroup getParentGroup()
void scaleInternal(double factor)
ConcurrentLinkedList< Figure > members
BalancePoint getBalancePoint()
void copyFigure(Figure figure)
void setCenter(double x, double y)
void centerBalancePoint()
void removeFigure(Figure go)
void setLineWidth(double linewidth)
ConcurrentLinkedList< Figure > getMembers()
void setLineStyle(LineStyle linetype)
BoundingBox calculateBoundingBox(Transform base, Transform own)
void drawObject(Picture p)