12 #ifndef __SOP_FacePointParser_h__
13 #define __SOP_FacePointParser_h__
22 #define CHAR_POINT 'p'
23 #define CHAR_POINTCOPY 'P'
24 #define CHAR_RELATIVE '@'
25 #define CHAR_BREAKPOINT 'b'
26 #define CHAR_BRACKETOPEN '['
27 #define CHAR_BRACKETCLOSE ']'
28 #define CHAR_XYZW_DELIM ','
29 #define CHAR_UV_DELIM ','
43 RefTypeBreakpoint = 1,
51 virtual void resetPointList() = 0;
52 virtual void addPoint(
const UT_Vector4R &
v,
bool relative,
54 RefType reftype = RefTypeNone,
56 virtual void referencePoint(
GA_Offset point) = 0;
73 void handleCollectX();
74 void handleCollectY();
75 void handleCollectZ();
76 void handleCollectW();
77 void handleCollectP();
78 void handleCollectBU();
79 void handleCollectBV();
84 bool getPosFromBreakpoint(
int u,
int v,
115 { myPointList = ptarray; }
130 myPointList->setSize(0);
143 int pid = -1)
override
145 #define DEBUG_addPoint 0
156 UTformat(
"Appending {} {} {}\n", v[0], v[1], v[2]);
160 myPointList->emplace_back(v[0], v[1], v[2]);
~SOP_PointPositionParser() override
virtual bool dispatch(char c)=0
~SOP_FacePointParser() override
virtual void handleError()=0
void handleError() override
void addPoint(const UT_Vector4R &pt, bool relative, bool use_w, const UT_Vector4R &last, SOP_FacePointParser::RefType reftype=RefTypeNone, int pid=-1) override
void referencePoint(GA_Offset point) override
GA_Size GA_Index
Define the strictness of GA_Offset/GA_Index.
UT_Vector3Array * myPointList
__hostdev__ uint64_t last(uint32_t i) const
void pointList(UT_Vector3Array *ptarray)
SOP_PointPositionParser(const GU_Detail *gdp, const UT_StringHolder &str)
virtual void resetPointList()=0
void handleError() override
const GU_Detail * myRefGdp
void resetPointList() override
constexpr SYS_FORCE_INLINE T & w() noexcept
virtual void handleStart()=0