|
| IE_CORE_DECLARERUNTIMETYPED (MeshPrimitiveEvaluator, PrimitiveEvaluator) |
|
| IE_CORE_DECLAREPTR (Result) |
|
| MeshPrimitiveEvaluator (ConstMeshPrimitivePtr mesh) |
|
ConstPrimitivePtr | primitive () const override |
| Returns the primitive which we're currently evaluating.
|
|
MeshPrimitive::ConstPtr | mesh () const |
|
PrimitiveEvaluator::ResultPtr | createResult () const override |
| Create a result instance which is suitable for passing to one of the query methods.
|
|
void | validateResult (PrimitiveEvaluator::Result *result) const override |
| Throws an exception if the passed result type is not compatible with the current evaluator.
|
|
bool | closestPoint (const Imath::V3f &p, PrimitiveEvaluator::Result *result) const override |
|
bool | pointAtUV (const Imath::V2f &uv, PrimitiveEvaluator::Result *result) const override |
| Find the point on the primitive at the given query UV. Returns true on success.
|
|
bool | intersectionPoint (const Imath::V3f &origin, const Imath::V3f &direction, PrimitiveEvaluator::Result *result, float maxDistance=Imath::limits< float >::max()) const override |
|
int | intersectionPoints (const Imath::V3f &origin, const Imath::V3f &direction, std::vector< PrimitiveEvaluator::ResultPtr > &results, float maxDistance=Imath::limits< float >::max()) const override |
|
bool | barycentricPosition (unsigned int triangleIndex, const Imath::V3f &barycentricCoordinates, PrimitiveEvaluator::Result *result) const |
| A query specific to the MeshPrimitiveEvaluator, this just chooses a barycentric position on a specific triangle.
|
|
bool | signedDistance (const Imath::V3f &p, float &distance, PrimitiveEvaluator::Result *result) const override |
|
float | volume () const override |
| Computes the volume of the primitive. The result is undefined if the primitive is not closed, or self intersects.
|
|
Imath::V3f | centerOfGravity () const override |
| Computes the primitive's center of gravity. The result is undefined if the primitive is not closed, or self intersects.
|
|
float | surfaceArea () const override |
| Computes the surface area of the primitive.
|
|
const Imath::Box2f | uvBound () const |
| Returns a bounding box covering all the uv coordinates of the mesh.
|
|
| IE_CORE_DECLARERUNTIMETYPED (PrimitiveEvaluator, RunTimeTyped) |
|
| IE_CORE_DECLAREPTR (Result) |
|
virtual int | intersectionPoints (const Imath::V3f &origin, const Imath::V3f &direction, std::vector< ResultPtr > &results, float maxDistance=Imath::limits< float >::max()) const =0 |
|
| IE_CORE_DECLAREMEMBERPTR (RunTimeTyped) |
|
virtual TypeId | typeId () const |
|
virtual const char * | typeName () const |
|
virtual bool | isInstanceOf (TypeId typeId) const |
|
virtual bool | isInstanceOf (const char *typeName) const |
|
| IE_CORE_DECLAREMEMBERPTR (RefCounted) |
|
void | addRef () const |
| Add a reference to the current object.
|
|
void | removeRef () const |
| Remove a reference from the current object.
|
|
RefCount | refCount () const |
| Returns the current reference count.
|
|
|
typedef tbb::mutex | NormalsMutex |
|
typedef int | VertexIndex |
|
typedef int | TriangleIndex |
|
typedef std::pair< VertexIndex, VertexIndex > | Edge |
|
typedef std::map< Edge, Imath::V3f > | EdgeAverageNormals |
|
typedef std::map< TypeId, TypeId > | BaseTypeRegistryMap |
|
typedef std::map< TypeId, std::vector< TypeId > > | BaseTypesRegistryMap |
|
typedef std::map< TypeId, std::set< TypeId > > | DerivedTypesRegistryMap |
|
typedef tbb::spin_rw_mutex | Mutex |
|
typedef std::map< TypeId, std::string > | TypeIdsToTypeNamesMap |
|
typedef std::map< std::string, TypeId > | TypeNamesToTypeIdsMap |
|
|
bool | pointAtUVWalk (UVBoundTree::NodeIndex nodeIndex, const Imath::V2f &targetUV, Result *result) const |
|
void | closestPointWalk (TriangleBoundTree::NodeIndex nodeIndex, const Imath::V3f &p, float &closestDistanceSqrd, Result *result) const |
|
bool | intersectionPointWalk (TriangleBoundTree::NodeIndex nodeIndex, const Imath::Line3f &ray, float &maxDistSqrd, Result *result, bool &hit) const |
|
void | intersectionPointsWalk (TriangleBoundTree::NodeIndex nodeIndex, const Imath::Line3f &ray, float maxDistSqrd, std::vector< PrimitiveEvaluator::ResultPtr > &results) const |
|
void | calculateMassProperties () const |
|
void | calculateAverageNormals () const |
|
void | triangleUVs (size_t triangleIndex, const Imath::V3i &vertexIds, Imath::V2f uv[3]) const |
|
|
static BaseTypeRegistryMap & | baseTypeRegistry () |
|
static DerivedTypesRegistryMap & | derivedTypesRegistry () |
|
static BaseTypesRegistryMap & | completeBaseTypesRegistry () |
|
static DerivedTypesRegistryMap & | completeDerivedTypesRegistry () |
|
static void | derivedTypeIdsWalk (TypeId typeId, std::set< TypeId > &) |
|
static TypeIdsToTypeNamesMap & | typeIdsToTypeNames () |
|
static TypeNamesToTypeIdsMap & | typeNamesToTypeIds () |
|
static Mutex | g_baseTypeIdsMutex |
|
static Mutex | g_derivedTypeIdsMutex |
|
An implementation of PrimitiveEvaluator to allow spatial queries to be performed on MeshPrimitive instances