Cortex  10.0.0-a4
Public Types | Public Member Functions | Protected Member Functions | Static Protected Attributes | List of all members
IECore::GeometricTypedData< T > Class Template Reference

#include <GeometricTypedData.h>

+ Inheritance diagram for IECore::GeometricTypedData< T >:

Public Types

typedef TypedData< T >::ValueType ValueType
 
- Public Types inherited from IECore::TypedData< T >
typedef T ValueType
 
typedef TypedDataTraits< T >::BaseType BaseType
 Base type used in the internal data structure.
 
- Public Types inherited from IECore::Object
typedef ObjectPtr(* CreatorFn) (void *data)
 
- 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

 GeometricTypedData (const ValueType &data)
 
 GeometricTypedData (const ValueType &data, GeometricData::Interpretation interpretation)
 
 IECORE_RUNTIMETYPED_DECLARETEMPLATE (GeometricTypedData< T >, TypedData< T >)
 
GeometricData::Interpretation getInterpretation () const
 
void setInterpretation (GeometricData::Interpretation interpretation)
 
Object interface
GeometricTypedData< T >::Ptr copy () const
 
bool isEqualTo (const Object *other) const override
 
void hash (MurmurHash &h) const override
 
- Public Member Functions inherited from IECore::TypedData< T >
 TypedData ()
 Default constructor.
 
 TypedData (const T &data)
 Constructor based on the stored data type.
 
 IECORE_RUNTIMETYPED_DECLARETEMPLATE (TypedData< T >, Data)
 
void operator= (const T &data)
 Equivalent to writable() = data.
 
void operator= (const TypedData< T > &typedData)
 Equivalent to writable() = typedData.readable()
 
const T & readable () const
 
T & writable ()
 
const BaseTypebaseReadable () const
 
BaseTypebaseWritable ()
 
size_t baseSize () const
 
TypedData< T >::Ptr copy () const
 
bool isEqualTo (const Object *other) const override
 
void hash (MurmurHash &h) const override
 
- Public Member Functions inherited from IECore::Data
 IE_CORE_DECLAREABSTRACTOBJECT (Data, Object)
 
- Public Member Functions inherited from IECore::Object
 IE_CORE_DECLARERUNTIMETYPED (Object, RunTimeTyped)
 
ObjectPtr copy () const
 
void copyFrom (const Object *other)
 
void save (IndexedIOPtr ioInterface, const IndexedIO::EntryID &name) const
 
virtual bool isNotEqualTo (const Object *other) const
 
bool operator== (const Object &other) const
 Calls isEqualTo() for people who prefer to use the operator syntax.
 
bool operator!= (const Object &other) const
 Calls isNotEqualTo() for people who prefer to use the operator syntax.
 
size_t memoryUsage () const
 Returns the number of bytes this instance occupies in memory.
 
MurmurHash hash () const
 
- 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.
 

Protected Member Functions

void copyFrom (const Object *other, Object::CopyContext *context) override
 
void save (Object::SaveContext *context) const override
 
void load (Object::LoadContextPtr context) override
 
void memoryUsage (Object::MemoryAccumulator &accumulator) const override
 
- Protected Member Functions inherited from IECore::TypedData< T >
void copyFrom (const Object *other, CopyContext *context) override
 
void save (SaveContext *context) const override
 
void load (LoadContextPtr context) override
 
void memoryUsage (Object::MemoryAccumulator &accumulator) const override
 
- Protected Member Functions inherited from IECore::Object
 IE_CORE_DECLAREPTR (LoadContext)
 

Static Protected Attributes

static Object::TypeDescription< GeometricTypedData< T > > m_typeDescription
 
- Static Protected Attributes inherited from IECore::TypedData< T >
static Object::TypeDescription< TypedData< T > > m_typeDescription
 
- Static Protected Attributes inherited from IECore::RunTimeTyped
static Mutex g_baseTypeIdsMutex
 
static Mutex g_derivedTypeIdsMutex
 

Additional Inherited Members

- Static Public Member Functions inherited from IECore::TypedData< T >
static bool hasBase ()
 Defines whether the internal data structure has a single base type.
 
- Static Public Member Functions inherited from IECore::Object
static void registerType (TypeId typeId, const std::string &typeName, CreatorFn creator, void *data=nullptr)
 Register a new Object-derived type with the system. The specified void* data is passed into the creator function.
 
static bool isType (TypeId typeId)
 Returns true if typeId is a valid registered Object type.
 
static bool isType (const std::string &typeName)
 Returns true if typeName is a valid registered Object type.
 
static bool isAbstractType (TypeId typeId)
 
static bool isAbstractType (const std::string &typeName)
 As above but taking a type name.
 
static ObjectPtr create (TypeId typeId)
 
static ObjectPtr create (const std::string &typeName)
 
static ObjectPtr load (ConstIndexedIOPtr ioInterface, const IndexedIO::EntryID &name)
 
- 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::TypedData< T >
typedef TypedDataTraits< T >::DataHolder DataHolder
 
- 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
 
- 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 ()
 
- Protected Attributes inherited from IECore::TypedData< T >
DataHolder m_data
 

Detailed Description

template<class T>
class IECore::GeometricTypedData< T >

A templated class which can be used to wrap useful data types and containers that may be interpreted in several ways, conforming to the values in GeometricData::Interpretation. GeometricTypedData extends TypedData by adding get/setInterpretation methods, which may be used to differentiate use cases for individual instances of a given data type. See IECore::TransformOp for an example use case.

Note that to use instantiations of this class you should utilise the appropriate typedefs as provided by headers such as SimpleTypedData.h or VectorTypedData.h, rather than include this header directly.

Member Function Documentation

template<class T>
void IECore::GeometricTypedData< T >::copyFrom ( const Object other,
Object::CopyContext context 
)
overrideprotectedvirtual

Must be implemented in all subclasses to make a deep copy of all member data, after calling BaseClass::copyFrom() to allow the base class to do the same. When making copies of held member data derived from Object, you /must/ use the context object provided, rather than calling copy() or copyFrom() yourself.

Implements IECore::Object.

template<class T>
GeometricData::Interpretation IECore::GeometricTypedData< T >::getInterpretation ( ) const

Get/Set Interpretation may be used to distinguish different uses of common data types. For example, one V3fVectorData may be interpreted as points, another as normals, and yet another as colors.

template<class T>
void IECore::GeometricTypedData< T >::hash ( MurmurHash h) const
overridevirtual

Must be implemented by subclasses to append all member data into the given hash. Implementations must first call the base class implementation before appending their own data.

Implements IECore::Object.

template<class T>
bool IECore::GeometricTypedData< T >::isEqualTo ( const Object other) const
overridevirtual

Returns true if this object is equal to the other. Should be reimplemented appropriately in derived classes, first calling your base class isEqualTo() and returning false straight away if that returns false. The Object level implementation checks that the types are identical, so you can safely perform a boost::static_pointer_cast<YourClass>( other ) if your base class isEqualTo() doesn't return false.

Implements IECore::Object.

template<class T>
void IECore::GeometricTypedData< T >::memoryUsage ( Object::MemoryAccumulator accumulator) const
overrideprotectedvirtual

Must be implemented in all derived classes to specify the amount of memory they are using. An implementation must add it's memory usage to the accumulator before calling memoryUsage() on its base class.

Implements IECore::Object.

template<class T>
void IECore::GeometricTypedData< T >::save ( Object::SaveContext context) const
overrideprotectedvirtual

Must be implemented in all derived classes. Implementations should first call the parent class save() method, then call context->container() before filling the returned container with their member data. Classes with no member data may omit the call to container(), resulting in smaller file sizes.

Implements IECore::Object.


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