HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SOP_CaptureLayerPaint.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: SOP Library (C++)
7  *
8  * COMMENTS: The CaptureLayerPaint SOP, which works in conjunction with the
9  * CaptureLayerPaint State and the GDT classes.
10  *
11  */
12 
13 #ifndef __SOP_CaptureLayerPaint_h__
14 #define __SOP_CaptureLayerPaint_h__
15 
16 #include "SOP_API.h"
17 #include <UT/UT_String.h>
18 #include <PRM/PRM_ChoiceList.h>
19 #include <PRM/PRM_Parm.h>
20 #include <GU/GU_Brush.h>
21 
22 #include "SOP_GDT.h"
23 #include "SOP_BrushBase.h"
24 #include "SOP_CaptureData.h"
25 #include "SOP_CaptureLayerData.h"
26 
27 class PRM_MenuEntry;
28 class PRM_Name;
29 //class PRM_Parm;
30 
31 enum {
32  // Group parameters
35 
37 
39 
40 #define SOP_CAPTURELAYERPAINT_NUM_DEFORM_PARMS (13)
54 
55 #define SOP_CAPTURELAYERPAINT_NUM_NIB_PARMS (18)
74 
75 #define SOP_CAPTURELAYERPAINT_NUM_SYM_PARMS (9)
85 
86 #define SOP_CAPTURELAYERPAINT_NUM_RAY_PARMS (10)
97 };
98 
100 {
101 public:
102  SOP_CaptureLayerPaint(OP_Network *net, const char *name, OP_Operator *entry);
103  virtual ~SOP_CaptureLayerPaint();
104 
105  virtual bool updateParmsFlags() override;
106 
107  static OP_Node *myConstructor(OP_Network *net,
108  const char *name,
109  OP_Operator *entry);
110 
111  static PRM_Template myTemplateList[];
112  static PRM_Template myObsoleteList[];
113 
114  virtual void setAccumulateStencil(bool) override {}
115 
116  virtual void setRayOrigin(const UT_Vector3 &orig, fpreal t) override
117  {
121  }
122  virtual void setRayOrientation(const UT_Vector3 &orient,
123  fpreal t) override
124  {
128  }
129  virtual void setHitPrimitive(int primidx, fpreal t) override
130  {
132  }
133  virtual void setHitPoint(int pt, fpreal t) override
134  {
136  }
137  virtual void setHitUVW(fpreal u, fpreal v,
138  fpreal w, fpreal t) override
139  {
143  }
144  virtual void setHitPressure(fpreal p, fpreal t) override
145  {
147  }
148  virtual void setRadius(fpreal r, fpreal t) override
149  {
151  }
152  virtual void setUVRadius(fpreal r, fpreal t) override
153  {
155  }
156  virtual void setBrushEvent(SOP_BrushEvent event) override
157  {
158  setInt(SOP_CAPTURELAYERPAINT_RAY_EVENT_IDX, 0, 0, int(event));
159  }
160  virtual void setBrushOp(SOP_BrushOp op) override
161  {
162  int iop;
163  switch (op)
164  {
165  case SOP_BRUSHOP_SMOOTHATTRIB: iop = 1; break;
166  case SOP_BRUSHOP_SMOOTHLAYER: iop = 2; break;
167  case SOP_BRUSHOP_SMOOTHSINGLE: iop = 3; break;
168  case SOP_BRUSHOP_REDUCE: iop = 4; break;
169  case SOP_BRUSHOP_ERASE: iop = 5; break;
170  case SOP_BRUSHOP_ERASESINGLE: iop = 6; break;
171  case SOP_BRUSHOP_EYEDROP: iop = 7; break;
172  case SOP_BRUSHOP_PAINT:
173  default: iop = 0; break;
174  }
176  }
177  virtual void setBrushShape(SOP_BrushShape shape) override
178  {
179  setInt(SOP_CAPTURELAYERPAINT_SHAPE_IDX, 0, 0, int(shape));
180  }
181  virtual void setProjectionType(int projtype) override
182  {
184  }
185  virtual void useForegroundColor(void) override { }
186  virtual void useBackgroundColor(void) override { }
187  virtual void setVisualization(int state) override
188  {
189  // only trigger recooks if different!
190  if( myForceVisualize != state )
191  {
192  myForceVisualize = state;
193  forceRecook();
194  }
195  }
196 
197  bool getCurrentStencilColor(OP_Context &context, UT_Color &color);
198  bool getAccumulatedModifiedPoints(UT_IntArray &changed);
199 
200 protected:
201  virtual OP_ERROR processBrushOp(OP_Context &context,
202  bool changed_input,
203  bool changed_group) override;
204 
205  virtual const char *inputLabel(unsigned idx) const override;
206  virtual int isRefInput(unsigned idx) const override;
207 
208  virtual void doErase() override;
209 
210  void updateCaptureWeight(int ptnum, const GU_Detail *pgdp,
211  float *alphas);
212 
213  virtual OP_ERROR cookInputGroups(OP_Context &context,
214  int alone = 0) override;
215  void updateStencilMappings();
216  OP_ERROR migrateStencils();
217  virtual OP_ERROR cookMySop(OP_Context &context) override;
218  void doVisualize(OP_Context &context, bool update_all);
219 
220  //
221  // I/O methods
222  //
223  virtual OP_ERROR save(std::ostream &os, const OP_SaveFlags &flags,
224  const char *path_prefix,
225  const UT_String &name_override = UT_String()
226  ) override;
227  virtual bool load(UT_IStream &is, const char *extension,
228  const char *path) override;
229 
230  virtual OP_Node *getRestGeoInput() override
231  {
232  return getInput(1);
233  }
234 
235 public:
236  virtual int altersGeometry() const override { return 0; }
237  virtual int altersColor() const override { return 1; }
238  virtual fpreal RAWRADIUS(fpreal t) override
239  { return evalFloat(SOP_CAPTURELAYERPAINT_RAD_IDX, 0, t); }
240  virtual fpreal RAWUVRADIUS(fpreal t) override
241  { return evalFloat(SOP_CAPTURELAYERPAINT_UVRAD_IDX, 0, t); }
242  virtual fpreal RADIUSPRESSURE(fpreal t) override
244  virtual fpreal RAWOPACITY(fpreal t) override
245  {return evalFloat(SOP_CAPTURELAYERPAINT_OPAC_IDX, 0, t); }
246  virtual fpreal OPACITYPRESSURE(fpreal t) override
248 
249  virtual SOP_BrushOp OP(void) override
250  {
251  return SOP_BRUSHOP_CALLBACK;
252  }
254  {
255  switch (evalInt(SOP_CAPTURELAYERPAINT_OP_IDX, 0, 0))
256  {
257  case 1: return SOP_BRUSHOP_SMOOTHATTRIB;
258  case 2: return SOP_BRUSHOP_SMOOTHLAYER;
259  case 3: return SOP_BRUSHOP_SMOOTHSINGLE;
260  case 4: return SOP_BRUSHOP_REDUCE;
261  case 5: return SOP_BRUSHOP_ERASE;
262  case 6: return SOP_BRUSHOP_ERASESINGLE;
263  case 7: return SOP_BRUSHOP_EYEDROP;
264  default: return SOP_BRUSHOP_PAINT;
265  }
266  }
267 
268  virtual int ACCUMSTENCIL(void) override { return 0; }
269 
270  virtual int PROJECTIONTYPE(void) override
272  virtual int REALTIME(void) override
274  virtual int SHAPE(fpreal t) override
275  { return evalInt(SOP_CAPTURELAYERPAINT_SHAPE_IDX, 0, t); }
276 
277 
278  virtual void brushOpCallback(
279  GA_Offset pt,
280  const UT_Array<GA_Offset> *ptneighbour,
281  GA_Offset vtx,
282  const UT_Array<GA_Offset> *vtxneighbour,
283  float alpha,
284  GEO_Delta *delta) override;
285 
286  virtual void flood(fpreal t) override;
287  static int flattenStatic(void *op, int, fpreal time,
288  const PRM_Template *);
289  void flatten(fpreal t);
290  virtual void clearAllDeltas(fpreal t) override;
291  void applyUndo(const SOP_CaptureLayerData &delta,
292  const UT_String &rootpath,
293  const UT_StringArray &mapping);
294  void applyRedo(const SOP_CaptureLayerData &delta,
295  const UT_String &rootpath,
296  const UT_StringArray &mapping);
297 
299  { return myCaptureType; }
300 
301 protected:
302  void applyDelta(const SOP_CaptureLayerData &delta,
303  const UT_String &rootpath,
304  const UT_StringArray &mapping, bool is_add);
305  int getNumStencils();
306  float getStencilValue(int snum, int ptnum);
307  void setStencilValue(int snum, int ptnum, float value);
308 
309  void createTempLayer();
310  void postOperation();
311 
312  void setupForUndo();
313  void saveUndo();
314 
315  virtual const GA_PointGroup *getPointGroup() override
316  {
317  return myPointGroup;
318  }
319  virtual bool isGroupParmDirty(OP_Context &context) override;
320 
321  int GRPTYPE()
322  { return evalInt(SOP_CAPTURELAYERPAINT_GRPTYPE_IDX, 0, 0); }
323 
325  {
327  if ( type == 3 )
329  else
330  return static_cast<GEO_Detail::CaptureType>(type);
331  }
332 
333  virtual int MERGEMODE() override { return 0; }
334  virtual void SCRIPT(UT_String &, fpreal) override {}
335  virtual int AXIS(void) override { return 0 ; }
336  virtual fpreal USERX(fpreal) override { return 0.0; }
337  virtual fpreal USERY(fpreal) override { return 0.0; }
338  virtual fpreal USERZ(fpreal) override { return 0.0; }
339 
340  virtual fpreal RAYORIENTX(fpreal t) override
342  virtual fpreal RAYORIENTY(fpreal t) override
344  virtual fpreal RAYORIENTZ(fpreal t) override
346  virtual fpreal RAYHITX(fpreal t) override
348  virtual fpreal RAYHITY(fpreal t) override
350  virtual fpreal RAYHITZ(fpreal t) override
352  virtual fpreal RAYHITU(fpreal t) override
354  virtual fpreal RAYHITV(fpreal t) override
356  virtual fpreal RAYHITW(fpreal t) override
358  virtual fpreal RAYHITPRESSURE(fpreal t) override
360  virtual int PRIMHIT(fpreal t) override
362  virtual int PTHIT(fpreal t) override
364  virtual int EVENT() override
366  virtual bool USE_FOREGROUND(void) override { return true; }
367  virtual fpreal FGR(fpreal) override { return 0.0; }
368  virtual fpreal FGG(fpreal) override { return 0.0; }
369  virtual fpreal FGB(fpreal) override { return 0.0; }
370  virtual fpreal BGR(fpreal) override { return 0.0; }
371  virtual fpreal BGG(fpreal) override { return 0.0; }
372  virtual fpreal BGB(fpreal) override { return 0.0; }
373  virtual fpreal SOFTEDGE(fpreal t) override
375  virtual void KERNEL(UT_String &str, fpreal t) override
377  virtual int UPTYPE(fpreal t) override
378  { return evalInt(SOP_CAPTURELAYERPAINT_UPTYPE_IDX, 0, t); }
379  virtual fpreal UPX(fpreal t) override
381  virtual fpreal UPY(fpreal t) override
383  virtual fpreal UPZ(fpreal t) override
385 
386  virtual fpreal PAPERNOISE(fpreal t) override
387  { return evalFloat(SOP_CAPTURELAYERPAINT_PAPER_IDX, 0, t); }
388  virtual fpreal SPLATTER(fpreal t) override
390  virtual void BITMAP(UT_String &str, fpreal t) override
392  virtual int BITMAPCHAN(fpreal t) override
394  virtual fpreal ANGLE(fpreal t) override
395  { return evalFloat(SOP_CAPTURELAYERPAINT_ANGLE_IDX, 0, t); }
396  virtual fpreal SQUASH(fpreal t) override
398  virtual int DOSTAMPING() override { return 0; }
399  virtual int WRITEALPHA() override { return 0; }
400 
401  virtual int OVERRIDECD() override { return 1; }
402  virtual void CDNAME(UT_String & /*str*/,
403  fpreal /*t*/) override{ }
404  virtual int OVERRIDEALPHA() override { return 0; }
405  virtual void ALPHANAME(UT_String & /*str*/,
406  fpreal /*t*/) override {}
407  virtual int OVERRIDENML() override { return 0; }
408  virtual void NMLNAME(UT_String & /*str*/,
409  fpreal /*t*/) override {}
410 
411  virtual fpreal SYMMETRYDIRX(fpreal t) override
413  virtual fpreal SYMMETRYDIRY(fpreal t) override
415  virtual fpreal SYMMETRYDIRZ(fpreal t) override
417  virtual fpreal SYMMETRYORIGX(fpreal t) override
419  virtual fpreal SYMMETRYORIGY(fpreal t) override
421  virtual fpreal SYMMETRYORIGZ(fpreal t) override
423  virtual int DOREFLECTION() override
425  virtual int DOROTATION() override
427  virtual int SYMMETRYROT(fpreal t) override
428  { return evalInt(SOP_CAPTURELAYERPAINT_SYMROT_IDX,0, t); }
429  virtual fpreal SYMMETRYDIST(fpreal t) override
431 
432  virtual int DOUVREFLECTION() override
434  virtual fpreal SYMMETRYUVORIGU(fpreal t) override
436  virtual fpreal SYMMETRYUVORIGV(fpreal t) override
438  virtual fpreal SYMMETRYUVANGLE(fpreal t) override
440 
441  virtual int ADDATTRIB() override { return 0; }
443  { return myForceVisualize || evalInt(SOP_CAPTURELAYERPAINT_VISUALIZE_IDX, 0, 0); }
444  int VISLAYER()
446  virtual int VISTYPE() override
447  { return evalInt(SOP_CAPTURELAYERPAINT_VISTYPE_IDX, 0, 0); }
448  virtual int VISMODE() override
449  { return evalInt(SOP_CAPTURELAYERPAINT_VISMODE_IDX, 0, 0); }
450  virtual int USECAPTURE() override { return 1; }
451  virtual int CAPTUREIDX(fpreal /*t*/) override
452  {
453  UT_String cregion_name;
454  CAPTUREREGION(cregion_name);
455  return gdp->getCaptureRegionIndex(cregion_name,
456  myCaptureType);
457  }
458  void SKELROOT(UT_String &str)
460 public:
463 protected:
464  virtual int USECONNECTIVITY() override
466  virtual int USEDEPTH() override
468  virtual fpreal DEPTH(fpreal t) override
469  { return evalFloat(SOP_CAPTURELAYERPAINT_DEPTH_IDX, 0, t); }
470  virtual fpreal HEIGHT(fpreal t) override
471  { return evalFloat(SOP_CAPTURELAYERPAINT_DEPTH_IDX, 1, t); }
477  { return evalInt(SOP_CAPTURELAYERPAINT_VISNORMALIZED_IDX, 0, 0) != 0; }
478 
479 
480  // Find out if the brush has moved or done anything to cause us to add its
481  // effect to the current gdp.
482  virtual bool hasStrokeChanged(fpreal t) override;
483  virtual bool hasStyleChanged(fpreal) override { return false; }
484 
485  // Find if the nib file has changed:
486  virtual bool hasNibFileChanged(fpreal t) override;
487  virtual bool hasAccumStencilChanged(fpreal) override { return false; }
488  virtual bool hasNibLookChanged(fpreal t) override;
489  bool hasVisChanged(fpreal t);
490 
491  virtual void buildOpDependencies() override;
492  virtual void buildParmDependency( int parm_index ) override;
493  virtual void handleOpDependency( int referenced_op_id,
494  const OP_Dependency &op_dep,
495  OP_InterestType interest_type,
496  bool &need_cook,
497  const char *old_fullpath,
498  const char *old_cwd,
499  const char *old_chan_name ) override;
500  // CaptureLayerPaint doesn't use it's GDT... This will suppress SOP_UndoGDT
501  // objects from being put on the undo stack
502  virtual void applyAndClearCurrentDelta() override {}
503 
504 public:
505  // MSS_CaptureLayerPaintState uses this to build its capture region menu
506  // too
507  static void buildCaptureRegionMenu(
508  void *data, PRM_Name *menu_entries,
509  int num_entries, const PRM_SpareData *,
510  const PRM_Parm *);
511 
512 private:
513  void updateStencilIndex();
514  int getStencilIndex();
515  void checkCaptureRegions();
516 
517  int addCaptureRegion( const char *cregion_name );
518 
519  void clearStencils();
520  int findStencilForCaptureRegion(int cregion);
521  int getStencilForCaptureRegion(int cregion);
522  int addNewStencilForCaptureRegion(int cregion);
523  void addedStencilForCaptureRegion(int snum, int cregion);
524  static bool getRootPathCandidates(OP_Node &node, void *data);
525 
526  bool boneCapture() const
527  { return myCaptureType == GEO_Detail::CAPTURE_BONE; }
528  bool metaCapture() const
529  { return myCaptureType == GEO_Detail::CAPTURE_META; }
530  bool wireCapture() const
531  { return myCaptureType == GEO_Detail::CAPTURE_WIRE; }
532  bool muscleCapture() const
533  { return myCaptureType == GEO_Detail::CAPTURE_MUSCLE; }
534 
535  bool filterForCurrentStencilIndex(UT_IntArray &regions,
536  UT_FloatArray &weights);
537 
538 private:
539  UT_String myRootPath;
540 
541  static PRM_ChoiceList theCaptureRegionMenu;
542 
543  // stencil data and mapping to capture regions
544  SOP_CaptureLayerData myStencils;
545  UT_StringArray myStencilMapping;
546  UT_IntArray myCaptureRegionMapping;
547  UT_IntArray myRegionToStencilMapping;
548  int myNullStencilIndex;
549 
550  // temporary structures needed for smooth operation
551  SOP_CaptureLayerData *myTempSmoothLayer;
552  float *myTempSmoothAlpha;
553 
554  // current brush data
555  int myStencilIndex;
556 
557  // data for undo
558  SOP_CaptureLayerData myDelta;
559  UT_String myOldRootPath;
560  UT_StringArray myOldStencilMapping;
561 
562  // list of what has been modified so we can do incremental cooks
563  UT_IntArray myModifiedPoints;
564  bool myLastVisualize;
565 
566  // cache of changes for downstream SOPs. it is an accumulation of
567  // myModifiedPoints.
568  UT_IntArray myAccumulatedModifiedPoints;
569  bool myHaveAccumulatedModifiedPoints;
570 
571  const GA_PointGroup *myPointGroup;
572  UT_String myPrimitiveClosureName;
573  UT_String myPointClosureName;
574  bool myAddWarningFlag;
575  bool myFlattenFlag;
576 
577  // temporary data for migrating from houdini 6.6
578  bool myMigrationNeeded;
579  UT_String myTestCregionName;
580  UT_IntArray myTestCregionCandidates;
581 
582  UT_String myLoadedRootPath;
583  UT_String myLoadedPathChanged;
584  UT_StringArray myLoadedStencilMapping;
585 
586  // The current type of capture attributes we're modifying.
587  GEO_Detail::CaptureType myCaptureType;
588 };
589 
590 #endif
virtual fpreal FGG(fpreal) override
virtual OP_ERROR cookInputGroups(OP_Context &context, int alone=0)
virtual int VISMODE() override
virtual int UPTYPE(fpreal t) override
virtual void setHitPoint(int pt, fpreal t) override
virtual fpreal SYMMETRYDIST(fpreal t) override
virtual bool updateParmsFlags()
virtual fpreal SYMMETRYORIGY(fpreal t) override
virtual OP_ERROR save(std::ostream &os, const OP_SaveFlags &flags, const char *pathPrefix, const UT_String &name_override=UT_String()) override
virtual void buildOpDependencies()
virtual void setUVRadius(fpreal r, fpreal t) override
virtual bool USE_FOREGROUND(void) override
virtual int BITMAPCHAN(fpreal t) override
virtual void setVisualization(int state) override
virtual fpreal RAYHITPRESSURE(fpreal t) override
virtual fpreal UPZ(fpreal t) override
virtual int altersGeometry() const override
virtual bool hasStyleChanged(fpreal) override
virtual fpreal USERZ(fpreal) override
const GLdouble * v
Definition: glcorearb.h:836
virtual int MERGEMODE() override
virtual fpreal SYMMETRYUVORIGV(fpreal t) override
virtual void useForegroundColor(void) override
virtual GEO_Detail::CaptureType CAPTURETYPE() override
GLuint color
Definition: glcorearb.h:1260
virtual void setHitPrimitive(int primidx, fpreal t) override
virtual int CAPTUREIDX(fpreal) override
GLsizei const GLchar *const * path
Definition: glcorearb.h:3340
virtual void applyAndClearCurrentDelta() override
virtual fpreal SYMMETRYDIRZ(fpreal t) override
virtual fpreal SYMMETRYUVORIGU(fpreal t) override
virtual fpreal DEPTH(fpreal t) override
virtual void forceRecook(bool evensmartcache=true)
virtual void setBrushEvent(SOP_BrushEvent event) override
virtual int REALTIME(void) override
fpreal evalFloat(int pi, int vi, fpreal t) const
virtual void handleOpDependency(int referenced_op_id, const OP_Dependency &op_dep, OP_InterestType interest_type, bool &need_cook, const char *old_fullpath, const char *old_cwd, const char *old_chan_name)
virtual bool load(UT_IStream &is, const char *extension, const char *path=0) override
UT_ErrorSeverity
Definition: UT_Error.h:25
GLbitfield flags
Definition: glcorearb.h:1595
virtual fpreal PAPERNOISE(fpreal t) override
virtual fpreal RAYHITV(fpreal t) override
virtual fpreal SYMMETRYDIRY(fpreal t) override
virtual const char * inputLabel(unsigned idx) const override
virtual int VISTYPE() override
virtual void setHitPressure(fpreal p, fpreal t) override
virtual void useBackgroundColor(void) override
virtual fpreal SYMMETRYDIRX(fpreal t) override
SYS_FORCE_INLINE T & x(void)
Definition: UT_Vector3.h:581
virtual fpreal RAWRADIUS(fpreal t) override
virtual fpreal SQUASH(fpreal t) override
virtual void clearAllDeltas(fpreal t)
virtual fpreal RAYHITX(fpreal t) override
virtual fpreal FGB(fpreal) override
virtual fpreal RAYHITZ(fpreal t) override
virtual fpreal RAYORIENTY(fpreal t) override
virtual fpreal ANGLE(fpreal t) override
virtual fpreal RAYORIENTX(fpreal t) override
struct _cl_event * event
Definition: glcorearb.h:2960
virtual fpreal SYMMETRYORIGX(fpreal t) override
virtual const GA_PointGroup * getPointGroup() override
GA_Size GA_Offset
Definition: GA_Types.h:617
virtual void setHitUVW(fpreal u, fpreal v, fpreal w, fpreal t) override
SYS_FORCE_INLINE T & z(void)
Definition: UT_Vector3.h:585
void SKELROOT(UT_String &str)
virtual bool hasNibFileChanged(fpreal t)=0
virtual void ALPHANAME(UT_String &, fpreal) override
virtual fpreal USERY(fpreal) override
virtual void setRayOrigin(const UT_Vector3 &orig, fpreal t) override
virtual fpreal RAYHITU(fpreal t) override
virtual fpreal BGR(fpreal) override
CaptureType
Methods for manipulating capture weights (GEO_CaptureWeight.C)
Definition: GEO_Detail.h:915
OP_InterestType
Definition: OP_DataTypes.h:44
virtual int DOREFLECTION() override
virtual void setRadius(fpreal r, fpreal t) override
virtual int ACCUMSTENCIL(void) override
virtual int USEDEPTH() override
virtual int DOROTATION() override
virtual SOP_BrushOp OP(void) override
void evalString(UT_String &val, int pi, int vi, fpreal t) const
virtual void flood(fpreal t)
virtual fpreal OPACITYPRESSURE(fpreal t) override
void setFloat(int parmi, int vectori, fpreal t, fpreal value, int h=0)
virtual int ADDATTRIB() override
OP_Node * getInput(unsigned idx, bool mark_used=false) const
Returns the node connected to a particular input (may be null).
virtual int SYMMETRYROT(fpreal t) override
virtual fpreal SOFTEDGE(fpreal t) override
virtual void KERNEL(UT_String &str, fpreal t) override
virtual fpreal SYMMETRYORIGZ(fpreal t) override
GLfloat GLfloat GLfloat alpha
Definition: glcorearb.h:111
SOP_BrushOp
Definition: SOP_BrushBase.h:38
virtual fpreal RAYHITY(fpreal t) override
virtual int DOSTAMPING() override
virtual void doErase()=0
virtual bool hasAccumStencilChanged(fpreal) override
GEO_Detail::CaptureType getCaptureType() const
virtual int OVERRIDENML() override
GLboolean * data
Definition: glcorearb.h:130
virtual int WRITEALPHA() override
GLuint const GLchar * name
Definition: glcorearb.h:785
virtual fpreal UPY(fpreal t) override
virtual fpreal SPLATTER(fpreal t) override
virtual fpreal BGG(fpreal) override
virtual fpreal HEIGHT(fpreal t) override
GA_API const UT_StringHolder orient
#define SOP_GDT_GRP_IDX
Definition: SOP_GDT.h:22
virtual int EVENT() override
virtual int PROJECTIONTYPE(void) override
SYS_FORCE_INLINE T & y(void)
Definition: UT_Vector3.h:583
GLsizei const GLfloat * value
Definition: glcorearb.h:823
double fpreal
Definition: SYS_Types.h:263
virtual fpreal RAWOPACITY(fpreal t) override
virtual void NMLNAME(UT_String &, fpreal) override
virtual void brushOpCallback(GA_Offset pt, const UT_Array< GA_Offset > *ptneighbour, GA_Offset vtx, const UT_Array< GA_Offset > *vtxneighbour, float alpha, GEO_Delta *delta)
virtual bool hasStrokeChanged(fpreal t)=0
virtual fpreal RADIUSPRESSURE(fpreal t) override
virtual fpreal BGB(fpreal) override
virtual fpreal UPX(fpreal t) override
virtual bool isGroupParmDirty(OP_Context &context)
virtual int USECONNECTIVITY() override
virtual int AXIS(void) override
virtual void setProjectionType(int projtype) override
virtual fpreal FGR(fpreal) override
virtual int DOUVREFLECTION() override
void setInt(int parmi, int vectori, fpreal t, exint value)
virtual int PRIMHIT(fpreal t) override
virtual int PTHIT(fpreal t) override
virtual int SHAPE(fpreal t) override
virtual void SCRIPT(UT_String &, fpreal) override
#define SOP_API
Definition: SOP_API.h:10
virtual int USECAPTURE() override
virtual void buildParmDependency(int parm_index)
virtual void setBrushShape(SOP_BrushShape shape) override
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:107
virtual int altersColor() const override
virtual OP_ERROR processBrushOp(OP_Context &context, bool changed_input, bool changed_group)
void CAPTUREREGION(UT_String &str)
GLubyte GLubyte GLubyte GLubyte w
Definition: glcorearb.h:856
virtual bool hasNibLookChanged(fpreal t)=0
exint evalInt(int pi, int vi, fpreal t) const
SOP_BrushEvent
Definition: SOP_BrushBase.h:30
GLboolean r
Definition: glcorearb.h:1221
virtual OP_ERROR cookMySop(OP_Context &context)
virtual fpreal RAWUVRADIUS(fpreal t) override
SOP_BrushShape
Definition: SOP_BrushBase.h:62
virtual int OVERRIDEALPHA() override
virtual fpreal SYMMETRYUVANGLE(fpreal t) override
virtual void CDNAME(UT_String &, fpreal) override
virtual OP_Node * getRestGeoInput() override
virtual void setBrushOp(SOP_BrushOp op) override
virtual int isRefInput(unsigned idx) const
virtual void setRayOrientation(const UT_Vector3 &orient, fpreal t) override
virtual fpreal USERX(fpreal) override
virtual void setAccumulateStencil(bool) override
virtual void BITMAP(UT_String &str, fpreal t) override
virtual fpreal RAYHITW(fpreal t) override
virtual int OVERRIDECD() override
virtual fpreal RAYORIENTZ(fpreal t) override