public void RenderGizmos() { if (IsActive && _grabSettings.ShowGrabLines) { foreach (var grabbedObject in _grabbedObjects) { GizmosEx.RenderLine(grabbedObject.GetHierarchyWorldOrientedBox().Center, _surfaceHitPoint, _grabSettings.GrabLineColor); } } }
private void RenderPivotPointProjectionLines(ProjectedBoxFacePivotPoints projectedBoxFacePivotPoints, ObjectPivotPointsRenderSettings pivotPointsRenderSettings) { ProjectedBoxFacePivotPointsRenderSettings renderSettings = pivotPointsRenderSettings.ProjectedBoxFacePivotPointsRenderSettings; if (renderSettings.RenderProjectionLines) { List <Vector3> allPivotPoints = projectedBoxFacePivotPoints.AllPoints; if (allPivotPoints.Count != 0) { Color projectionLineColor = renderSettings.ProjectionLineColor; List <Vector3> unprojectedPoints = projectedBoxFacePivotPoints.GetUnprojectedPivotPoints(); for (int pointIndex = 0; pointIndex < unprojectedPoints.Count; ++pointIndex) { GizmosEx.RenderLine(allPivotPoints[pointIndex], unprojectedPoints[pointIndex], projectionLineColor); } } } }
public void RenderGizmos(ObjectPlacementExtensionPlane extensionPlane) { ObjectPlacementExtensionPlaneRenderSettings renderSettings = extensionPlane.RenderSettings; XZOrientedQuad3D planeQuad = extensionPlane.PlaneQuad; planeQuad.SetScale(renderSettings.PlaneScale); // Note: Add a small offset to avoid Z wars when the extension plane sits on top of other objects. const float quadOffset = 0.005f; GizmosEx.RenderXZOrientedQuad(planeQuad, renderSettings.PlaneColor, quadOffset); GizmosEx.RenderXZOrientedQuadBorderLines(planeQuad, renderSettings.PlaneBorderLineColor, quadOffset); // Render the plane normals List <Vector3> quadCornerPoints = planeQuad.GetCornerPoints(); Vector3 offsetToEndOfLine = extensionPlane.Plane.normal * renderSettings.PlaneNormalLineLength; foreach (Vector3 quadCornerPoint in quadCornerPoints) { GizmosEx.RenderLine(quadCornerPoint, quadCornerPoint + offsetToEndOfLine, renderSettings.PlaneNormalLineColor); } }