34 #include "SOP_MergePrimitives.proto.h" 
   47 using namespace UT::Literal;
 
   48 using namespace HDK_Sample;
 
   50 constexpr 
static int theDestInput = 0;
 
   51 constexpr 
static int theSrcInput = 1;
 
   62 const UT_StringHolder SOP_MergePrimitives::theSOPTypeName(
"hdk_mergeprimitives"_sh);
 
   71         SOP_MergePrimitives::theSOPTypeName,   
 
   72         "HDK Merge Primitives",                     
 
   73         SOP_MergePrimitives::myConstructor,    
 
   74         SOP_MergePrimitives::buildTemplates(), 
 
  101 static const char *theDsFile = R
"THEDSFILE( 
  106         label   "Primitive Group" 
  109         parmtag { "sop_input" "1" } 
  110         parmtag { "script_action" "import soputils\nkwargs['geometrytype'] = (hou.geometryType.Primitives,)\nkwargs['inputindex'] = 1\nsoputils.selectGroupParm(kwargs)" } 
  111         parmtag { "script_action_help" "Select geometry from an available viewport.\nShift-click to turn on Select Groups." } 
  112         parmtag { "script_action_icon" "BUTTONS_reselect" } 
  118 SOP_MergePrimitives::buildTemplates() 
  147             return "Destination Geometry";
 
  149             return "Source Geometry";
 
  151             return "Invalid Source";
 
  175     virtual void cook(
const CookParms &cookparms) 
const;
 
  189 SOP_MergePrimitives::cookVerb()
 const  
  198     auto &&sopparms = cookparms.
parms<SOP_MergePrimitivesParms>();
 
  262     detail->merge(*src_detail, group);
 
static PRM_ChoiceList primGroupMenu
virtual SOP_NodeParms * allocParms() const 
virtual UT_StringHolder name() const 
void setChoiceListPtr(const UT_StringRef &name, PRM_ChoiceList *list)
UT_ErrorSeverity sopAddWarning(int code, const char *msg=0, const UT_SourceLocation *loc=0) const 
bool addOperator(OP_Operator *op, std::ostream *err=nullptr)
SOP_MergePrimitivesVerb()
Constructs a PRM_Template list from an embedded .ds file or an istream. 
PRM_Template * templates() const 
const GA_PrimitiveGroup * parsePrimitiveGroups(const char *pat, const GroupCreator &creator, bool numok=true, bool ordered=false, bool strict=false, GA_Index prim_offset=GA_Index(0), ParseInfo *info=0)
virtual ~SOP_MergePrimitivesVerb()
virtual CookMode cookMode(const SOP_NodeParms *parms) const 
static const SOP_NodeVerb::Register< SOP_MergePrimitivesVerb > theVerb
GLenum GLenum GLsizei void * table
GA_API const UT_StringHolder parms
const GU_Detail * inputGeo(exint idx) const 
virtual void cook(const CookParms &cookparms) const 
This is the function that does the actual work. 
void newSopOperator(OP_OperatorTable *table)
GU_DetailHandle & gdh() const 
The initial state of gdh depends on the cookMode() 
SYS_FORCE_INLINE bool isstring() const