public override void Render(Camera camera) { if (IsRotating && LookAndFeel.PlaneType == GizmoPlane3DType.Circle && LookAndFeel.IsRotationArcVisible) { _rotationArc.RotationAngle = TotalDragRotation; _rotationArc.Radius = GetRealCircleRadius(GetZoomFactor(camera)); _rotationArc.Render(LookAndFeel.RotationArcLookAndFeel); } if (IsVisible) { Color color = new Color(); if (!IsHovered) { color = LookAndFeel.Color; } else { color = LookAndFeel.HoveredColor; } GizmoSolidMaterial solidMaterial = GizmoSolidMaterial.Get; solidMaterial.ResetValuesToSensibleDefaults(); solidMaterial.SetCullModeOff(); solidMaterial.SetLit(LookAndFeel.ShadeMode == GizmoShadeMode.Lit); if (solidMaterial.IsLit) { solidMaterial.SetLightDirection(camera.transform.forward); } solidMaterial.SetColor(color); solidMaterial.SetPass(0); if (LookAndFeel.PlaneType == GizmoPlane3DType.Quad) { Handle.Render3DSolid(_quadIndex); } else if (LookAndFeel.PlaneType == GizmoPlane3DType.RATriangle) { Handle.Render3DSolid(_raTriangleIndex); } else if (LookAndFeel.PlaneType == GizmoPlane3DType.Circle) { Handle.Render3DSolid(_circleIndex); } } if (LookAndFeel.PlaneType == GizmoPlane3DType.Quad) { _quadBorder.Render(camera); } else if (LookAndFeel.PlaneType == GizmoPlane3DType.RATriangle) { _raTriangleBorder.Render(camera); } else if (LookAndFeel.PlaneType == GizmoPlane3DType.Circle) { _circleBorder.Render(camera); } }
/// <summary> /// Renders the slider with the specified camera. This function should be called /// directly or indirectly from a Monobehaviour's 'OnRenderObject' function. /// </summary> public override void Render(Camera camera) { if (!IsVisible && !Is3DCapVisible) { return; } Color color = new Color(); if (!OverrideColor.IsActive) { if (Gizmo.HoverHandleId == HandleId) { color = LookAndFeel.HoveredColor; } else { color = LookAndFeel.Color; } } else { color = OverrideColor.Color; } if (LookAndFeel.IsRotationArcVisible && IsRotating) { _rotationArc.RotationAngle = _rotationDrag.TotalRotation; _rotationArc.Radius = GetRealLength(GetZoomFactor(camera)); _rotationArc.Render(LookAndFeel.RotationArcLookAndFeel); } bool renderCapFirst = !camera.IsPointFacingCamera(GetRealEndPosition(GetZoomFactor(camera)), GetRealDirection()); if (Is3DCapVisible && renderCapFirst) { _cap3D.Render(camera); } if (IsVisible) { if (LookAndFeel.FillMode == GizmoFillMode3D.Filled) { bool isLit = LookAndFeel.ShadeMode == GizmoShadeMode.Lit && LookAndFeel.LineType != GizmoLine3DType.Thin; GizmoSolidMaterial solidMaterial = GizmoSolidMaterial.Get; solidMaterial.ResetValuesToSensibleDefaults(); solidMaterial.SetLit(isLit); if (isLit) { solidMaterial.SetLightDirection(camera.transform.forward); } solidMaterial.SetColor(color); solidMaterial.SetPass(0); Handle.Render3DSolid(); } else { GizmoLineMaterial lineMaterial = GizmoLineMaterial.Get; lineMaterial.ResetValuesToSensibleDefaults(); lineMaterial.SetColor(color); lineMaterial.SetPass(0); Handle.Render3DWire(); } } if (Is3DCapVisible && !renderCapFirst) { _cap3D.Render(camera); } }
public void Render(Camera camera) { if (!IsVisible) { return; } var lookAndFeel = _planeSlider.LookAndFeel; Color color = lookAndFeel.BorderColor; if (Gizmo.HoverHandleId == _targetHandle.Id) { color = lookAndFeel.HoveredBorderColor; } if (lookAndFeel.QuadBorderType == GizmoQuad3DBorderType.Thin) { GizmoLineMaterial lineMaterial = GizmoLineMaterial.Get; lineMaterial.ResetValuesToSensibleDefaults(); lineMaterial.SetColor(color); lineMaterial.SetPass(0); _targetHandle.Render3DWire(_borderQuadIndex); } else { GizmoSolidMaterial solidMaterial = GizmoSolidMaterial.Get; solidMaterial.ResetValuesToSensibleDefaults(); solidMaterial.SetColor(color); solidMaterial.SetLit(lookAndFeel.BorderShadeMode == GizmoShadeMode.Lit); if (solidMaterial.IsLit) { solidMaterial.SetLightDirection(camera.transform.forward); } solidMaterial.SetPass(0); Vector3 camPos = camera.transform.position; _sortedBoxIndices.Sort(delegate(int i0, int i1) { BoxShape3D b0 = _targetHandle.Get3DShape(i0) as BoxShape3D; BoxShape3D b1 = _targetHandle.Get3DShape(i1) as BoxShape3D; float d0 = (b0.Center - camPos).sqrMagnitude; float d1 = (b1.Center - camPos).sqrMagnitude; return(d1.CompareTo(d0)); }); if (lookAndFeel.BorderFillMode == GizmoFillMode3D.Filled) { foreach (var boxIndex in _sortedBoxIndices) { _targetHandle.Render3DSolid(boxIndex); } } else { foreach (var boxIndex in _sortedBoxIndices) { _targetHandle.Render3DWire(boxIndex); } } } }
public override void Render(Camera camera) { if (!IsVisible) { return; } Color color = new Color(); if (!OverrideColor.IsActive) { if (Gizmo.IsHovered && Gizmo.HoverInfo.HandleId == HandleId) { color = LookAndFeel.HoveredColor; } else { color = LookAndFeel.Color; } } else { color = OverrideColor.Color; } if (LookAndFeel.FillMode == GizmoFillMode3D.Filled) { bool isLit = LookAndFeel.ShadeMode == GizmoShadeMode.Lit; GizmoSolidMaterial solidMaterial = GizmoSolidMaterial.Get; solidMaterial.ResetValuesToSensibleDefaults(); solidMaterial.SetLit(isLit); if (isLit) { solidMaterial.SetLightDirection(camera.transform.forward); } solidMaterial.SetColor(color); solidMaterial.SetPass(0); Handle.Render3DSolid(); } else { GizmoLineMaterial lineMaterial = GizmoLineMaterial.Get; lineMaterial.ResetValuesToSensibleDefaults(); lineMaterial.SetColor(color); lineMaterial.SetPass(0); Handle.Render3DWire(); } if (LookAndFeel.CapType == GizmoCap3DType.Sphere && LookAndFeel.IsSphereBorderVisible) { GizmoLineMaterial lineMaterial = GizmoLineMaterial.Get; lineMaterial.ResetValuesToSensibleDefaults(); lineMaterial.SetColor(LookAndFeel.SphereBorderColor); lineMaterial.SetPass(0); GLRenderer.DrawSphereBorder(camera, Position, GetRealSphereRadius(GetZoomFactor(camera)), LookAndFeel.NumSphereBorderPoints); } }