2using System.Collections.Generic;
15 [IconAttribute(
"Packages/com.cesium.unity/Editor/Resources/Cesium-24x24.png")]
16 [AddComponentMenu(
"")]
27 #region Helper functions
31 private static List<int> _indices;
33 private static int GetFirstVertexFromTriangle(MeshFilter meshFilter,
int triangleIndex)
35 if (meshFilter ==
null || meshFilter.mesh ==
null)
40 if (CesiumPrimitiveFeatures._indices ==
null)
42 CesiumPrimitiveFeatures._indices =
new List<int>();
45 meshFilter.mesh.GetTriangles(CesiumPrimitiveFeatures._indices, 0);
46 int targetVertex = triangleIndex * 3;
47 return targetVertex < CesiumPrimitiveFeatures._indices.Count ? CesiumPrimitiveFeatures._indices[targetVertex] : -1;
51 #region Public methods
60 MeshFilter meshFilter = hitInfo.transform.GetComponent<MeshFilter>();
61 return GetFirstVertexFromTriangle(meshFilter, hitInfo.triangleIndex);
90 MeshFilter meshFilter = this.gameObject.GetComponent<MeshFilter>();
91 if (meshFilter ==
null || featureIdSetIndex < 0 || featureIdSetIndex >= this.
featureIdSets.Length)
99 GetFirstVertexFromTriangle(meshFilter, triangleIndex));
118 featureIdSetIndex < 0 || featureIdSetIndex >=
this.
featureIdSets.Length)
Represents a feature ID set from a glTF primitive.
virtual Int64 GetFeatureIdForVertex(Int64 vertexIndex)
Gets the feature ID associated with a given vertex.
virtual Int64 GetFeatureIdFromRaycastHit(RaycastHit hitInfo)
Gets the feature ID from the feature ID set using the given raycast hit.
Represents the EXT_mesh_features of a glTF primitive in a Cesium3DTileset.
CesiumFeatureIdSet[] GetFeatureIdSetsOfType(CesiumFeatureIdSetType type)
Gets all the feature ID sets of the given type.
Int64 GetFeatureIdFromTriangle(int triangleIndex, Int64 featureIdSetIndex=0)
Gets the feature ID associated with the given triangle, specified by index.
static int GetFirstVertexFromHitTriangle(RaycastHit hitInfo)
Given a successful raycast hit, finds the index of the first vertex from the hit triangle.
CesiumFeatureIdSet[] featureIdSets
The CesiumFeatureIdSets available on this primitive.
Int64 GetFeatureIdFromRaycastHit(RaycastHit hitInfo, Int64 featureIdSetIndex=0)
Gets the feature ID from the given raycast hit, assuming it has hit a glTF primitive component contai...
CesiumFeatureIdSetType
The type of a feature ID set.