14 #ifndef __SOP_Node_h__
15 #define __SOP_Node_h__
49 class SOP_SoftLockData;
52 class sop_AttributeEvaluator;
101 #define SOP_LOCALVAR_START 1000000 // Start of local variable indices
126 void *
data=0)
override;
132 SOP_Node *getOutputSop(
int outputidx,
133 bool fallback_to_display_render =
true);
141 const char *
name)
override;
143 const char *
name)
override;
149 void setVariableOrder(
int detail,
int prim,
153 int getVariableOrder(
int level)
const;
155 int getVariablePrecedence(
int var)
const;
168 int outputidx)
override;
171 void clearLocalVars();
172 void updateLocalVarOffsets();
180 void clearAttributeEvalCaches();
189 theGlobalCaptOverride = flag;
193 return theGlobalCaptOverride;
200 bool setupLocalVars();
205 void resetLocalVarRefs();
207 void setCurGdh(
int index,
209 void clearCurGdh(
int index);
212 void setCurPoint(
int index,
214 void clearCurPoint(
int index);
215 void setCurVertex(
int index,
217 void clearCurVertex(
int index);
218 void setCurPrim(
int index,
220 void clearCurPrim(
int index);
221 void setCurVertexNum(
int index,
223 void clearCurVertexNum(
int index);
250 operator int()
const {
return myIndex; }
258 void addGenericVariable(
const char *varname,
260 const AttribTupleIndexArg &tuple_idx,
263 void addGenericVariable(
const char *varname,
264 const char *attribname,
265 const AttribTupleIndexArg &tuple_idx,
268 void addGenericVariable(
const char *varname,
275 void addGenericVariable(
const GU_Detail *gdp,
278 const char *attribname,
279 const AttribTupleIndexArg &tuple_idx,
282 void addGenericVariable(
int gpdidx,
287 void addSpecificVariable(
const GU_Detail *gdp,
290 const char *attribname,
291 const AttribTupleIndexArg &tuple_idx,
295 void addSpecificVariable(
int gpidx,
302 static int addCustomVariableCallback(
const char *attr,
303 const char *varname,
void *
data);
304 void addCustomVariable(
const char *attr,
305 const char *varname);
307 void cacheVarPtBox(
int gpdidx);
308 void cacheVarPrimBox(
int gpdidx);
342 {
UT_ASSERT(index == 0 || index == 1);
return myCurVtxNum[
index]; }
348 {
UT_ASSERT(local_var_gdp_index == 0 || local_var_gdp_index == 1);
350 return myCurVtxOff[local_var_gdp_index]; }
356 {
UT_ASSERT(index == 0 || index == 1);
if (!myCurGdp[index])
return 0;
return myCurGdp[
index]->getGEOPrimitive(myCurPrimOff[index]); }
365 cacheVarPtBox(index);
366 return myCurPtBox[
index];
373 cacheVarPrimBox(index);
374 return myCurPrimBox[
index];
379 void setPivotParmToGroupCentroid(
OP_Context &context);
383 void getGroupMenuHeader(
int sourcenum,
const char * title,
387 const char *prim_header,
388 const char *pt_header,
389 const char *edge_header,
390 const char *vertex_header,
391 PRM_Name *menuEntries,
int themenusize,
393 bool includeselection,
const PRM_Parm *parm);
396 const char * edge_header,
397 const char *prim_header,
const char *pt_header,
398 const char *vertex_header,
399 PRM_Name *menuEntries,
int themenusize,
400 bool addprim,
int start,
403 static int buildSopBreakpointGroups(
const GU_Detail *
src,
404 const char * brkpt_header,
405 const char * prim_header,
const char *pt_header,
406 const char * edge_header,
407 const char *vertex_header,
408 PRM_Name *choicenames,
int menusize,
409 bool addprim,
int start,
415 static void buildGroupsFromSop(
SOP_Node * src_sop,
419 PRM_Name *menuEntries,
int thelistsize );
421 static int buildEdgeGroupsFromSop(
SOP_Node * src_sop,
424 bool addprim,
int start,
425 PRM_Name *menuEntries,
int thelistsize );
427 static int buildBreakpointGroupsFromSop(
SOP_Node * src_sop,
430 bool addprim,
int start,
431 PRM_Name *menuEntries,
int thelistsize );
433 void buildNamedPrims(
int thesourcenum,
438 bool numberedvolumes);
440 void buildInputGroups(
int thesourcenum,
444 bool includeselection,
447 int buildInputEdgeGroups(
int sourcenum,
448 PRM_Name *choicenames,
int menusize,
449 bool addprim,
int start,
452 int buildInputBreakpointGroups(
int sourcenum,
453 PRM_Name *choicenames,
int menusize,
454 bool addprim,
int start,
457 OP_LockTypes setModelLock(OP_LockTypes lock_type,
458 void *modeler =
nullptr,
459 bool allow_softlock_promotion =
false,
460 UT_Undo *undo =
nullptr)
override;
465 void *getCookedData(
OP_Context &ctx)
override;
478 const SOP_Guide *getCookedGuide1()
const;
479 const SOP_Guide *getCookedGuide2()
const;
509 {
return GuideType::VIEWPORT; }
521 void unlockInput(
unsigned idx)
override;
523 void unlockInputs()
override;
526 static void initializeExpressions();
543 bool forceValidGroupPrefix(
UT_String &prefix,
546 void expandGroupMask(
const char *
pattern,
553 { expandGroupMask(pattern, outNames, type, gdp); }
560 bool allow_numeric =
true,
561 bool ordered =
false,
572 {
return parsePrimitiveGroups(pattern,
GroupCreator(gdp,
false),
true,
true); }
575 const GroupCreator &creator,
576 bool allow_numeric =
true,
577 bool ordered =
false,
578 bool strict =
false);
584 bool strict =
false);
586 {
return parsePrimitiveGroupsCopy(pattern,
GroupCreator(gdp,
false),
true,
true); }
589 const GroupCreator &creator,
590 bool allow_numeric =
true,
591 bool ordered =
false,
602 {
return parsePointGroups(pattern,
GroupCreator(gdp,
false),
true,
true); }
605 const GroupCreator &creator,
606 bool allow_numeric =
true,
607 bool ordered =
false,
608 bool strict =
false);
614 bool strict =
false);
616 {
return parsePointGroupsCopy(pattern,
GroupCreator(gdp,
false),
true,
true); }
618 const GA_EdgeGroup *parseEdgeGroups(
const char *pattern,
624 {
return parseEdgeGroups(pattern, (
const GU_Detail *)gdp); }
629 {
return parseEdgeGroupsCopy(pattern, (
const GU_Detail *)gdp); }
636 {
return parseBreakpointGroups(pattern, (
const GU_Detail *)gdp); }
641 {
return parseBreakpointGroupsCopy(pattern,(
const GU_Detail *)gdp);}
648 {
return parseVertexGroups(pattern, (
const GU_Detail *)gdp); }
653 {
return parseVertexGroupsCopy(pattern, (
const GU_Detail *)gdp); }
655 const GA_Group *parseAllGroups(
const char *pattern,
656 const GroupCreator &creator,
657 bool allow_numeric =
true,
658 bool ordered =
false,
662 const GA_Group *parseAllGroups(
const char *pattern,
668 {
return parseAllGroups(pattern,
GroupCreator(gdp,
false),
true,
true); }
670 GA_Group *parseAllGroupsCopy(
const char *pattern,
671 const GroupCreator &creator,
672 bool allow_numeric =
true,
673 bool ordered =
false,
677 GA_Group *parseAllGroupsCopy(
const char *pattern,
683 {
return parseAllGroupsCopy(pattern,
GroupCreator(gdp,
false),
true,
true); }
692 {
return myGroupParse.destroyAdhocGroup(group); }
694 { myGroupParse.destroyAdhocGroups(); }
696 { myGroupParse.destroyAdhocGroups(g); }
703 void updateUserSelectionOnDetail();
716 void clearNodeSelectionSet();
722 void copyCookedSelectionToUserSelection(
OP_Context *context = 0);
734 bool add_to_sel = false);
738 bool add_to_sel = false);
741 bool add_to_sel = false);
743 bool prim_sel = true,
744 bool add_to_sel = false);
745 void selectPoint(
GA_Offset ptoff,
bool point_sel = true,
746 bool add_to_sel = false);
747 void selectFrom(const
GEO_Primitive &prim,
bool sel_prim = true,
748 bool add_to_sel = false);
749 void selectPointsFrom(
GA_Offset ptoff,
bool point_sel = true,
750 bool add_to_sel = false);
752 bool add_to_sel = false);
757 void selectInputGroup(const
GA_Group *group,
762 void selectInputGroup(const
GA_Group *group,
767 void clearSelection();
782 bool destroySelection();
785 bool selectionEnabled()
const
787 return getHighlight();
792 return myHasCookedSelection;
823 virtual
void resetSimulation () {}
827 void addInstanceReference(
SOP_Node *node);
828 void clearInstanceReference(
SOP_Node *node);
850 virtual void makePreserveRequest();
855 void getNodeSpecificInfoText(
OP_Context &context,
890 fpreal getW()
const override;
892 fpreal getH()
const override;
906 void setUniqueId(
int id)
override;
907 void clearUniqueId()
override;
916 {
return myGroupParse.removeAdhocGroup(group); }
918 { myGroupParse.removeAdhocGroups(); }
927 int &copied_input)
override;
948 int alone = 0)
override;
950 void notifyGroupParmListeners(
951 int parm_index,
int group_type_index,
973 bool alone =
false,
bool do_selection =
true,
975 int group_type_index = -1,
976 bool allow_reference =
true,
977 bool ordered =
false,
978 bool detached =
true,
979 int input_index = 0);
982 bool alone,
bool do_selection,
984 int group_type_index,
985 bool allow_reference,
987 const GroupCreator &creator);
992 int alone = 0,
bool do_selection =
true,
993 int input_index = 0,
int parm_index = 0,
994 int group_type_index = -1,
995 bool allow_reference =
true,
996 bool fetchgdp =
true,
1002 bool alone =
false,
bool do_selection =
true,
1004 int group_type_index = -1,
1005 bool allow_reference =
true,
1006 bool ordered =
false,
1007 bool detached =
true,
1008 int input_index = 0);
1011 bool alone,
bool do_selection,
1013 int group_type_index,
1014 bool allow_reference,
1016 const GroupCreator &creator);
1021 int alone = 0,
bool do_selection =
true,
1022 int input_index = 0,
int parm_index = 0,
1023 int group_type_index = -1,
1024 bool allow_reference =
true,
1025 bool fetchgdp =
true,
1031 bool alone =
false,
bool do_selection =
true,
1033 int group_type_index = -1,
1034 bool allow_reference =
true,
1035 int input_index = 0);
1038 bool alone,
bool do_selection,
1040 int group_type_index,
1041 bool allow_reference,
1047 int alone = 0,
bool do_selection =
true,
1048 int input_index = 0,
int parm_index = 0,
1049 int group_type_index = -1,
1054 bool allow_reference =
false,
1055 bool fetchgdp =
true,
1064 bool alone =
false,
bool do_selection =
true,
1066 int group_type_index = -1,
1068 bool allow_reference =
true,
1069 bool is_default_prim =
true,
1070 bool ordered =
false,
1071 bool detached =
true,
1072 int input_index = 0);
1075 bool alone,
bool do_selection,
1077 int group_type_index,
1079 bool allow_reference,
1080 bool is_default_prim,
1082 const GroupCreator &creator);
1087 int alone = 0,
bool do_selection =
true,
1088 int input_index = 0,
int parm_index = 0,
1089 int group_type_index = -1,
1090 bool allow_reference =
false,
1091 bool is_default_prim =
true,
1092 bool fetchgdp =
true,
1102 bool allow_reference,
bool is_default_prim,
1103 bool ordered=
false);
1106 bool allow_reference,
bool is_default_prim);
1115 bool alone,
int input_index,
bool detached,
1116 GroupCreator &creator);
1119 bool alone,
int input_index,
1124 void cookInputGroupsEpilogue(
int parm_index,
int group_type_index,
1126 int input_index,
bool fetchgdp,
bool alone);
1129 void inputConnectChanged(
int which_input)
override;
1139 {
return inputGeo(index); }
1162 { getLockedErrorManager()->systemError(msg);}
1164 const char *msg = 0)
1165 { getLockedErrorManager()->commonError(what, msg);}
1167 const char *msg = 0)
1168 { getLockedErrorManager()->commonWarning(what, msg);}
1243 const char *group_type_parm = NULL,
1244 int input_index = 0,
1246 const char *assoc_groups = NULL,
1247 GroupSelectAsOrdered ordered =
1248 GroupSelectAsOrdered::AUTO,
1249 const char *use_name_attr=
nullptr,
1250 const char *select_script=
nullptr);
1254 const char *group_type_parm = NULL,
1255 int input_index = 0,
1257 const char *assoc_groups = NULL,
1258 GroupSelectAsOrdered ordered =
1259 GroupSelectAsOrdered::AUTO,
1260 const char *use_name_attr=
nullptr,
1261 const char *select_script=
nullptr);
1270 void pickPrimitivesUsingPathAttribute(
1273 const char *stringparm,
1275 const char *path_attrib=
"path",
1276 bool use_packed_names=
true);
1279 void pickPrimitivesUsingPathAttribute(
1280 const char *stringparm,
1283 const char *path_attrib=
"path",
1284 bool use_packed_names=
true);
1288 static GA_Range getPickedRangeUsingPathAttribute(
1291 const char *pickedstring,
1292 const char *path_attrib=
"path",
1293 bool use_packed_names=
true);
1297 int parseGroups(
const char *pattern,
1301 bool strict =
false);
1304 int parseGroupsCopy(
const char *pattern,
1310 bool strict =
false,
1328 int fillAttribNameMenu(
PRM_Name *menu_entries,
1333 void *approve_data = NULL,
1334 bool decode_tokens =
false);
1337 static void removeMenuDuplicates(
PRM_Name *menuEntries,
int size);
1342 void getVectorAttribs(
const char * attrib_names,
1346 static void getVectorAttribs(
GU_Detail *gdp,
1347 const char * attrib_names,
1354 const char * attrib_string,
1363 const char *
l)
override;
1371 int forEachGroupMatchingMask(
1372 const char *pattern,
1373 GroupOperation operation,
1377 bool maintainorder=
false);
1379 static int invokeForEachGroupMatchingMask(
1381 const char *pattern,
1383 const std::function<
void(
const GA_Group *)> &operation,
1384 bool maintainorder);
1391 static void invokeForSubdivisionOfPrimitiveGroup(
1392 const std::function<
void(
const GA_Group *)> &operation,
1395 int opstep,
const char *oplabel,
1399 void subdividePrimitiveGroup(
1400 GroupOperation operation,
1402 void *
data,
int optype,
1403 int opstep,
const char *oplabel,
1405 void subdivideMixPrimitiveGroup(
1406 GroupOperation operation,
1408 void *
data,
int optype,
1409 int opstep,
const char *oplabel,
1411 void subdividePointGroup(
1412 GroupOperation operation,
1414 void *
data,
int optype,
1415 int opstep,
const char *oplabel,
1422 const char *
p=
"adhoc")
1423 {
return myGroupParse.createPrimitiveGroup(geo,
p); }
1425 const char *
p=
"adhoc")
1426 {
return myGroupParse.createPointGroup(geo,
p); }
1428 const char *
p=
"adhoc")
1429 {
return myGroupParse.createEdgeGroup(geo,
p); }
1431 const char *
p=
"adhoc")
1432 {
return myGroupParse.createVertexGroup(geo,
p); }
1436 myGroupParse.appendAdhocGroup(
group,
true);
1442 myGroupParse.appendAdhocGroup(
group,
true);
1448 myGroupParse.appendAdhocGroup(
group,
true);
1454 myGroupParse.appendAdhocGroup(
group,
true);
1459 return myGroupParse.createBreakpointGroup(geo);
1469 void clearInstance(
int duplicate = 0);
1471 bool hasInstances();
1473 int countInstances();
1475 void clearAllInstances();
1494 return duplicateSource(index, context, gdp,
true);
1511 bool wattrib =
true,
1515 return duplicatePointSource(index, ctx, gdp, 1,
1522 bool copyPointPosFromSource(
1528 int *changed = 0,
bool force=
false);
1537 void resetChangedSourceFlags();
1538 void resetChangedSourceFlags(
int which_input);
1558 return myInputChangeHelper.useInput(
1559 *
this, idx, changed, force);
1562 void deleteCookedData()
override;
1563 int deleteNodeData(
void *)
override;
1575 "_sop_used_pasted_");
1596 void convertPivotAboutGroupCentroid(
1600 void convertPivotAboutGroupCentroid(
1602 const char *pivot_parm_name,
1617 const char *pathPrefix,
1622 const char *
path=0)
override;
1649 OP_ERROR saveIntrinsic(std::ostream &os,
1653 short class_id,
short sig,
1654 const char *
path=0)
override;
1655 bool loadPacket(
UT_IStream &is,
const char *token,
1656 const char *
path=0)
override;
1658 void clearAndDestroy()
override;
1660 int saveCookedData(
const char *,
1662 int saveCookedData(std::ostream &os,
1664 int binary = 0)
override;
1666 const char *
path=0)
override;
1673 const char *getFileExtension(
int binary)
const override;
1675 bool softLockable(
const GU_Detail &unmodelled_gdp,
1682 SOP_SoftLockData *old_slockdata=0);
1685 void *myVisualizeCallbackData;
1694 virtual void unloadDataHack();
1699 bool unloadData()
override;
1702 void clearVerbCache();
1706 int64 getMemoryUsage(
bool inclusive)
const override;
1711 virtual int64 getLoadedMemoryUsage()
const;
1714 bool isLoaded()
const override;
1717 bool shouldUnload()
const;
1733 static void markDetailDirty(
GU_Detail *dirtygdp,
1734 bool bumpalldataid);
1756 friend class SOP_CacheData;
1757 friend class sop_AttributeEvaluator;
1762 SOP_SoftLockData *mySoftLockData;
1764 bool myHasCookedSelection;
1770 static bool theGlobalCaptOverride;
1780 { myUsesSOPLocalVar =
true; }
1783 const char *
name)
override;
1784 void getAttributeEvaluatorNames(
1788 bool hasTransformTracks()
const override;
1789 bool evaluateTransformTracks(
OP_Context &context,
1791 bool evaluateTransformTracksTargets(
OP_Context &context,
1828 int myCurBuiltPtBox[2];
1830 int myCurBuiltPrimBox[2];
1843 int myAttribCacheOffsetGdpId[2];
1844 int myAttribCacheOffsetMetaCacheCount[2];
1845 unsigned int myAttribCacheTotalDictSize[2];
1855 friend class sop_NodeInputs;
static PRM_ChoiceList primGroupMenu
GA_VertexGroup * parseVertexGroupsCopy(const char *pattern)
GA_PointGroup * newDetachedPointGroup() const
virtual void setVisualization(bool)
GT_API const UT_StringHolder selection
int curVertexNum(int index) const
Definition of a geometry attribute.
static PRM_ChoiceList pointAttribReplaceMenu
GA_VertexGroup * createAdhocVertexGroup(GU_Detail &geo, const char *p="adhoc")
GA_PrimitiveGroup * getPastedSurfaces()
static PRM_ChoiceList allGroupMenu
static PRM_ChoiceList vertexTextureCoordMenu
static PRM_SpareData theFourthInput
virtual const SOP_NodeVerb * cookVerb() const
#define SYS_DEPRECATED(__V__)
GA_StorageClass myStorageClass
GA_ROAttributeRef myOffset
const GA_Group * parseAllGroups(const char *pattern)
GA_Offset curVertex(int local_var_gdp_index) const
GA_PointGroup * createAdhocPointGroup(const GEO_Detail &geo)
static PRM_ChoiceList namedPrimsMenu
static PRM_ChoiceList namedVolumesGlobMenu
Class which stores the default values for a GA_Attribute.
#define SYS_VISIBILITY_EXPORT
UT_StringMap< sop_AttributeEvaluator * > myAttributeEvaluatorCache
Stores the @ cache lookups generated JIT.
GT_API const UT_StringHolder time
#define SYS_DEPRECATED_PUSH_DISABLE()
const GA_PrimitiveGroup * parsePrimitiveGroups(const char *pattern)
static PRM_ChoiceList allAttribMenu
GA_AttributeOwner myDictionary
#define SYS_DEPRECATED_POP_DISABLE()
static PRM_ChoiceList groupNameMenu
int updatePastedDisplacements()
virtual GuideType getGuideType(int guide_idx)
#define SYS_DEPRECATED_HDK_REPLACE(__V__, __R__)
const GLuint GLenum const void * binary
void destroyAdhocGroups(const GU_Detail *g)
GLsizei const GLchar *const * path
void updatePastedDisplacement(GA_Offset ptoff, const GA_PrimitiveGroup *all, GA_PrimitiveGroup *used)
static PRM_ChoiceList breakpointGroupMenu
int removeAdhocGroup(const GA_Group *group)
void addSystemError(const char *msg=0)
GLenum GLenum GLenum input
static PRM_ChoiceList pointAttribMenu
OIIO_API std::string extension(const std::string &filepath, bool include_dot=true) noexcept
bool useInputSource(unsigned idx, bool &changed, bool force)
Mark the given input as used for cooking by this node.
void addMessage(SOP_ErrorCodes code, const char *msg=0)
void updatePastedDisplacement(GA_Offset ptoff, const GA_PrimitiveGroup *all, GA_PrimitiveGroup *used)
void addCommonError(UT_CommonErrorCode what, const char *msg=0)
static PRM_ChoiceList primNamedGroupMenu
Parameters for OP_Node::getInfoText()/OP_Node::getNodeSpecificInfoText()
fpreal(SOP_Node::* SOP_LocalVarFunc)(sopVarInfo *varinfo)
static PRM_SpareData theSecondElseFirstInput
GLuint const GLchar * name
UT_SharedPtr< GU_SelectionSet > GU_SelectionSetHandle
GU_DetailHandle myGdpHandle
const GEO_Primitive * curPrim(int index) const
const GA_PointGroup * parsePointGroups(const char *pattern)
static PRM_ChoiceList pointGroupMenu
OP_Network * getCreator() const
void addError(int code, const char *msg=0)
bool hasCookedSelection() const
#define GA_INVALID_OFFSET
static PRM_ChoiceList pointNamedGroupMenu
virtual const CH_LocalVariable * resolveExtraVariableForSyntaxHighlight(const char *name)
A range of elements in an index-map.
GA_EdgeGroup * parseEdgeGroupsCopy(const char *pattern)
A string map of attributes to ease backward compatibility In the GB/GEO/GU library code would often p...
GA_Offset curPoint(int index) const
#define SYS_DEPRECATED_REPLACE(__V__, __R__)
SYS_VISIBILITY_EXPORT void newSopOperator(OP_OperatorTable *table)
const GU_DetailHandle & curGdh(int index) const
static PRM_SpareData theFirstInput
static PRM_ChoiceList edgePointGroupMenu
GLint GLint GLsizei GLint GLenum GLenum type
static PRM_ChoiceList vertexNamedGroupMenu
int myLocalVarOrderCache
Cached values so we can tell if we have to rebuild.
static PRM_ChoiceList namedVolumesMenu
int updatePastedDependents(GA_PrimitiveGroup *all, GA_PrimitiveGroup *used)
void expandGroupMask(const char *pattern, UT_String &outNames, GA_GroupType type)
void destroyAdhocGroups()
vint4 select(const vbool4 &mask, const vint4 &a, const vint4 &b)
const GU_Detail * inputGeo(int index, OP_Context &)
This class provides a way to manage a reference to an attribute permitting Read-Only access...
GOP_Manager::GroupCreator GroupCreator
Typedef to help make use of GroupCreator less verbose.
void addWarning(SOP_ErrorCodes code, const char *msg=0)
static PRM_ChoiceList namedPrimsGlobMenu
GA_VertexGroup * createAdhocVertexGroup(const GEO_Detail &geo)
SOP_NodeCache * myNodeVerbCache
static bool getCaptureOverrideFlag()
GA_PrimitiveGroup * newDetachedPrimitiveGroup() const
UT_ValArray< sopVarInfo * > myLocalVarArray
void opChanged(OP_EventType reason, void *data=0) override
GA_EdgeGroup * createAdhocEdgeGroup(GU_Detail &geo, const char *p="adhoc")
virtual GOP_GuideListType getGuideListType() const
virtual bool addOrMoveVisualizerToOutput(int outputidx)
static PRM_ChoiceList primAttribReplaceMenu
UT_BoundingBox curPointBBox(int index)
sopVarInfo * mySecondaryVariable
int updatePastedDisplacements()
GA_EdgeGroup * newDetachedEdgeGroup() const
typedef int(WINAPI *PFNWGLRELEASEPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer
GA_PointGroup * parsePointGroupsCopy(const char *pattern)
GLuint const GLuint * names
int isCookingRender() const override
GA_PrimitiveGroup * getPastedSurfaces(GA_PrimitiveGroup *&used)
SOP_API void SOPfillMetaKernelMenu(void *, PRM_Name *names, int size, const PRM_SpareData *, const PRM_Parm *)
int destroyAdhocGroup(const GA_Group *group)
virtual const CH_LocalVariable * resolveVariable(const char *name)
GA_BreakpointGroup * parseBreakpointGroupsCopy(const char *pattern)
GA_Size GA_Index
Define the strictness of GA_Offset/GA_Index.
virtual bool getGroupCentroid(OP_Context &, UT_Vector3 &)
static PRM_ChoiceList detailAttribReplaceMenu
GA_PrimitiveGroup * createAdhocPrimGroup(GU_Detail &geo, const char *p="adhoc")
UT_SharedPtr< GU_Selection > GU_SelectionHandle
virtual void setForceCapture(bool)
const GA_VertexGroup * parseVertexGroups(const char *pattern)
virtual OP_OpTypeId getOpTypeID() const
static PRM_ChoiceList groupMenu
SOP_API void SOPgetVexReservedTemplateLists(UT_ValArray< PRM_Template * > &tplatelists)
GT_API const UT_StringHolder version
GLuint GLdouble GLdouble GLint GLint const GLdouble * points
static PRM_ChoiceList edgeGroupMenu
void setUsesSOPLocalVar()
const GU_Detail * curGdp(int index) const
static PRM_ChoiceList vertexAttribReplaceMenu
static PRM_ChoiceList vertexAttribMenu
AttribTupleIndexArg(int index)
const SOP_NodeFlags & getFlags() const
virtual const char * getChildType() const
void addFatal(SOP_ErrorCodes code, const char *msg=0)
**Note that the tasks the is the thread number *for the or if it s being executed by a non pool thread(this *can happen in cases where the whole pool is occupied and the calling *thread contributes to running the work load).**Thread pool.Have fun
virtual bool shouldResetGeoToEmpty() const
GA_VertexGroup * newDetachedVertexGroup() const
Parameters for OP_Node::fillInfoTree()/OP_Node::fillInfoTreeNodeSpecific()
static PRM_ChoiceList primAttribMenu
GLsizei const GLint box[]
void sopVisualizeCallback(void *, SOP_Node *, OP_Context &, GU_Detail *)
static void setCaptureOverrideFlag(bool flag)
bool isSelectionOwnerType() const overridefinal
void addCommonWarning(UT_CommonErrorCode what, const char *msg=0)
bool usesFootprint() const override
static PRM_ChoiceList edgeNamedGroupMenu
virtual GU_DetailHandle cookMyGuide(int guide_idx, OP_Context &context)
SOP_LocalVarFunc myCallback
GA_Group * parseAllGroupsCopy(const char *pattern)
GA_PrimitiveGroup * getPastedSurfaces(const char *n="__gu_all_pasted__")
GA_GroupType
An ordinal enum for the different types of groups in GA.
const GA_BreakpointGroup * parseBreakpointGroups(const char *pattern)
GA_PrimitiveGroup * parsePrimitiveGroupsCopy(const char *pattern)
SOP_NodeParms * myNodeVerbParms
virtual const char * getOpType() const
UT_SymbolMap< sopVarInfo * > myLocalVarTable
Local variable items:
A global error manager scope.
static PRM_ChoiceList detailAttribMenu
GA_PrimitiveGroup * createAdhocPrimGroup(const GEO_Detail &geo)
GLsizei const GLfloat * value
virtual OP_OpTypeId getChildTypeID() const =0
static PRM_SpareData theThirdInput
**If you just want to fire and args
GA_PointGroup * createAdhocPointGroup(GU_Detail &geo, const char *p="adhoc")
virtual bool evalVariableValue(UT_String &val, int index, int thread)
OP_ERROR duplicatePointSource(unsigned index, OP_Context &ctx)
getOption("OpenEXR.storage") storage
virtual int isCookingRender() const
static PRM_SpareData theSecondInput
virtual int getNumGuides()
UT_BoundingBox curPrimBBox(int index)
const GA_EdgeGroup * parseEdgeGroups(const char *pattern)
static PRM_ChoiceList allAttribReplaceMenu
bool all(const vbool4 &v)
GA_BreakpointGroup * createAdhocBreakpointGroup(const GEO_Detail &geo)
GLenum GLsizei GLenum GLenum const void * table
OP_ERROR duplicateSource(unsigned index, OP_Context &context)
static PRM_ChoiceList allTextureCoordMenu
GA_EdgeGroup * createAdhocEdgeGroup(const GEO_Detail &geo)
int updatePastedDependents(GA_PrimitiveGroup *all, GA_PrimitiveGroup *used)
virtual void clearCache()
static const char * theChildTableName
GA_Offset curPrimOff(int index) const