public override void UpdateDependencies(double currentTime) { base.UpdateDependencies(currentTime); if (Visible) { if (_line == null) { _line = new Line(); _circle = new Circle {Radius = Radius}; _circle.AttachTo(this, false); _line.AttachTo(_circle, false); _line.RelativePoint1 = new Point3D(0, 0); _line.RelativePoint2 = new Point3D(Radius, 0); } if (!_added) { ShapeManager.AddLine(_line); ShapeManager.AddCircle(_circle); _added = true; } } if (!Visible && _line != null) { ShapeManager.Remove(_line); ShapeManager.Remove(_circle); _added = false; } }
public override void UpdateDependencies(double currentTime) { base.UpdateDependencies(currentTime); if (Visible) { if (_line == null) { _line = new Line(); _line.AttachTo(this, false); _line.RelativePoint1 = new Point3D(0, 0); _line.RelativePoint2 = new Point3D(Length * ScaleX, 0); } if (!_added) { ShapeManager.AddLine(_line); _added = true; } if (Math.Abs(_line.RelativePoint2.X - Length * ScaleX) > Double.Epsilon) { _line.RelativePoint2.X = Length; } } if (!Visible && _line != null) { ShapeManager.Remove(_line); _added = false; } }
public void SetCollision(Line line) { mCollisionCircle = null; mCollisionAxisAlignedRectangle = null; mCollisionPolygon = null; mCollisionLine = line; mCollisionLine.AttachTo(this, false); mCollisionLine.ForceUpdateDependencies(); }