public YoGraphicLineSegment(String name, YoDouble baseX, YoDouble baseY, YoDouble baseZ, YoDouble endX, YoDouble endY, YoDouble endZ, double scaleFactor, AppearanceDefinition appearance, boolean drawArrowhead) { this(name, baseX, baseY, baseZ, endX, endY, endZ, createDirectionVector(name, baseX.getYoVariableRegistry()), scaleFactor, appearance, drawArrowhead); }
@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()); }