MCPcopy Create free account
hub / github.com/ImageEngine/cortex / getGridFromPyObject

Function getGridFromPyObject

src/IECoreVDB/bindings/IECoreVDBModule.cpp:99–126  ·  view source on GitHub ↗

openvdb/python/pyGrid.h

Source from the content-addressed store, hash-verified

97
98// openvdb/python/pyGrid.h
99openvdb::GridBase::Ptr getGridFromPyObject( const boost::python::object &gridObj )
100{
101 if( !gridObj )
102 {
103 return openvdb::GridBase::Ptr();
104 }
105
106#define CONVERT_GRID_TO_BASE( GridPtrType ) \
107 { \
108 boost::python::extract<GridPtrType> x(gridObj); \
109 if (x.check()) return x(); \
110 }
111
112 // Extract a grid pointer of one of the supported types
113 // from the input object, then cast it to a base pointer.
114 CONVERT_GRID_TO_BASE( openvdb::FloatGrid::Ptr );
115 CONVERT_GRID_TO_BASE( openvdb::Vec3SGrid::Ptr );
116 CONVERT_GRID_TO_BASE( openvdb::BoolGrid::Ptr );
117 CONVERT_GRID_TO_BASE( openvdb::DoubleGrid::Ptr );
118 CONVERT_GRID_TO_BASE( openvdb::Int32Grid::Ptr );
119 CONVERT_GRID_TO_BASE( openvdb::Int64Grid::Ptr );
120 CONVERT_GRID_TO_BASE( openvdb::Vec3IGrid::Ptr );
121 CONVERT_GRID_TO_BASE( openvdb::Vec3DGrid::Ptr );
122
123#undef CONVERT_GRID_TO_BASE
124
125 throw openvdb::TypeError( className( gridObj ) + " is not a supported OpenVDB grid type" );
126}
127
128} // namespace iepyopenvdb
129

Callers 1

insertGridFunction · 0.85

Calls 1

classNameFunction · 0.85

Tested by

no test coverage detected