28 #ifndef __GABC_GEOWalker__
29 #define __GABC_GEOWalker__
122 ABC_GFILTER_POLYMESH = 0x01,
123 ABC_GFILTER_CURVES = 0x02,
124 ABC_GFILTER_NUPATCH = 0x04,
125 ABC_GFILTER_POINTS = 0x08,
126 ABC_GFILTER_SUBD = 0x10,
127 ABC_GFILTER_ALL = (ABC_GFILTER_POLYMESH |
129 ABC_GFILTER_NUPATCH |
160 bool record_time_range=
false);
166 bool interrupted()
const override;
169 void updateAbcPrims();
176 {
return myErrorHandler; }
178 {
return myRootObjectPath; }
180 {
return myObjectPattern; }
182 {
return myExcludeObjects; }
184 {
return myNameMapPtr; }
186 {
return myFacesetAttribute; }
197 {
return myLoadMode == LOAD_ABC_PRIMITIVES
198 || myLoadMode == LOAD_ABC_UNPACKED; }
227 bool setRootObject(
const std::vector<std::string> &filenames,
229 void setExcludeObjects(
const char *
s);
231 { myObjectPattern =
s; }
233 { myFacesetAttribute =
s; }
235 { myNameMapPtr =
ptr; }
242 void setReusePrimitives(
bool v,
256 void setPointMode(AbcPrimPointMode
mode,
261 { mySizeCullMode =
mode; mySizeCompare =
cmp; mySize =
size; }
302 void trackLastFace(
GA_Size nfaces);
303 void trackSubd(
GA_Size nfaces);
318 bool matchAnimationFilter(
const GABC_IObject &obj)
const;
319 bool matchGeometryFilter(
const GABC_IObject &obj)
const;
324 bool abcPrimPointMode()
const
325 {
return myAbcPrimPointMode; }
327 {
return myAbcSharedPoint; }
328 void recordTimeRange(
const GABC_IObject &node);
331 AbcPolySoup myPolySoup;
332 AbcPrimPointMode myAbcPrimPointMode;
333 AFilter myAnimationFilter;
334 int myGeometryFilter;
335 BoxCullMode myBoxCullMode;
336 SizeCullMode mySizeCullMode;
337 SizeCompare mySizeCompare;
338 GroupMode myGroupMode;
340 LoadUserPropsMode myLoadUserProps;
347 GABC_IError &myErrorHandler;
359 std::stack<GABC_VisibilityType> myVisibilityStack;
369 bool myBuildAbcXform;
370 bool myBuildAbcShape;
373 bool myPathAttributeChanged;
374 bool myReusePrimitives;
375 bool myUseVisibility;
376 bool myStaticTimeZero;
377 bool myRecordTimeRange;
381 bool myTopologyConstant;
382 bool myTransformConstant;
383 bool myAllTransformConstant;
const std::string & objectPattern() const
void setGroupMode(GroupMode m)
cvex test(vector P=0;int unbound=3;export float s=0;export vector Cf=0;)
bool buildAbcShape() const
AFilter
Animating object filter.
void setFrame(fpreal f, fpreal fps)
LoadMode loadMode() const
GLsizei const GLchar *const * string
bool useVisibility() const
const GEO_PackedNameMapPtr & nameMapPtr() const
void setStaticTimeZero(bool v)
GA_PrimitiveGroup * subdGroup() const
void setIncludeXform(bool v)
bool includeXform() const
bool reusePrimitives() const
GLboolean GLboolean GLboolean GLboolean a
void setUserProps(LoadUserPropsMode m)
bool allTransformConstant() const
True if all transforms are constant.
const UT_Matrix4D & getTransform() const
Get the current transform.
AbcPolySoup polySoup() const
exint GA_Size
Defines the bit width for index and offset types in GA.
bool topologyConstant() const
True if all shapes have constant topology.
AbcPrimPointMode
How Alembic delayed load primitives are attached to GA points.
Matrix44< double > M44d
4x4 matrix of double
#define GA_INVALID_OFFSET
GA_Offset lastFaceStart() const
IMATH_HOSTDEVICE constexpr int cmp(T a, T b) IMATH_NOEXCEPT
void setNonConstantTopology()
LoadUserPropsMode loadUserProps() const
This class provides a way to manage a reference to an attribute permitting Read-Write access...
ISampleSelector timeSample() const
Get a sample selector for the given time.
void setNameMapPtr(const GEO_PackedNameMapPtr &ptr)
const UT_StringHolder & facesetAttribute() const
void setSizeCullMode(SizeCullMode mode, SizeCompare cmp, fpreal size)
GA_Offset primitiveCount() const
Keeps track of the number of geometry primitives added in traversal.
const std::string & rootObjectPath() const
GA_Size lastFaceCount() const
void setObjectPattern(const char *s)
GLuint const GLchar * name
bool rebuiltNURBS() const
void setBuildAbcXform(bool v)
GFilter
Geometry type filter.
GA_Offset vertexCount() const
Keeps track of the number of geometry vertices added in traversal.
AbcPolySoup
Whether to build polysoup primitives when it's possible.
void setAnimationFilter(AFilter m)
void setGeometryFilter(int m)
void setUseVisibility(bool v)
GABC_IError & errorHandler()
LoadUserPropsMode
How to load user properties.
bool isConstant() const
True if all shapes and transforms are constant.
bool buildAbcXform() const
void setPathAttributeChanged(bool v)
void setBuildLocator(bool v)
bool buildAbcPrim() const
void setLoadMode(LoadMode mode)
void setFacesetAttribute(const UT_StringHolder &s)
GA_Offset pointCount() const
Keeps track of the number of geometry points added in traversal.
bool staticTimeZero() const
bool transformConstant() const
True if the transform from the root to the current node is constant.
Walk an Alembic tree to create Houdini geometry.
void setBuildAbcShape(bool v)
GEO_ViewportLOD viewportLOD() const
bool pathAttributeChanged() const
void setPolySoup(AbcPolySoup soup)
GU_Detail & detail() const
bool buildLocator() const
void setViewportLOD(GEO_ViewportLOD v)
void setSubdGroup(GA_PrimitiveGroup *g)
const UT_StringArray & excludeObjects() const