/// <summary> /// Tessellates the specified bezier patch. /// </summary> private void TessellatePatch(BezierPatch patch, Vector3D scale) { // Look up the 16 control points for this patch. Point3D[] controlPoints = new Point3D[16]; for (int i = 0; i < 16; i++) { int index = patch.Indices[i]; controlPoints[i] = ControlPoints[index] * scale; } // Is this patch being mirrored? bool isMirrored = Math.Sign(scale.X) != Math.Sign(scale.Z); // Create the index and vertex data. CreatePatchIndices(isMirrored); CreatePatchVertices(controlPoints, isMirrored); }
/// <summary> /// Tessellates the specified bezier patch. /// </summary> private void TessellatePatch(BezierPatch patch, Vector3D scale) { // Look up the 16 control points for this patch. Point3D[] controlPoints = new Point3D[16]; for (int i = 0; i < 16; i++) { int index = patch.Indices[i]; controlPoints[i] = ControlPoints[index] * scale; } // Is this patch being mirrored? bool isMirrored = Math.Sign(scale.X) != Math.Sign(scale.Z); // Create the index and vertex data. CreatePatchIndices(isMirrored); CreatePatchVertices(controlPoints, isMirrored); }