public static bool GenerateSphere(ref BrushMesh brushMesh, ref ChiselSphereDefinition definition) { definition.Validate(); var transform = float4x4.TRS(Vector3.zero, quaternion.AxisAngle(new Vector3(0, 1, 0), definition.rotation), Vector3.one); return(BrushMeshFactory.GenerateSphere(ref brushMesh, definition.diameterXYZ, definition.offsetY, definition.generateFromCenter, transform, definition.horizontalSegments, definition.verticalSegments, definition.surfaceDefinition)); }
static void DrawOutline(IChiselHandleRenderer renderer, ChiselSphereDefinition definition, Vector3[] vertices, LineMode lineMode) { var sides = definition.horizontalSegments; var extraVertices = 2; var bottomVertex = 1; var topVertex = 0; var rings = (vertices.Length - extraVertices) / sides; var prevColor = renderer.color; var color = prevColor; color.a *= 0.6f; renderer.color = color; for (int i = 0, j = extraVertices; i < rings; i++, j += sides) { renderer.DrawLineLoop(vertices, j, sides, lineMode: lineMode, thickness: kHorzLineThickness, dashSize: kLineDash); } for (int k = 0; k < sides; k++) { renderer.DrawLine(vertices[topVertex], vertices[extraVertices + k], lineMode: lineMode, thickness: kVertLineThickness); for (int i = 0, j = extraVertices; i < rings - 1; i++, j += sides) { renderer.DrawLine(vertices[j + k], vertices[j + k + sides], lineMode: lineMode, thickness: kVertLineThickness); } renderer.DrawLine(vertices[bottomVertex], vertices[extraVertices + k + ((rings - 1) * sides)], lineMode: lineMode, thickness: kVertLineThickness); } renderer.color = prevColor; }
public static bool GenerateSphere(ref ChiselBrushContainer brushContainer, ref ChiselSphereDefinition definition) { definition.Validate(); brushContainer.EnsureSize(1); var transform = Matrix4x4.TRS(Vector3.zero, Quaternion.AngleAxis(definition.rotation, Vector3.up), Vector3.one); return(BrushMeshFactory.GenerateSphere(ref brushContainer.brushMeshes[0], definition.diameterXYZ, definition.offsetY, definition.generateFromCenter, transform, definition.horizontalSegments, definition.verticalSegments, definition.surfaceDefinition)); }