42 using namespace HDK_Sample;
83 :
SOP_Node(net, name, op), myGroup(NULL)
142 float phase = PHASE(t);
144 float period = PERIOD(t);
159 p.
y() += SYSsin( (p.
x() / period + phase) *
M_PI * 2 ) * amp;
166 if (!myGroup || !myGroup->
isEmpty())
SYS_FORCE_INLINE void bumpDataId()
PRM_API const PRM_Type PRM_STRING
static OP_Node * myConstructor(OP_Network *, const char *, OP_Operator *)
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)
OP_ERROR cookMySop(OP_Context &context) override
Method to cook geometry for the SOP.
GA_Attribute * getP()
Convenience method to access the P attribute.
SOP_PointWave(OP_Network *net, const char *name, OP_Operator *op)
bool addOperator(OP_Operator *op, std::ostream *err=nullptr)
SYS_FORCE_INLINE UT_Vector3 getPos3(GA_Offset ptoff) const
The ptoff passed is the point offset.
static PRM_ChoiceList pointGroupMenu
OP_ERROR duplicatePointSource(unsigned index, OP_Context &ctx, GU_Detail *gdp, bool clean=true, bool wattrib=true, bool *fully=0)
OP_ERROR cookInputGroups(OP_Context &context, int alone=0) override
~SOP_PointWave() override
OP_ERROR cookInputPointGroups(OP_Context &context, const GA_PointGroup *&group, bool alone=false, bool do_selection=true, int parm_index=0, int group_type_index=-1, bool allow_reference=true, bool ordered=false, bool detached=true, int input_index=0)
See cookInputPrimitiveGroups.
PRM_API PRM_Range PRMscaleRange
GLuint const GLchar * name
PRM_API PRM_Name PRMgroupName
PRM_API const PRM_Type PRM_FLT_J
GLenum GLenum GLsizei void * table
void setManagesDataIDs(bool onOff)
void newSopOperator(OP_OperatorTable *table)
PRM_API PRM_Default PRMoneDefaults[]
SYS_FORCE_INLINE void setPos3(GA_Offset ptoff, const UT_Vector3 &pos)
Set P from a UT_Vector3.
#define GA_FOR_ALL_GROUP_PTOFF(gdp, grp, ptoff)
static PRM_Template myTemplateList[]
SYS_FORCE_INLINE bool isEmpty() const
Query whether the group is empty of primary elements.
constexpr SYS_FORCE_INLINE T & y() noexcept
PRM_API PRM_Default PRMzeroDefaults[]
constexpr SYS_FORCE_INLINE T & x() noexcept