13 #ifndef __SOP_CaptureLayerPaint_h__
14 #define __SOP_CaptureLayerPaint_h__
42 #define SOP_CAPTURELAYERPAINT_NUM_DEFORM_PARMS (23)
69 #define SOP_CAPTURELAYERPAINT_NUM_NIB_PARMS (20)
91 #define SOP_CAPTURELAYERPAINT_NUM_SYM_PARMS (9)
102 #define SOP_CAPTURELAYERPAINT_NUM_RAY_PARMS (13)
195 default: iop = 0;
break;
210 default: iop = 0;
break;
228 if (myForceVisualize != state)
230 myForceVisualize = state;
236 bool getAccumulatedModifiedPoints(
UT_IntArray &changed);
241 bool changed_group)
override;
243 const char *
inputLabel(
unsigned idx)
const override;
248 void updateCaptureWeight(
int ptnum,
const GU_Detail *pgdp,
252 int alone = 0)
override;
253 void updateStencilMappings();
256 void doVisualize(
OP_Context &context,
bool update_all);
262 const char *path_prefix,
266 const char *
path)
override;
285 if (op >= 1 && op <= 3)
351 static int flattenStatic(
void *op,
int,
fpreal time,
363 static int toggleAbsoluteStatic(
void *op,
int,
fpreal time,
368 {
return myCaptureType; }
374 int getNumStencils();
375 float getStencilValue(
int snum,
int ptnum);
376 void setStencilValue(
int snum,
int ptnum,
float value);
378 void createTempLayer();
379 void postOperation();
404 int AXIS()
override {
return 0 ; }
582 const char *old_fullpath,
584 const char *old_chan_name)
override;
592 static void buildCaptureRegionMenu(
596 static void buildLockRegionMenu(
600 static void fillOpMenu(
605 void updateStencilIndex();
606 void checkCaptureRegions(
OP_Context &context);
609 int addCaptureRegion(
const char *cregion_name );
611 void clearStencils();
612 int findStencilForCaptureRegion(
int cregion);
613 int getStencilForCaptureRegion(
int cregion);
614 int addNewStencilForCaptureRegion(
int cregion);
615 void addedStencilForCaptureRegion(
int snum,
int cregion);
616 static bool getRootPathCandidates(
OP_Node &node,
void *
data);
617 bool isLockedRegion(
int cregion)
618 {
return cregion >= 0 && cregion < myLockedRegions.size() && myLockedRegions[cregion]; }
629 bool filterForCurrentStencilIndex(
UT_IntArray ®ions,
632 UT_String getCaptureRegionPath(
int cregion);
646 int myNullStencilIndex;
650 float *myTempSmoothAlpha;
660 bool myAbsoluteEntered;
669 bool myLastVisualize;
674 bool myHaveAccumulatedModifiedPoints;
679 bool myAddWarningFlag;
683 bool myMigrationNeeded;
fpreal BGB(fpreal) override
int DOREFLECTION() override
int BITMAPCHAN(fpreal t) override
fpreal SYMMETRYORIGY(fpreal t) override
virtual bool updateParmsFlags()
bool load(UT_IStream &is, const char *extension, const char *path=0) override
int SYMMETRYROT(fpreal t) override
GA_API const UT_StringHolder metaCapture
int WRITEALPHA() override
int PTHIT(fpreal t) override
fpreal SQUASH(fpreal t) override
void BITMAP(UT_String &str, fpreal t) override
fpreal RAWRADIUS(fpreal t) override
int PRIMHIT(fpreal t) override
fpreal SYMMETRYORIGX(fpreal t) override
fpreal PAPERNOISE(fpreal t) override
GT_API const UT_StringHolder time
void setRadius(fpreal r, fpreal t) override
GA_API const UT_StringHolder boneCapture
fpreal RAYHITZ(fpreal t) override
fpreal BGG(fpreal) override
void applyAndClearCurrentDelta() override
const char * inputLabel(unsigned idx) const override
UT_Vector3T< float > UT_Vector3
fpreal RAYHITV(fpreal t) override
GLsizei const GLchar *const * path
static PRM_SpareData * getGroupSelectButton(GA_GroupType group_type, const char *group_type_parm=NULL, int input_index=0, PRM_SpareData *merge_spare_data=NULL, const char *assoc_groups=NULL, GroupSelectAsOrdered ordered=GroupSelectAsOrdered::AUTO, const char *use_name_attr=nullptr, const char *select_script=nullptr)
int SHAPE(fpreal t) override
UT_Vector3 BRUSHDIR(fpreal t) override
void setHitPressure(fpreal p, fpreal t) override
fpreal DEPTH(fpreal t) override
GA_API const UT_StringHolder wireCapture
GA_API const UT_StringHolder muscleCapture
constexpr SYS_FORCE_INLINE T & z() noexcept
virtual void forceRecook(bool evensmartcache=true)
void setRayOrigin(const UT_Vector3 &orig, fpreal t) override
fpreal evalFloat(int pi, int vi, fpreal t) const
OP_ERROR cookMySop(OP_Context &context) override
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)
fpreal RAYORIENTY(fpreal t) override
void setHitUVW(fpreal u, fpreal v, fpreal w, fpreal t) override
fpreal ANGLE(fpreal t) override
fpreal RAYORIENTX(fpreal t) override
const GA_PointGroup * getPointGroup() override
int OVERRIDECD() override
ImageBuf OIIO_API flatten(const ImageBuf &src, ROI roi={}, int nthreads=0)
int USENORMALS() override
void setHitPoint(int pt, fpreal t) override
fpreal USERY(fpreal) override
fpreal RAYHITX(fpreal t) override
fpreal RAWUVRADIUS(fpreal t) override
fpreal RADIUSPRESSURE(fpreal t) override
fpreal SYMMETRYUVORIGU(fpreal t) override
void setBrushOp(SOP_BrushOp op) override
fpreal USERX(fpreal) override
fpreal SYMMETRYDIRZ(fpreal t) override
int ACCUMSTENCIL() override
fpreal FGB(fpreal) override
void SKELROOT(UT_String &str)
virtual bool hasNibFileChanged(fpreal t)=0
bool hasAccumStencilChanged(fpreal) override
GLint GLsizei GLsizei height
fpreal OPACITYPRESSURE(fpreal t) override
void CDNAME(UT_String &, fpreal) override
int PROJECTIONTYPE() override
CaptureType
Methods for manipulating capture weights (GEO_CaptureWeight.C)
void setAccumulateStencil(bool) override
void setProjectionType(int projtype) override
virtual fpreal RAWRADIUS(fpreal t)=0
bool hasStyleChanged(fpreal) override
void buildOpDependencies() override
int DOUVREFLECTION() override
fpreal SYMMETRYUVORIGV(fpreal t) override
void useBackgroundColor() override
void evalString(UT_String &val, int pi, int vi, fpreal t) const
virtual void flood(fpreal t)
fpreal FGG(fpreal) override
void KERNEL(UT_String &str, fpreal t) override
fpreal RAYORIENTZ(fpreal t) override
OP_Node * getInput(unsigned idx, bool mark_used=false) const
Returns the node connected to a particular input (may be null).
bool USE_FOREGROUND() override
GLfloat GLfloat GLfloat alpha
fpreal USERZ(fpreal) override
fpreal RAYHITW(fpreal t) override
void NMLNAME(UT_String &, fpreal) override
GEO_Detail::CaptureType getCaptureType() const
fpreal RAYHITPRESSURE(fpreal t) override
fpreal SOFTEDGE(fpreal t) override
GLuint const GLchar * name
int altersColor() const override
OP_ERROR cookInputGroups(OP_Context &context, int alone=0) override
fpreal HEIGHT(fpreal t) override
GA_API const UT_StringHolder orient
virtual void brushOpCallback(fpreal t, GA_Offset pt, const UT_Array< GA_Offset > *ptneighbour, GA_Offset vtx, const UT_Array< GA_Offset > *vtxneighbour, float alpha, GEO_Delta *delta, const GU_Detail *isectgdp)
fpreal SYMMETRYDIRY(fpreal t) override
void clearAllDeltas(fpreal t) override
fpreal UPZ(fpreal t) override
GEO_Detail::CaptureType CAPTURETYPE() override
GLint GLint GLsizei GLsizei GLsizei depth
int DOSTAMPING() override
OP_ERROR save(std::ostream &os, const OP_SaveFlags &flags, const char *pathPrefix, const UT_String &name_override=UT_String()) override
fpreal UPX(fpreal t) override
void setBrushEvent(SOP_BrushEvent event) override
fpreal UPY(fpreal t) override
int getIsectNodeId() const override
void setBrushShape(SOP_BrushShape shape) override
fpreal BGR(fpreal) override
virtual bool hasStrokeChanged(fpreal t)=0
void setVisualization(bool state) override
virtual bool isGroupParmDirty(OP_Context &context)
fpreal SYMMETRYDIRX(fpreal t) override
fpreal SYMMETRYUVANGLE(fpreal t) override
void setFloat(int parmi, int vectori, fpreal t, fpreal value, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING)
void setInt(int parmi, int vectori, fpreal t, exint value)
int DOROTATION() override
SOP_BrushOp OP() override
fpreal FGR(fpreal) override
void setUVRadius(fpreal r, fpreal t) override
fpreal SYMMETRYDIST(fpreal t) override
virtual void buildParmDependency(int parm_index)
fpreal RAYHITU(fpreal t) override
fpreal RAWOPACITY(fpreal t) override
virtual OP_ERROR processBrushOp(OP_Context &context, bool changed_input, bool changed_group)
void CAPTUREREGION(UT_String &str)
GLubyte GLubyte GLubyte GLubyte w
virtual bool hasNibLookChanged(fpreal t)=0
OP_Node * getRestGeoInput() override
void SELECTEDREGIONS(UT_String &str)
void ALPHANAME(UT_String &, fpreal) override
exint evalInt(int pi, int vi, fpreal t) const
int OVERRIDEALPHA() override
void setHitPrimitive(int primidx, fpreal t) override
constexpr SYS_FORCE_INLINE T & y() noexcept
int USECONNECTIVITY() override
void useForegroundColor() override
void setRayOrientation(const UT_Vector3 &orient, fpreal t) override
void UVATTRIBNAME(UT_String &uvattribname, fpreal t) override
int UPTYPE(fpreal t) override
int OVERRIDENML() override
virtual int isRefInput(unsigned idx) const
fpreal SPLATTER(fpreal t) override
fpreal RAYHITY(fpreal t) override
OIIO_UTIL_API std::string extension(string_view filepath, bool include_dot=true) noexcept
int USECAPTURE() override
int altersGeometry() const override
fpreal SYMMETRYORIGZ(fpreal t) override
void SCRIPT(UT_String &, fpreal) override
constexpr SYS_FORCE_INLINE T & x() noexcept