13 #ifndef __SOP_Edit_h__
14 #define __SOP_Edit_h__
31 #define SOP_EDIT_NUM_EDIT_PARMS (3)
32 #define SOP_EDIT_NUM_SCULPT_PARMS (1)
38 #define SOP_EDIT_NUM_TRANSFORM_PARMS (13)
46 #define SOP_EDIT_NUM_PIVOTXFORM_PARMS (2)
50 #define SOP_EDIT_NUM_PREXFORM_PARMS (6)
58 #define SOP_EDIT_NUM_LOCALPIVOTXFORM_PARMS (2)
62 #define SOP_EDIT_NUM_LOCALPREXFORM_PARMS (6)
71 #define SOP_EDIT_NUM_XFORMSPACE_PARMS (4)
80 #define SOP_EDIT_NUM_PEAK_PARMS (2)
90 #define SOP_EDIT_NUM_SOFT_PARMS (9)
106 #define SOP_EDIT_SCULPT_NUM_DEFORM_PARMS (8)
118 #define SOP_EDIT_SCULPT_NUM_NIB_PARMS (18)
138 #define SOP_EDIT_SCULPT_NUM_RAY_PARMS (11)
169 friend class MSS_EditState;
174 int isRefInput(
unsigned int i)
const override;
179 void toggleXformPeak();
250 default: iop = 0;
break;
288 {
return evalInt(
"modeswitcher", 0, t); }
311 int alone = 0)
override;
320 void clearRayIntersect();
327 void applyScaledDeltas(
341 {
return myPrimitiveGroup; }
360 class LocalSpaceCache;
377 void clearTransformParms();
379 const char *inputLabel(
unsigned idx)
const override;
387 void clearReferencesToCookedDetail()
override;
389 void rollbackCurrentDelta()
override;
391 void applyAndClearCurrentDelta()
override;
392 void applyPermanentDelta()
override;
393 virtual void initializeInput(
OP_Context &context);
398 void doErase()
override;
526 bool hasStrokeChanged(
fpreal t)
override;
527 bool hasStyleChanged(
fpreal t)
override;
530 bool hasNibFileChanged(
fpreal t)
override;
531 bool hasAccumStencilChanged(
fpreal t)
override;
532 bool hasNibLookChanged(
fpreal t)
override;
538 {
return &myCoordinateFrames; }
543 void syncNodeVersion(
const char *old_version,
544 const char *cur_version,
545 bool *node_deleted)
override;
556 void SET_SWITCHER(
int i)
588 int PREXFORM_TRS(
fpreal t)
const
590 int PREXFORM_XYZ(
fpreal t)
const
628 int LPREXFORM_TRS(
fpreal t)
const
630 int LPREXFORM_XYZ(
fpreal t)
const
671 bool SLIDEONSURFACE(
fpreal t)
const
691 int DIST_METRIC(
fpreal t)
const
693 bool APPLY_ROLLOFF(
fpreal t)
const
699 int VISUALIZE_FALLOFF(
fpreal t)
const
701 bool falloffAttributeRequested(
fpreal t)
const;
731 void updateMirrorParmCache(MirrorParmCache &cache,
fpreal t);
733 MirrorParmCache &cache,
fpreal t);
736 bool isTransform(
fpreal t)
const {
return SWITCHER(t) == 0; }
737 bool isPeak(
fpreal t)
const {
return SWITCHER(t) != 0; }
738 void doPeak(
fpreal t, MirrorParmCache &mirror_cache,
739 AttribAction &falloff_action);
742 bool isSoft(
fpreal t)
const {
return SOFTRADIUS(t) != 0.0; }
750 int myCurrentInputId;
751 int myCurrentGeoCookCount;
752 int myReferenceInputId;
753 int myReferenceGeoCookCount;
762 bool myVisualizationFlag;
763 bool mySetFalloffOnLastCook;
764 bool myOverwroteInputFalloff;
767 LocalSpaceCache *myLocalSpaceCache;
775 bool myPreSoftDistanceMetric;
virtual void setVisualization(bool)
virtual bool updateParmsFlags()
int DOSTAMPING() override
const GA_PointGroup * getPointGroup() override
fpreal SQUASH(fpreal t) override
fpreal ANGLE(fpreal t) override
void SCRIPT(UT_String &, fpreal) override
void setHitUVW(fpreal u, fpreal v, fpreal w, fpreal t) override
void setHitPoint(int pt, fpreal t) override
fpreal PAPERNOISE(fpreal t) override
void NMLNAME(UT_String &, fpreal) override
fpreal FGB(fpreal) override
fpreal RAYHITZ(fpreal t) override
virtual const GA_Group * getGroup()
int ACCUMSTENCIL() override
void setBrushEvent(SOP_BrushEvent event) override
void setRayOrigin(const UT_Vector3 &orig, fpreal t) override
fpreal FGG(fpreal) override
void setHitPressure(fpreal p, fpreal t) override
fpreal SYMMETRYDIRZ(fpreal) override
virtual void getXformOrder(UT_XformOrder &xord, const CH_Channel *chp) const
constexpr SYS_FORCE_INLINE T & z() noexcept
SOP_BrushOp OP() override
fpreal evalFloat(int pi, int vi, fpreal t) const
fpreal DEPTH(fpreal t) override
fpreal RAYHITX(fpreal t) override
bool wantsCookSelection() const override
int OVERRIDEALPHA() override
fpreal SOFTEDGE(fpreal t) override
fpreal RAYHITW(fpreal t) override
int altersGeometry() const override
bool USE_FOREGROUND() override
bool getCookedFlag() const
int SHAPE(fpreal t) override
int PTHIT(fpreal t) override
void CDNAME(UT_String &, fpreal) override
void setProjectionType(int projtype) override
GA_API const UT_StringHolder scale
fpreal BGG(fpreal) override
void useBackgroundColor() override
int DOUVREFLECTION() override
int altersColor() const override
static const char * theLeadWorldXformAttribName
fpreal SYMMETRYORIGX(fpreal) override
fpreal USERX(fpreal t) override
bool unloadData() override
fpreal SYMMETRYORIGY(fpreal) override
fpreal UPY(fpreal t) override
int BITMAPCHAN(fpreal t) override
fpreal RAYHITPRESSURE(fpreal t) override
void evalString(UT_String &val, int pi, int vi, fpreal t) const
void unloadDataHack() override
Do not use this function! Using it will likely cause crashes.
fpreal RAWUVRADIUS(fpreal t) override
virtual void beginNewOperation()
fpreal HEIGHT(fpreal t) override
int PROJECTIONTYPE() override
int DOPOINTREFLECTION() override
int UPTYPE(fpreal t) override
int DOROTATION() override
void KERNEL(UT_String &str, fpreal t) override
int SYMMETRYROT(fpreal) override
void setRadius(fpreal r, fpreal t) override
int OVERRIDENML() override
void getSelString(UT_String &str) override
Get the selection group string:
fpreal RAYORIENTZ(fpreal t) override
fpreal RADIUSPRESSURE(fpreal t) override
fpreal RAYHITY(fpreal t) override
GLuint const GLchar * name
fpreal RAYORIENTX(fpreal t) override
void setRayOrientation(const UT_Vector3 &orient, fpreal t) override
OP_ERROR cookInputGroups(OP_Context &context, int alone=0) override
void setBrushShape(SOP_BrushShape shape) override
GA_API const UT_StringHolder orient
int WRITEALPHA() override
GDT_CoordinateFrames * getCoordinateFrames()
int getNumGuides() override
void clearAllDeltas(fpreal t) override
int PRIMHIT(fpreal t) override
void setAccumulateStencil(bool yesno) override
fpreal SYMMETRYORIGZ(fpreal) override
void BITMAP(UT_String &str, fpreal t) override
fpreal RAYHITU(fpreal t) override
fpreal UPZ(fpreal t) override
fpreal OPACITYPRESSURE(fpreal t) override
int OVERRIDECD() override
bool inBrushMode(fpreal t)
int USENORMALS() override
fpreal BGB(fpreal) override
fpreal FGR(fpreal t) override
void setFloat(int parmi, int vectori, fpreal t, fpreal value, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING)
fpreal SYMMETRYDIRX(fpreal) override
virtual void resolveObsoleteParms(PRM_ParmList *)
void setInt(int parmi, int vectori, fpreal t, exint value)
void ALPHANAME(UT_String &, fpreal) override
void setHitPrimitive(int primidx, fpreal t) override
void setBrushOp(SOP_BrushOp op) override
void setUVRadius(fpreal r, fpreal t) override
GuideType getGuideType(int guide_idx) override
fpreal SYMMETRYUVORIGV(fpreal) override
fpreal USERY(fpreal t) override
const GA_PrimitiveGroup * getPrimitiveSelection() const override
fpreal SYMMETRYDIST(fpreal) override
fpreal UPX(fpreal t) override
void setUseOrient(bool f)
fpreal SYMMETRYUVORIGU(fpreal) override
GLubyte GLubyte GLubyte GLubyte w
fpreal RAWRADIUS(fpreal t) override
void useForegroundColor() override
exint evalInt(int pi, int vi, fpreal t) const
fpreal RAWOPACITY(fpreal t) override
fpreal USERZ(fpreal t) override
constexpr SYS_FORCE_INLINE T & y() noexcept
virtual int isRefInput(unsigned idx) const
fpreal RAYHITV(fpreal t) override
fpreal SYMMETRYDIRY(fpreal) override
fpreal SYMMETRYUVANGLE(fpreal) override
int DOREFLECTION() override
fpreal RAYORIENTY(fpreal t) override
int USECONNECTIVITY() override
fpreal SPLATTER(fpreal t) override
constexpr SYS_FORCE_INLINE T & x() noexcept
fpreal BGR(fpreal t) override