/// <summary> /// Set the scale of the ribbon cross section. /// </summary> /// <param name="scale"></param> public void SetRibbonScale(Vector3 scale) { List <Vector3> currentCrossSections = this.GetCrossSection(); RibbonMesh = new RibbonMesh(currentCrossSections, scale); Mesh mesh = RibbonMesh.GetMesh(Points, Rotations); UpdateMesh(mesh); }
/// <summary> /// Set all control points. Points and rotations should be in local space. /// </summary> /// <param name="newPoints"></param> /// <param name="newRotations"></param> public void SetControlPointsLocalSpace(List <Vector3> newPoints, List <Quaternion> newRotations) { if (newPoints.Count != newRotations.Count) { Debug.LogError("RibbonSketchObject: Count of points and rotations is not equal."); return; } this.Points = new List <Vector3>(newPoints); this.Rotations = new List <Quaternion>(newRotations); Mesh mesh = RibbonMesh.GetMesh(this.Points, this.Rotations); UpdateMesh(mesh); }
public void RibbonMesh_AddControlPoint_Performance([NUnit.Framework.Range(9, 99, 10)] int length) { RibbonMesh ribbonMesh = null; Measure.Method(() => { ribbonMesh.AddPoint(new Vector3(length + 1, 0, 0), Quaternion.identity); }) .SetUp(() => { ribbonMesh = new RibbonMesh(Vector3.one); ribbonMesh.GetMesh(GenerateControlPoints(length), GenerateQuaternions(length)); }) .Run(); }
private void setPointsToRibbon() { List <Vector3> points = new List <Vector3>(); List <Quaternion> rotations = new List <Quaternion>(); foreach (Transform controlPoint in ControlPointParent.transform) { //GetComponent<MeshFilter>().mesh = ribbonMesh.AddPoints(new List<Vector3> { controlPoint.position }, new List<Quaternion> { controlPoint.rotation }); points.Add(controlPoint.position); rotations.Add(controlPoint.rotation); } //GetComponent<MeshFilter>().mesh = RibbonMesh.GetRibbonMesh(points, rotations, .4f); GetComponent <MeshFilter>().mesh = ribbonMesh.GetMesh(points, rotations); }
public void SetCrossSection(List <Vector3> CrossSectionVertices, Vector3 CrossSectionScale) { RibbonMesh = new RibbonMesh(CrossSectionVertices, CrossSectionScale); UpdateMesh(RibbonMesh.GetMesh(Points, Rotations)); }