Example #1
0
 public void UpdateWeightInspector(ISpriteMeshData spriteMeshData, string[] boneNames, ISelection <int> selection, ICacheUndo cacheUndo)
 {
     m_WeightInspectorPanel.weightInspector.spriteMeshData = spriteMeshData;
     m_WeightInspectorPanel.weightInspector.boneNames      = ModuleUtility.ToGUIContentArray(boneNames);
     m_WeightInspectorPanel.weightInspector.selection      = selection;
     m_WeightInspectorPanel.weightInspector.cacheUndo      = cacheUndo;
 }
Example #2
0
        public void DebugMesh(ISpriteMeshData spriteMeshData, Vector2[] vertices, Edge[] edges, Vector2[] controlPoints, Edge[] bones, int[] pins)
        {
            var boneSamples  = SampleBones(controlPoints, bones, kNumSamples);
            var verticesList = new List <Vector2>(vertices.Length + controlPoints.Length + boneSamples.Length);
            var edgesList    = new List <Edge>(edges);
            var indicesList  = new List <int>();

            verticesList.AddRange(vertices);
            verticesList.AddRange(controlPoints);
            verticesList.AddRange(boneSamples);

            TriangulationUtility.Tessellate(kMinAngle, 0f, kMeshAreaFactor, kLargestTriangleAreaFactor, 0, verticesList, edgesList, indicesList);

            spriteMeshData.Clear();

            verticesList.ForEach(v => spriteMeshData.AddVertex(v, new BoneWeight()));
            spriteMeshData.edges.AddRange(edgesList);
            spriteMeshData.indices.AddRange(indicesList);
        }