private static YoArtifactOval yoArtifactOvalFromMessage(String name, YoVariable<?>[] vars, double[] consts, AppearanceDefinition appearance) { return new YoArtifactOval(name, (YoDouble) vars[0], (YoDouble) vars[1], (YoDouble) vars[2], appearance.getColor().get()); }
private static YoArtifactPosition yoArtifactPositionFromMessage(String name, YoVariable<?>[] vars, double[] consts, AppearanceDefinition appearance) { return new YoArtifactPosition(name, (YoDouble) vars[0], (YoDouble) vars[1], YoGraphicPosition.GraphicType.values()[(int) (double) consts[1]], appearance.getColor().get(), consts[0]); }
private static YoArtifactPolygon yoArtifactPolygonFromMessage(String name, YoVariable<?>[] vars, double[] consts, AppearanceDefinition appearance) { ReferenceFrame referenceFrame = ReferenceFrame.getWorldFrame(); int i = 0; YoInteger yoNumVertices = (YoInteger) vars[i++]; ArrayList<YoFramePoint2D> yoFramePoints = new ArrayList<YoFramePoint2D>(); while (i < vars.length) { yoFramePoints.add(new YoFramePoint2D((YoDouble) vars[i++], (YoDouble) vars[i++], referenceFrame)); } YoFrameConvexPolygon2D convexPolygon2d = new YoFrameConvexPolygon2D(yoFramePoints, yoNumVertices, referenceFrame); return new YoArtifactPolygon(name, convexPolygon2d, appearance.getColor().get(), consts[0] > 0); }
private static YoArtifactLineSegment2d yoArtifactLineSegment2DFromMessage(String name, YoVariable<?>[] vars, double[] consts, AppearanceDefinition appearance) { YoFrameLineSegment2D segment = new YoFrameLineSegment2D((YoDouble) vars[0], (YoDouble) vars[1], (YoDouble) vars[2], (YoDouble) vars[3], ReferenceFrame.getWorldFrame()); return new YoArtifactLineSegment2d(name, segment, appearance.getColor().get()); }
@Override public Artifact createArtifact() { MutableColor color3f = appearance.getColor(); YoDouble endPointX = new YoDouble(getName() + "ArtifactEndPointX", base.getYoX().getYoVariableRegistry()); YoDouble endPointY = new YoDouble(getName() + "ArtifactEndPointY", base.getYoY().getYoVariableRegistry()); base.getYoX().addVariableChangedListener(v -> endPointX.set(base.getX() + vector.getX())); base.getYoY().addVariableChangedListener(v -> endPointY.set(base.getY() + vector.getY())); vector.getYoX().addVariableChangedListener(v -> endPointX.set(base.getX() + vector.getX())); vector.getYoY().addVariableChangedListener(v -> endPointY.set(base.getY() + vector.getY())); return new YoArtifactLineSegment2d(getName(), new YoFrameLineSegment2D(base.getYoX(), base.getYoY(), endPointX, endPointY, ReferenceFrame.getWorldFrame()), color3f.get()); }