HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups 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 (11)
98 };
99 
101 {
102 public:
103  SOP_CaptureLayerPaint(OP_Network *net, const char *name, OP_Operator *entry);
104  virtual ~SOP_CaptureLayerPaint();
105 
106  virtual bool updateParmsFlags() override;
107 
108  static OP_Node *myConstructor(OP_Network *net,
109  const char *name,
110  OP_Operator *entry);
111 
112  static PRM_Template myTemplateList[];
113  static PRM_Template myObsoleteList[];
114 
115  virtual void setAccumulateStencil(bool) override {}
116 
117  virtual void setRayOrigin(const UT_Vector3 &orig, fpreal t) override
118  {
122  }
123  virtual void setRayOrientation(const UT_Vector3 &orient,
124  fpreal t) override
125  {
129  }
130  virtual void setHitPrimitive(int primidx, fpreal t) override
131  {
133  }
134  virtual void setHitPoint(int pt, fpreal t) override
135  {
137  }
138  virtual void setHitUVW(fpreal u, fpreal v,
139  fpreal w, fpreal t) override
140  {
144  }
145  virtual void setHitPressure(fpreal p, fpreal t) override
146  {
148  }
149  virtual void setRadius(fpreal r, fpreal t) override
150  {
152  }
153  virtual void setUVRadius(fpreal r, fpreal t) override
154  {
156  }
157  virtual void setBrushEvent(SOP_BrushEvent event) override
158  {
159  setInt(SOP_CAPTURELAYERPAINT_RAY_EVENT_IDX, 0, 0, int(event));
160  }
161  virtual void setBrushOp(SOP_BrushOp op) override
162  {
163  int iop;
164  switch (op)
165  {
166  case SOP_BRUSHOP_SMOOTHATTRIB: iop = 1; break;
167  case SOP_BRUSHOP_SMOOTHLAYER: iop = 2; break;
168  case SOP_BRUSHOP_SMOOTHSINGLE: iop = 3; break;
169  case SOP_BRUSHOP_REDUCE: iop = 4; break;
170  case SOP_BRUSHOP_ERASE: iop = 5; break;
171  case SOP_BRUSHOP_ERASESINGLE: iop = 6; break;
172  case SOP_BRUSHOP_EYEDROP: iop = 7; break;
173  case SOP_BRUSHOP_PAINT:
174  default: iop = 0; break;
175  }
177  }
178  virtual void setBrushShape(SOP_BrushShape shape) override
179  {
180  setInt(SOP_CAPTURELAYERPAINT_SHAPE_IDX, 0, 0, int(shape));
181  }
182  virtual void setProjectionType(int projtype) override
183  {
185  }
186  virtual void useForegroundColor(void) override { }
187  virtual void useBackgroundColor(void) override { }
188  virtual void setVisualization(int state) override
189  {
190  // only trigger recooks if different!
191  if( myForceVisualize != state )
192  {
193  myForceVisualize = state;
194  forceRecook();
195  }
196  }
197 
198  bool getCurrentStencilColor(OP_Context &context, UT_Color &color);
199  bool getAccumulatedModifiedPoints(UT_IntArray &changed);
200 
201 protected:
202  virtual OP_ERROR processBrushOp(OP_Context &context,
203  bool changed_input,
204  bool changed_group) override;
205 
206  virtual const char *inputLabel(unsigned idx) const override;
207  virtual int isRefInput(unsigned idx) const override;
208 
209  virtual void doErase() override;
210 
211  void updateCaptureWeight(int ptnum, const GU_Detail *pgdp,
212  float *alphas);
213 
214  virtual OP_ERROR cookInputGroups(OP_Context &context,
215  int alone = 0) override;
216  void updateStencilMappings();
217  OP_ERROR migrateStencils();
218  virtual OP_ERROR cookMySop(OP_Context &context) override;
219  void doVisualize(OP_Context &context, bool update_all);
220 
221  //
222  // I/O methods
223  //
224  virtual OP_ERROR save(std::ostream &os, const OP_SaveFlags &flags,
225  const char *path_prefix,
226  const UT_String &name_override = UT_String()
227  ) override;
228  virtual bool load(UT_IStream &is, const char *extension,
229  const char *path) override;
230 
231  virtual OP_Node *getRestGeoInput() override
232  {
233  return getInput(1);
234  }
235 
236 public:
237  virtual int altersGeometry() const override { return 0; }
238  virtual int altersColor() const override { return 1; }
239  virtual fpreal RAWRADIUS(fpreal t) override
240  { return evalFloat(SOP_CAPTURELAYERPAINT_RAD_IDX, 0, t); }
241  virtual fpreal RAWUVRADIUS(fpreal t) override
242  { return evalFloat(SOP_CAPTURELAYERPAINT_UVRAD_IDX, 0, t); }
243  virtual fpreal RADIUSPRESSURE(fpreal t) override
245  virtual fpreal RAWOPACITY(fpreal t) override
246  {return evalFloat(SOP_CAPTURELAYERPAINT_OPAC_IDX, 0, t); }
247  virtual fpreal OPACITYPRESSURE(fpreal t) override
249 
250  virtual SOP_BrushOp OP(void) override
251  {
252  return SOP_BRUSHOP_CALLBACK;
253  }
255  {
256  switch (evalInt(SOP_CAPTURELAYERPAINT_OP_IDX, 0, 0))
257  {
258  case 1: return SOP_BRUSHOP_SMOOTHATTRIB;
259  case 2: return SOP_BRUSHOP_SMOOTHLAYER;
260  case 3: return SOP_BRUSHOP_SMOOTHSINGLE;
261  case 4: return SOP_BRUSHOP_REDUCE;
262  case 5: return SOP_BRUSHOP_ERASE;
263  case 6: return SOP_BRUSHOP_ERASESINGLE;
264  case 7: return SOP_BRUSHOP_EYEDROP;
265  default: return SOP_BRUSHOP_PAINT;
266  }
267  }
268 
269  virtual int ACCUMSTENCIL(void) override { return 0; }
270 
271  virtual int PROJECTIONTYPE(void) override
273  virtual int REALTIME(void) override
275  virtual int SHAPE(fpreal t) override
276  { return evalInt(SOP_CAPTURELAYERPAINT_SHAPE_IDX, 0, t); }
277 
278 
279  virtual void brushOpCallback(
280  GA_Offset pt,
281  const UT_Array<GA_Offset> *ptneighbour,
282  GA_Offset vtx,
283  const UT_Array<GA_Offset> *vtxneighbour,
284  float alpha,
285  GEO_Delta *delta) override;
286 
287  virtual void flood(fpreal t) override;
288  static int flattenStatic(void *op, int, fpreal time,
289  const PRM_Template *);
290  void flatten(fpreal t);
291  virtual void clearAllDeltas(fpreal t) override;
292  void applyUndo(const SOP_CaptureLayerData &delta,
293  const UT_String &rootpath,
294  const UT_StringArray &mapping);
295  void applyRedo(const SOP_CaptureLayerData &delta,
296  const UT_String &rootpath,
297  const UT_StringArray &mapping);
298 
300  { return myCaptureType; }
301 
302 protected:
303  void applyDelta(const SOP_CaptureLayerData &delta,
304  const UT_String &rootpath,
305  const UT_StringArray &mapping, bool is_add);
306  int getNumStencils();
307  float getStencilValue(int snum, int ptnum);
308  void setStencilValue(int snum, int ptnum, float value);
309 
310  void createTempLayer();
311  void postOperation();
312 
313  void setupForUndo();
314  void saveUndo();
315 
316  virtual const GA_PointGroup *getPointGroup() override
317  {
318  return myPointGroup;
319  }
320  virtual bool isGroupParmDirty(OP_Context &context) override;
321 
322  int GRPTYPE()
323  { return evalInt(SOP_CAPTURELAYERPAINT_GRPTYPE_IDX, 0, 0); }
324 
326  {
328  if ( type == 3 )
330  else
331  return static_cast<GEO_Detail::CaptureType>(type);
332  }
333 
334  virtual int MERGEMODE() override { return 0; }
335  virtual void SCRIPT(UT_String &, fpreal) override {}
336  virtual int AXIS(void) override { return 0 ; }
337  virtual fpreal USERX(fpreal) override { return 0.0; }
338  virtual fpreal USERY(fpreal) override { return 0.0; }
339  virtual fpreal USERZ(fpreal) override { return 0.0; }
340 
341  virtual fpreal RAYORIENTX(fpreal t) override
343  virtual fpreal RAYORIENTY(fpreal t) override
345  virtual fpreal RAYORIENTZ(fpreal t) override
347  virtual fpreal RAYHITX(fpreal t) override
349  virtual fpreal RAYHITY(fpreal t) override
351  virtual fpreal RAYHITZ(fpreal t) override
353  virtual fpreal RAYHITU(fpreal t) override
355  virtual fpreal RAYHITV(fpreal t) override
357  virtual fpreal RAYHITW(fpreal t) override
359  virtual fpreal RAYHITPRESSURE(fpreal t) override
361  virtual int PRIMHIT(fpreal t) override
363  virtual int PTHIT(fpreal t) override
365  virtual int EVENT() override
367  virtual bool USE_FOREGROUND(void) override { return true; }
368  virtual fpreal FGR(fpreal) override { return 0.0; }
369  virtual fpreal FGG(fpreal) override { return 0.0; }
370  virtual fpreal FGB(fpreal) override { return 0.0; }
371  virtual fpreal BGR(fpreal) override { return 0.0; }
372  virtual fpreal BGG(fpreal) override { return 0.0; }
373  virtual fpreal BGB(fpreal) override { return 0.0; }
374  virtual fpreal SOFTEDGE(fpreal t) override
376  virtual void KERNEL(UT_String &str, fpreal t) override
378  virtual int UPTYPE(fpreal t) override
379  { return evalInt(SOP_CAPTURELAYERPAINT_UPTYPE_IDX, 0, t); }
380  virtual fpreal UPX(fpreal t) override
382  virtual fpreal UPY(fpreal t) override
384  virtual fpreal UPZ(fpreal t) override
386 
387  virtual fpreal PAPERNOISE(fpreal t) override
388  { return evalFloat(SOP_CAPTURELAYERPAINT_PAPER_IDX, 0, t); }
389  virtual fpreal SPLATTER(fpreal t) override
391  virtual void BITMAP(UT_String &str, fpreal t) override
393  virtual int BITMAPCHAN(fpreal t) override
395  virtual fpreal ANGLE(fpreal t) override
396  { return evalFloat(SOP_CAPTURELAYERPAINT_ANGLE_IDX, 0, t); }
397  virtual fpreal SQUASH(fpreal t) override
399  virtual int DOSTAMPING() override { return 0; }
400  virtual int WRITEALPHA() override { return 0; }
401 
402  virtual int OVERRIDECD() override { return 1; }
403  virtual void CDNAME(UT_String & /*str*/,
404  fpreal /*t*/) override{ }
405  virtual int OVERRIDEALPHA() override { return 0; }
406  virtual void ALPHANAME(UT_String & /*str*/,
407  fpreal /*t*/) override {}
408  virtual int OVERRIDENML() override { return 0; }
409  virtual void NMLNAME(UT_String & /*str*/,
410  fpreal /*t*/) override {}
411 
412  virtual fpreal SYMMETRYDIRX(fpreal t) override
414  virtual fpreal SYMMETRYDIRY(fpreal t) override
416  virtual fpreal SYMMETRYDIRZ(fpreal t) override
418  virtual fpreal SYMMETRYORIGX(fpreal t) override
420  virtual fpreal SYMMETRYORIGY(fpreal t) override
422  virtual fpreal SYMMETRYORIGZ(fpreal t) override
424  virtual int DOREFLECTION() override
426  virtual int DOROTATION() override
428  virtual int SYMMETRYROT(fpreal t) override
429  { return evalInt(SOP_CAPTURELAYERPAINT_SYMROT_IDX,0, t); }
430  virtual fpreal SYMMETRYDIST(fpreal t) override
432 
433  virtual int DOUVREFLECTION() override
435  virtual fpreal SYMMETRYUVORIGU(fpreal t) override
437  virtual fpreal SYMMETRYUVORIGV(fpreal t) override
439  virtual fpreal SYMMETRYUVANGLE(fpreal t) override
441 
442  virtual int ADDATTRIB() override { return 0; }
444  { return myForceVisualize || evalInt(SOP_CAPTURELAYERPAINT_VISUALIZE_IDX, 0, 0); }
445  int VISLAYER()
447  virtual int VISTYPE() override
448  { return evalInt(SOP_CAPTURELAYERPAINT_VISTYPE_IDX, 0, 0); }
449  virtual int VISMODE() override
450  { return evalInt(SOP_CAPTURELAYERPAINT_VISMODE_IDX, 0, 0); }
451  virtual int USECAPTURE() override { return 1; }
452  virtual int CAPTUREIDX(fpreal /*t*/) override
453  {
454  UT_String cregion_name;
455  CAPTUREREGION(cregion_name);
456  return gdp->getCaptureRegionIndex(cregion_name,
457  myCaptureType);
458  }
459  void SKELROOT(UT_String &str)
461 public:
464 protected:
465  virtual int USECONNECTIVITY() override
467  virtual int USENORMALS() override
469  virtual int USEDEPTH() override
471  virtual fpreal DEPTH(fpreal t) override
472  { return evalFloat(SOP_CAPTURELAYERPAINT_DEPTH_IDX, 0, t); }
473  virtual fpreal HEIGHT(fpreal t) override
474  { return evalFloat(SOP_CAPTURELAYERPAINT_DEPTH_IDX, 1, t); }
480  { return evalInt(SOP_CAPTURELAYERPAINT_VISNORMALIZED_IDX, 0, 0) != 0; }
481 
482 
483  // Find out if the brush has moved or done anything to cause us to add its
484  // effect to the current gdp.
485  virtual bool hasStrokeChanged(fpreal t) override;
486  virtual bool hasStyleChanged(fpreal) override { return false; }
487 
488  // Find if the nib file has changed:
489  virtual bool hasNibFileChanged(fpreal t) override;
490  virtual bool hasAccumStencilChanged(fpreal) override { return false; }
491  virtual bool hasNibLookChanged(fpreal t) override;
492  bool hasVisChanged(fpreal t);
493 
494  virtual void buildOpDependencies() override;
495  virtual void buildParmDependency( int parm_index ) override;
496  virtual void handleOpDependency( int referenced_op_id,
497  const OP_Dependency &op_dep,
498  OP_InterestType interest_type,
499  bool &need_cook,
500  const char *old_fullpath,
501  const char *old_cwd,
502  const char *old_chan_name ) override;
503  // CaptureLayerPaint doesn't use it's GDT... This will suppress SOP_UndoGDT
504  // objects from being put on the undo stack
505  virtual void applyAndClearCurrentDelta() override {}
506 
507 public:
508  // MSS_CaptureLayerPaintState uses this to build its capture region menu
509  // too
510  static void buildCaptureRegionMenu(
511  void *data, PRM_Name *menu_entries,
512  int num_entries, const PRM_SpareData *,
513  const PRM_Parm *);
514 
515 private:
516  void updateStencilIndex();
517  int getStencilIndex();
518  void checkCaptureRegions();
519 
520  int addCaptureRegion( const char *cregion_name );
521 
522  void clearStencils();
523  int findStencilForCaptureRegion(int cregion);
524  int getStencilForCaptureRegion(int cregion);
525  int addNewStencilForCaptureRegion(int cregion);
526  void addedStencilForCaptureRegion(int snum, int cregion);
527  static bool getRootPathCandidates(OP_Node &node, void *data);
528 
529  bool boneCapture() const
530  { return myCaptureType == GEO_Detail::CAPTURE_BONE; }
531  bool metaCapture() const
532  { return myCaptureType == GEO_Detail::CAPTURE_META; }
533  bool wireCapture() const
534  { return myCaptureType == GEO_Detail::CAPTURE_WIRE; }
535  bool muscleCapture() const
536  { return myCaptureType == GEO_Detail::CAPTURE_MUSCLE; }
537 
538  bool filterForCurrentStencilIndex(UT_IntArray &regions,
539  UT_FloatArray &weights);
540 
541 private:
542  UT_String myRootPath;
543 
544  static PRM_ChoiceList theCaptureRegionMenu;
545 
546  // stencil data and mapping to capture regions
547  SOP_CaptureLayerData myStencils;
548  UT_StringArray myStencilMapping;
549  UT_IntArray myCaptureRegionMapping;
550  UT_IntArray myRegionToStencilMapping;
551  int myNullStencilIndex;
552 
553  // temporary structures needed for smooth operation
554  SOP_CaptureLayerData *myTempSmoothLayer;
555  float *myTempSmoothAlpha;
556 
557  // current brush data
558  int myStencilIndex;
559 
560  // data for undo
561  SOP_CaptureLayerData myDelta;
562  UT_String myOldRootPath;
563  UT_StringArray myOldStencilMapping;
564 
565  // list of what has been modified so we can do incremental cooks
566  UT_IntArray myModifiedPoints;
567  bool myLastVisualize;
568 
569  // cache of changes for downstream SOPs. it is an accumulation of
570  // myModifiedPoints.
571  UT_IntArray myAccumulatedModifiedPoints;
572  bool myHaveAccumulatedModifiedPoints;
573 
574  const GA_PointGroup *myPointGroup;
575  UT_String myPrimitiveClosureName;
576  UT_String myPointClosureName;
577  bool myAddWarningFlag;
578  bool myFlattenFlag;
579 
580  // temporary data for migrating from houdini 6.6
581  bool myMigrationNeeded;
582  UT_String myTestCregionName;
583  UT_IntArray myTestCregionCandidates;
584 
585  UT_String myLoadedRootPath;
586  UT_String myLoadedPathChanged;
587  UT_StringArray myLoadedStencilMapping;
588 
589  // The current type of capture attributes we're modifying.
590  GEO_Detail::CaptureType myCaptureType;
591 };
592 
593 #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()
GA_API const UT_StringHolder metaCapture
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
GT_API const UT_StringHolder time
virtual bool hasStyleChanged(fpreal) override
GA_API const UT_StringHolder boneCapture
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
GA_API const UT_StringHolder wireCapture
GA_API const UT_StringHolder muscleCapture
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:498
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:502
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:942
OP_InterestType
Definition: OP_DataTypes.h:45
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
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 int USENORMALS() 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:500
GLsizei const GLfloat * value
Definition: glcorearb.h:823
double fpreal
Definition: SYS_Types.h:270
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
void setFloat(int parmi, int vectori, fpreal t, fpreal value, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING)
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