Cortex  10.0.0-a4
Public Types | Public Member Functions | Static Protected Member Functions | Static Protected Attributes | Friends | List of all members
IECore::CurvesPrimitiveEvaluator Class Reference

#include <CurvesPrimitiveEvaluator.h>

+ Inheritance diagram for IECore::CurvesPrimitiveEvaluator:

Public Types

typedef CurvesPrimitive PrimitiveType
 
- Public Types inherited from IECore::PrimitiveEvaluator
typedef PrimitiveEvaluatorPtr(* CreatorFn) (ConstPrimitivePtr)
 
- Public Types inherited from IECore::RunTimeTyped
typedef RefCounted BaseClass
 A typedef for the class this class derives from. All RunTimeTyped classes define this typedef.
 
- Public Types inherited from IECore::RefCounted
typedef size_t RefCount
 

Public Member Functions

 IE_CORE_DECLARERUNTIMETYPED (CurvesPrimitiveEvaluator, PrimitiveEvaluator)
 
 IE_CORE_DECLAREPTR (Result)
 
 CurvesPrimitiveEvaluator (ConstCurvesPrimitivePtr curves)
 
ConstPrimitivePtr primitive () const override
 Returns the primitive which we're currently evaluating.
 
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.
 
Standard Query Functions
float surfaceArea () const override
 Not yet implemented.
 
float volume () const override
 Not yet implemented.
 
Imath::V3f centerOfGravity () const override
 Not yet implemented.
 
bool closestPoint (const Imath::V3f &p, PrimitiveEvaluator::Result *result) const override
 
bool pointAtUV (const Imath::V2f &uv, PrimitiveEvaluator::Result *result) const override
 Returns pointAtV( 0, uv[1], result ).
 
bool intersectionPoint (const Imath::V3f &origin, const Imath::V3f &direction, PrimitiveEvaluator::Result *result, float maxDistance=Imath::limits< float >::max()) const override
 Not yet implemented.
 
int intersectionPoints (const Imath::V3f &origin, const Imath::V3f &direction, std::vector< PrimitiveEvaluator::ResultPtr > &results, float maxDistance=Imath::limits< float >::max()) const override
 Not yet implemented.
 
Curve specific query functions
bool pointAtV (unsigned curveIndex, float v, PrimitiveEvaluator::Result *result) const
 
float curveLength (unsigned curveIndex, float vStart=0.0f, float vEnd=1.0f) const
 
Topology access

These functions make it easier to index curve data manually in cases where the queries above are not sufficient.

const std::vector< int > & verticesPerCurve () const
 
const std::vector< int > & vertexDataOffsets () const
 
const std::vector< int > & varyingDataOffsets () const
 As above but providing the offset for data with varying interpolation.
 
- Public Member Functions inherited from IECore::PrimitiveEvaluator
 IE_CORE_DECLARERUNTIMETYPED (PrimitiveEvaluator, RunTimeTyped)
 
 IE_CORE_DECLAREPTR (Result)
 
virtual bool signedDistance (const Imath::V3f &p, float &distance, Result *result) const
 
virtual int intersectionPoints (const Imath::V3f &origin, const Imath::V3f &direction, std::vector< ResultPtr > &results, float maxDistance=Imath::limits< float >::max()) const =0
 
- Public Member Functions inherited from IECore::RunTimeTyped
 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
 
- Public Member Functions inherited from IECore::RefCounted
 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.
 

Static Protected Member Functions

static PrimitiveEvaluatorPtr create (ConstPrimitivePtr primitive)
 
- Static Protected Member Functions inherited from IECore::RunTimeTyped
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 Protected Attributes

static PrimitiveEvaluator::Description< CurvesPrimitiveEvaluatorg_evaluatorDescription
 
- Static Protected Attributes inherited from IECore::RunTimeTyped
static Mutex g_baseTypeIdsMutex
 
static Mutex g_derivedTypeIdsMutex
 

Friends

struct PrimitiveEvaluator::Description< CurvesPrimitiveEvaluator >
 
class Result
 

Additional Inherited Members

- Static Public Member Functions inherited from IECore::PrimitiveEvaluator
static PrimitiveEvaluatorPtr create (ConstPrimitivePtr primitive)
 
- Static Public Member Functions inherited from IECore::RunTimeTyped
static TypeId staticTypeId ()
 Returns the TypeId for this class, without needing an instance.
 
static const char * staticTypeName ()
 Returns the type name for this class, without needing an instance.
 
static TypeId baseTypeId ()
 
static const char * baseTypeName ()
 
static bool inheritsFrom (TypeId typeId)
 Returns true if this class inherits from the specified type.
 
static bool inheritsFrom (const char *typeName)
 Returns true if this class inherits from the specified type.
 
static bool inheritsFrom (TypeId type, TypeId baseType)
 Returns true if type inherits from baseType.
 
static bool inheritsFrom (const char *typeName, const char *baseTypeName)
 Returns true if typeName inherits from baseTypeName.
 
static TypeId baseTypeId (TypeId typeId)
 Returns the base type of the given type, or InvalidTypeId if no such base exists.
 
static const std::vector< TypeId > & baseTypeIds (TypeId typeId)
 
static const std::set< TypeId > & derivedTypeIds (TypeId typeId)
 
static TypeId typeIdFromTypeName (const char *typeName)
 
static const char * typeNameFromTypeId (TypeId typeId)
 
static void registerType (TypeId derivedTypeId, const char *derivedTypeName, TypeId baseTypeId)
 Allows external modules to register their own type ids.
 
- Protected Types inherited from IECore::RunTimeTyped
typedef std::map< TypeId, TypeIdBaseTypeRegistryMap
 
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, TypeIdTypeNamesToTypeIdsMap
 

Detailed Description

Implements the PrimitiveEvaluator interface to allow queries of CurvesPrimitives.

Member Function Documentation

bool IECore::CurvesPrimitiveEvaluator::closestPoint ( const Imath::V3f &  p,
PrimitiveEvaluator::Result result 
) const
overridevirtual

Find the closest point on the primitive to the given query point. Returns true on success.

Todo:
Extend this to pass a maximum distance past which results are no longer interesting.

Implements IECore::PrimitiveEvaluator.

static PrimitiveEvaluatorPtr IECore::CurvesPrimitiveEvaluator::create ( ConstPrimitivePtr  primitive)
staticprotected
Todo:
It would be much better if PrimitiveEvaluator::Description didn't require these create() functions and instead just called the constructors that have to exist anyway.
float IECore::CurvesPrimitiveEvaluator::curveLength ( unsigned  curveIndex,
float  vStart = 0.0f,
float  vEnd = 1.0f 
) const

Returns the length of the given curve from vStart to vEnd. Returns 0.0f if inappropriate parameters are given.

const std::vector<int>& IECore::CurvesPrimitiveEvaluator::vertexDataOffsets ( ) const

One value per curve, storing the offset to the first vertex value for that curve.

const std::vector<int>& IECore::CurvesPrimitiveEvaluator::verticesPerCurve ( ) const

Equivalent to CurvesPrimitive::verticesPerCurve() but returns a reference to the vector within the IntVectorData.


The documentation for this class was generated from the following file: