aboutsummaryrefslogtreecommitdiff
path: root/mayaPlug/shaveHairGeomIt.h
blob: cba6f67fa5525ed5aa8cd0b4296ef6e354dae164 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef shaveHairGeomIt_h
#define shaveHairGeomIt_h

// Shave and a Haircut
// (c) 2019 Epic Games
// US Patent 6720962

#include <maya/MPxGeometryIterator.h>

#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