9using System.Collections.Generic;
19 public class MeshEditorApi : EditorApi {
23 _meshGraphic = meshGraphic;
26 public override void RebuildEditorPickingMesh() {
27 base.RebuildEditorPickingMesh();
29 Assert.IsNotNull(_meshGraphic);
33 List<Vector3> pickingVerts =
new List<Vector3>();
34 List<int> pickingTris =
new List<int>();
39 if (pickingMesh ==
null) {
40 pickingMesh =
new Mesh();
41 pickingMesh.MarkDynamic();
42 pickingMesh.hideFlags = HideFlags.HideAndDontSave;
43 pickingMesh.name =
"Graphic Picking Mesh";
45 pickingMesh.Clear(keepVertexLayout:
false);
47 if (_meshGraphic.mesh ==
null)
return;
49 var topology = MeshCache.GetTopology(_meshGraphic.mesh);
50 for (
int i = 0; i < topology.tris.Length; i++) {
51 pickingTris.Add(topology.tris[i] + pickingVerts.Count);
55 if (_meshGraphic.anchor !=
null) {
59 for (
int i = 0; i < topology.verts.Length; i++) {
60 Vector3 localRectVert = _meshGraphic.attachedGroup.renderer.transform.InverseTransformPoint(_meshGraphic.transform.TransformPoint(topology.verts[i]));
66 localRectVert = _meshGraphic.attachedGroup.renderer.transform.TransformPoint(localRectVert);
68 pickingVerts.Add(localRectVert);
71 pickingMesh.SetVertices(pickingVerts);
72 pickingMesh.SetTriangles(pickingTris, 0, calculateBounds:
true);
73 pickingMesh.RecalculateNormals();
ITransformer transformer
A utility getter that returns a transformer for this graphic. Even if the space anchor for this graph...
This class is a base class for all graphics that can be represented by a mesh object.
abstract void RefreshMeshData()
When this method is called, the mesh property and the remappableChannels property must be assigned to...