11 #ifndef __GU_PrimVDB__
12 #define __GU_PrimVDB__
52 #if 0 //ndef SESI_OPENVDB
64 return *theDefinition;
76 static void convertVolumesToVDBs(
84 bool activate_inside =
true);
90 static void convertVDBs(
96 static void convertVDBs(
102 bool split_disjoint_volumes);
124 return GU_PrimVDB::buildFromGridAdapter(gdp, &grid,
src,
name);
139 const bool flood_sdf =
false,
140 const bool prune =
false,
141 const float tolerance = 0.0,
142 const bool activate_inside_sdf =
true);
147 static void convertPrimVolumeToPolySoup(
151 void normal(NormalComp &output)
const override;
152 void normal(NormalCompD &output)
const override;
156 void syncAttrsFromMetadata();
166 const openvdb::GridBase& grid,
169 GU_PrimVDB::createGridAttrsFromMetadataAdapter(prim, &grid, gdp);
182 const openvdb::MetaMap& meta_map,
185 GU_PrimVDB::createAttrsFromMetadataAdapter(owner, element, &meta_map, gdp);
194 openvdb::GridBase& grid,
198 GU_PrimVDB::createMetadataFromGridAttrsAdapter(&grid, prim, gdp);
208 openvdb::MetaMap& meta_map,
213 GU_PrimVDB::createMetadataFromAttrsAdapter(&meta_map, owner, element, geo);
223 void expandBorderFromPrimVolume(
231 bool split_disjoint_volumes,
232 bool &success)
const;
236 bool split_disjoint_volumes)
const;
242 bool &success)
const;
249 static void createGridAttrsFromMetadataAdapter(
253 static void createMetadataFromGridAttrsAdapter(
258 static void createAttrsFromMetadataAdapter(
261 const void* meta_map_ptr,
264 static void createMetadataFromAttrsAdapter(
273 friend class GU_PrimitiveFactory;
279 #if 0 //ndef SESI_OPENVDB
280 namespace openvdb_houdini {
285 #endif // __GU_PrimVDB__
GU_PrimVDB(GU_Detail *gdp, GA_Offset offset=GA_INVALID_OFFSET)
NOTE: This constructor should only be called via GU_PrimitiveFactory.
Definition of a geometry attribute.
#define SYS_DEPRECATED_PUSH_DISABLE()
#define SYS_DEPRECATED_POP_DISABLE()
virtual int64 getMemoryUsage() const
#define GA_INVALID_OFFSET
virtual void normal(NormalComp &output) const =0
static SYS_FORCE_INLINE void createAttrsFromMetadata(GA_AttributeOwner owner, GA_Offset element, const openvdb::MetaMap &meta_map, GEO_Detail &gdp)
Transfer any metadata associated with the given MetaMap to attributes on the given element specified ...
static SYS_FORCE_INLINE void createMetadataFromGridAttrs(openvdb::GridBase &grid, const GEO_PrimVDB &prim, const GEO_Detail &gdp)
Transfer a VDB primitive's attributes to a VDB grid as metadata.
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
virtual void countMemory(UT_MemoryCounter &counter) const
static SYS_FORCE_INLINE void createMetadataFromAttrs(openvdb::MetaMap &meta_map, GA_AttributeOwner owner, GA_Offset element, const GEO_Detail &geo)
Transfer attributes to VDB metadata.
GLuint const GLchar * name
GA_API const UT_StringHolder parms
static SYS_FORCE_INLINE GU_PrimVDB * buildFromGrid(GU_Detail &gdp, openvdb::GridBase::Ptr grid, const GEO_PrimVDB *src=NULL, const char *name=NULL)
const GA_PrimitiveDefinition & getTypeDef() const override
virtual GEO_Primitive * convert(GEO_ConvertParms &parms, GA_PointGroup *usedpts=0)=0
static SYS_FORCE_INLINE void createGridAttrsFromMetadata(const GEO_PrimVDB &prim, const openvdb::GridBase &grid, GEO_Detail &gdp)
Transfer any metadata associated with a VDB grid to primitive attributes on a VDB primitive...
Definition of a geometric primitive.
virtual GEO_Primitive * convertNew(GEO_ConvertParms &parms)=0
GEO_ConvertParms GU_ConvertParms