public override void Render(DeviceContext context, Camera cam, WidgetShader shader) { if (!Visible) { return; } switch (Mode) { case WidgetMode.Position: PositionWidget.Render(context, cam, shader); break; case WidgetMode.Rotation: RotationWidget.Render(context, cam, shader); break; case WidgetMode.Scale: ScaleWidget.Render(context, cam, shader); break; case WidgetMode.Default: DefaultWidget.Render(context, cam, shader); break; } }
public override void Render(DeviceContext context, Camera cam, WidgetShader shader) { if (!Visible) { return; } Vector3 camrel = Position - cam.Position; float dist = camrel.Length(); float size = GetWorldSize(Size, dist, cam); var ori = ObjectSpace ? Rotation : Quaternion.Identity; shader.DrawDefaultWidget(context, cam, camrel, ori, size); }
public override void Render(DeviceContext context, Camera cam, WidgetShader shader) { if (!Visible) { return; } Vector3 camrel = Position - cam.Position; float dist = camrel.Length(); float size = GetWorldSize(Size, dist, cam); WidgetAxis ax = IsDragging ? DraggedAxis : MousedAxis; var ori = Rotation; //scale is always in object space. shader.DrawScaleWidget(context, cam, camrel, ori, size, ax); }
public override void Render(DeviceContext context, Camera cam, WidgetShader shader) { if (!Visible) { return; } Vector3 camrel = Position - cam.Position; float dist = camrel.Length(); float size = GetWorldSize(Size, dist, cam); WidgetAxis ax = IsDragging ? DraggedAxis : MousedAxis; var ori = ObjectSpace ? Rotation : Quaternion.Identity; shader.DrawRotationWidget(context, cam, camrel, ori, size, ax, EnableAxes); }
public abstract void Render(DeviceContext context, Camera cam, WidgetShader shader);