35 #ifndef IECOREHOUDINI_TOHOUDINIATTRIBCONVERTER_H
36 #define IECOREHOUDINI_TOHOUDINIATTRIBCONVERTER_H
38 #include "GA/GA_AttributeRef.h"
39 #include "GU/GU_Detail.h"
41 #include "IECore/Data.h"
43 #include "IECoreHoudini/TypeIds.h"
44 #include "IECoreHoudini/ToHoudiniConverter.h"
49 IE_CORE_FORWARDDECLARE( ToHoudiniAttribConverter );
64 GA_RWAttributeRef
convert( std::string name, GU_Detail *geo )
const;
65 GA_RWAttributeRef
convert( std::string name, GU_Detail *geo,
const GA_Range &range )
const;
79 virtual GA_RWAttributeRef
doConversion(
const IECore::Data *data, std::string name, GU_Detail *geo,
const GA_Range &range )
const = 0;
81 typedef ToHoudiniAttribConverterPtr (*CreatorFn)(
const IECore::Data *data );
83 static void registerConverter(
IECore::TypeId fromType, CreatorFn creator );
93 static ToHoudiniAttribConverterPtr creator(
const IECore::Data *data );
103 bool operator < (
const Types &other )
const;
106 typedef std::map<Types, CreatorFn> TypesToFnsMap;
107 static TypesToFnsMap *typesToFns();
113 #include "ToHoudiniAttribConverter.inl"
115 #endif // IECOREHOUDINI_TOHOUDINIATTRIBCONVERTER_H
static ToHoudiniAttribConverterPtr create(const IECore::Data *data)
GA_RWAttributeRef convert(std::string name, GU_Detail *geo) const
The IECoreHoudini namespace holds all the functionality of libIECoreHoudini.
Definition: CoreHoudini.h:51
const std::string & description() const
Returns a description for this parameterised object.
Definition: ToHoudiniConverter.h:47
Definition: ToHoudiniAttribConverter.h:54
TypeId
Definition: TypeIds.h:46
Definition: ToHoudiniAttribConverter.h:88
virtual GA_RWAttributeRef doConversion(const IECore::Data *data, std::string name, GU_Detail *geo) const =0
Must be implemented by derived classes to create a GB_Attribute on the given GU_Detail and fill it wi...