void IRenderable.Draw(WSceneView view) { var bbox = GetBoundingBox(); m_world.DebugDrawBox(bbox.Center, (bbox.Max - bbox.Min) / 2, Transform.Rotation, (Flags & NodeFlags.Selected) == NodeFlags.Selected ? WLinearColor.White : WLinearColor.Black, 0, 0); Matrix4 trs = Matrix4.CreateScale(Transform.LocalScale) * Matrix4.CreateFromQuaternion(Transform.Rotation) * Matrix4.CreateTranslation(Transform.Position); if (m_actorMesh != null) { for (int i = 0; i < 4; i++) { if (ColorOverrides.ColorsEnabled[i]) { m_actorMesh.SetTevColorOverride(i, ColorOverrides.Colors[i]); } if (ColorOverrides.ConstColorsEnabled[i]) { m_actorMesh.SetTevkColorOverride(i, ColorOverrides.ConstColors[i]); } } m_actorMesh.Render(view.ViewMatrix, view.ProjMatrix, trs); } else { m_objRender.Render(view.ViewMatrix, view.ProjMatrix, trs); } }
virtual public void Draw(WSceneView view) { Matrix4 trs = Matrix4.CreateScale(VisualScale) * Matrix4.CreateFromQuaternion(Transform.Rotation.ToSinglePrecision()) * Matrix4.CreateTranslation(Transform.Position); if (m_actorMeshes.Count > 0) { foreach (var actor_mesh in m_actorMeshes) { for (int i = 0; i < 4; i++) { if (ColorOverrides.ColorsEnabled[i]) { actor_mesh.SetTevColorOverride(i, ColorOverrides.Colors[i]); } if (ColorOverrides.ConstColorsEnabled[i]) { actor_mesh.SetTevkColorOverride(i, ColorOverrides.ConstColors[i]); } } if (IsSelected) { actor_mesh.Tick(1 / (float)60); } actor_mesh.Render(view.ViewMatrix, view.ProjMatrix, trs); } } else if (m_objRender != null) { m_objRender.Render(view.ViewMatrix, view.ProjMatrix, trs); } }
public override void Draw(WSceneView view) { Matrix4 trs = Matrix4.CreateScale(VisualScale) * Matrix4.CreateFromQuaternion(Transform.Rotation) * Matrix4.CreateTranslation(Transform.Position); Matrix4 centerPointTrs = Matrix4.CreateTranslation(Transform.Position); // Render the center point model first. if (m_actorMeshes.Count > 0) { foreach (var actor_mesh in m_actorMeshes) { for (int i = 0; i < 4; i++) { if (ColorOverrides.ColorsEnabled[i]) { actor_mesh.SetTevColorOverride(i, ColorOverrides.Colors[i]); } if (ColorOverrides.ConstColorsEnabled[i]) { actor_mesh.SetTevkColorOverride(i, ColorOverrides.ConstColors[i]); } } if (IsSelected) { actor_mesh.Tick(1 / (float)60); } actor_mesh.Render(view.ViewMatrix, view.ProjMatrix, centerPointTrs); } } else if (m_objRender != null) { m_objRender.Render(view.ViewMatrix, view.ProjMatrix, centerPointTrs); } // Then render the area, but only when selected. if (IsSelected) { m_RegionAreaModel.Render(view.ViewMatrix, view.ProjMatrix, trs); } }