#ifndef shaveHairGeomIt_h #define shaveHairGeomIt_h // Shave and a Haircut // (c) 2019 Epic Games // US Patent 6720962 #include #if MAYA_API_VERSION < 20180000 class MObjectArray; class MPoint; #endif class shaveHairShape; class shaveHairGeomIt : public MPxGeometryIterator { public: shaveHairGeomIt(void* geom, MObjectArray& components); shaveHairGeomIt(void* geom, MObject& components); virtual void component(MObject& comp); virtual bool hasNormals() const { return false; } virtual bool hasPoints() const { return true; } virtual bool isDone() const { return mIsDone; } virtual int index() const; virtual int indexUnsimplified() const; virtual int iteratorCount() const; virtual void next(); virtual MPoint point() const; virtual void reset(); virtual void setPoint(const MPoint& newPoint) const; virtual int setPointGetNext(MPoint& point); protected: MObjectArray mComponents; int mCurGuide; int mCurVert; int mElementIndex; bool mIsDone; shaveHairShape* mHairShape; int mIterationIndex; int mNumGuides; unsigned mObjIndex; bool mWholeGeom; }; #endif