16 #ifndef __OP_Director_h__
17 #define __OP_Director_h__
39 #define OP_POSTLOAD_SCRIPT "456.cmd"
43 #define OP_HOM_SESSION_MODULE_CPIO_NAME ".hou.session"
48 class OP_SaveCallback;
51 class op_ShopClerkInfo;
60 class OP_EventScriptPathCache;
63 void *
data,
void *cbdata);
88 typedef OP_ERROR (*SaveCallback)(std::ostream &,
void *);
105 std::ostream &,
OP_Context &,
int = 0)
override
108 const char * =
nullptr)
override
124 bool loadChannelManagerOptions();
125 bool saveChannelManagerOptions();
129 bool include_temporary=
false);
135 bool remove_existing =
true);
137 virtual void enable(
int state);
139 OP_ERROR saveNetwork(std::ostream &os,
142 const char *merge_pattern=
nullptr,
144 void initializeManagerWireStyles();
145 virtual void clearNetwork(
int clear_aliases );
150 virtual void opUpdateAllExports();
153 { myOldCHOPOverrideFlag =
true; }
155 {
return myOldCHOPOverrideFlag; }
157 { myOldCHOPOverrideFlag =
false; }
170 int eval_collection=-1);
180 return myCwdContext.getValueForThread(thread)
187 bool include_hidden=
false,
188 bool append_to_list=
false)
const;
190 bool include_hidden=
false)
const;
191 bool getPickedInputs(
196 void clearPickedItems();
208 void addPickedNode(
const OP_Node &node,
bool edit);
209 void removePickedNode(
const OP_Node &node,
bool edit);
210 void makePickedNodeLast(
const OP_Node &node,
bool edit);
227 void addPickedInput(
const OP_Input &input);
228 void removePickedInput(
const OP_Input &input);
235 void setNFrames(
fpreal nframes,
bool notify =
true);
237 void setChopMotionSamples(
int n,
bool notify =
true);
250 void setSamplesPerSec(
252 bool modify_frame_count =
true,
253 bool preserve_keyframes =
false,
254 bool preserve_frame_start =
false,
260 void setGlobalTime(
fpreal t_start,
fpreal t_end,
bool notify =
true);
265 void setTimeRange(
fpreal t_start,
fpreal t_end,
bool notify =
true);
270 void setSampleRange(
fpreal frame_start,
fpreal fend,
bool notify =
true);
278 void setSaveCallback(SaveCallback cb,
void *cb_data);
279 void removeSaveCallback(SaveCallback cb,
void *cb_data);
283 void addEventCallback(EventType
type, EventCallback cb,
285 void removeEventCallback(EventType
type, EventCallback cb,
289 void setUserDisplayOptionSaveCallback(
290 OP_ERROR (*cb)(std::ostream &,
void *),
291 void *callback_data);
292 void setSceneFileVisualizersSaveCallback(
293 OP_ERROR (*cb)(std::ostream &,
void *),
294 void *callback_data);
295 void addBadLoadData(
char *str,
int len);
298 virtual void beginLoading();
299 virtual void endLoading();
301 {
return myIsLoadingHip; }
303 {
return myIsQuitting; }
305 { myIsDoingExplicitSave =
value; }
307 {
return myIsDoingExplicitSave; }
308 const OP_Node *getAnyCookingNode()
const;
311 {
return myIsMantra; }
315 {
return myIsClearing; }
317 void destroyFileResolver();
319 void beginTakeSwitch();
320 void endTakeSwitch();
322 {
return mySwitchingTake; }
328 void saveChannelGroups(std::ostream &os,
int binary);
330 void saveTimeGroups(std::ostream &os,
int binary);
332 void saveBookmarks(std::ostream &os,
int binary);
334 void saveScriptedOpLibrary(std::ostream &os);
335 bool loadScriptedOpLibrary(
UT_IStream &is, time_t modtime);
337 void saveInternalOpLibraries(std::ostream &os);
339 void saveLibraryPreferences(std::ostream &os);
341 void saveUnselectedFilePatterns(std::ostream &os);
342 bool loadUnselectedFilePatterns(
UT_IStream &is);
351 void saveExprFunctions(std::ostream &os);
358 {
return myCookEnabled; }
360 { myCookEnabled =
state; }
364 {
return mySimulationEnabled; }
366 { mySimulationEnabled =
state; }
371 {
return mySkipPlaybarBasedSimulationReset > 0; }
373 { mySkipPlaybarBasedSimulationReset += inc; }
376 bool addShopClerk(
const char *
type);
378 {
return myShopInfo.entries(); }
379 const char *getShopClerkName(
int clerk)
const;
380 int getShopClerkVisibility(
int clerk)
const;
381 void setShopClerkVisibility(
int clerk,
int onoff);
408 std::ostream &)
const
429 const char *parmname,
462 bool is_source_code =
false)
465 bool is_source_code =
false)
492 static void globAllArgumentsAsArray(
OP_Node &relative_to_node,
512 void getTableAndOperator(
516 const OP_Node *relativetonode =
nullptr);
518 {
return myOTLManager; }
520 {
return myOTLManager; }
525 void runDeleteScriptsOnQuit();
529 void addGlobalOpChangedCallback(
531 void removeGlobalOpChangedCallback(
536 void globalOpChanged(
OP_Node *node,
544 static bool createBackupFile(
const char *
filename,
550 static void autoIncrementRename(
const char *
filename,
561 const char *startup_script,
562 const char *postload_script);
566 {
return myGlobalEventScriptPathCache; }
569 void clearGlobalEventScriptPathCache();
572 void getCachedGlobalEventScriptPaths(
575 bool only_nonempty)
const;
581 bool getSaveSceneAsText()
const;
582 void setSaveSceneAsText(
bool on_off);
583 bool getNewFileSaveSceneAsText()
const;
584 void setNewFileSaveSceneAsText(
bool on_off);
588 void notifyBeforeSceneSave(
594 void notifyAfterSceneSave(
602 {
return myOrientationMode; }
604 { myOrientationMode = axis; }
606 static UT_Obfuscator *getObfuscator();
609 void initMotFileNameCallbacks();
612 void setMotSetEndClearNetworkFileName(
616 void setMotSetEndLoadNetworkFileName(
620 void setMotSetEndMergeNetworkFileName(
630 {
return binary ?
".bhip" :
".hip"; }
631 void clearUnsupportedCommands()
const;
642 errors +=
"Spare parameters are not alowed on ";
643 errors +=
"the root node.";
649 void runPostLoadScript();
657 void installCommands();
658 void installMoreCommands();
659 void installCHCommands();
660 void installOTLCommands();
661 void installOpRampResolver();
663 void savePreCommands(std::ostream &os);
664 void savePostCommands(std::ostream &os);
666 void notifyEventCallbacks(EventType
type);
670 void updateNewDefinition(
675 void varChanged(
const UT_String &varname);
681 static void getFirstFoundStartupScriptFile(
683 const char *script_file_name);
690 static void getFirstFoundScriptFile(
692 const char *inputpath);
698 int myBadLoadDataLen;
705 CwdContext() : myCwdId(-1)
717 OP_SaveCallback *myCallbacks;
718 OP_SaveCallback *myUserDisplayOptionCallback;
719 OP_SaveCallback *mySceneFileVisualizersCallback;
727 int mySimulationEnabled;
728 int mySkipPlaybarBasedSimulationReset;
738 struct EventCallbackInfo
742 friend bool operator==(
const EventCallbackInfo &lhs,
const EventCallbackInfo &rhs)
744 return (lhs.cb == rhs.cb) && (lhs.data == rhs.data);
757 EventCallbackInfoList myEventCallbacks[NUM_NETWORK_EVENT_TYPES];
760 OP_EventScriptPathCache *myGlobalEventScriptPathCache;
762 OrientationMode myOrientationMode;
767 bool myOldCHOPOverrideFlag;
772 bool mySwitchingTake;
776 bool myIsDoingExplicitSave;
787 bool mySaveSceneAsText;
788 bool myNewFileSaveSceneAsText;
793 bool myRunningPostLoadScript =
false;
795 static UT_Obfuscator *theObfuscator;
virtual bool addNodeSpareParm(OP_Parameters *, PRM_Template *) const
UT_ErrorSeverity OP_ERROR
UT_ValArray< OP_GlobalOpChangedCallback > OP_GlobalOpChangedCallbacks
GT_API const UT_StringHolder filename
virtual void clearHOMSessionModuleSource()
OP_StyleManager * getStyleManager()
void setIsDoingExplicitSave(bool value)
OP_API OP_Director * OPsetDirector(OP_Director *boss)
GT_API const UT_StringHolder time
OIIO_UTIL_API bool copy(string_view from, string_view to, std::string &err)
UT_ColorTable & getGroupColorTable()
bool isSwitchingTake() const
GLsizei const GLfloat * value
void setOldCHOPOverrideFlag()
const GLuint GLenum const void * binary
bool getOldCHOPOverrideFlag()
GLsizei const GLchar *const * path
virtual void findInternalScriptOperators(const char *, OP_OTLDefinitionArray &)
virtual bool loadNodeSpareParms(OP_Parameters *, UT_IStream &, UT_String &) const
int saveCookedData(const char *, OP_Context &) override
virtual void definitionsRemoved(int, UT_IntArray &, OP_OTLLibrary *&)
std::tuple< Types...> UT_Tuple
OP_EventScriptPathCache * getGlobalEventScriptPathCache()
OP_BundleList * getBundles()
**But if you need a result
bool changeSpareParms(UT_IStream &, UT_String &errors) override
virtual int renameNode(OP_Node *node, const char *name, OP_RenameAction action=OP_RENAME_NORMAL)
virtual void clearHandleSettings(OP_Operator *)
virtual void deleteAllNodeSpareParms(OP_Parameters *) const
OrientationMode getOrientationMode() const
void setOrientationMode(OrientationMode axis)
int saveCookedData(std::ostream &, OP_Context &, int=0) override
static void saveOTLBackupInformation(std::ostream &os, const OP_OperatorList &fallbackops, const OP_OperatorList &dummyops)
CH_Manager * getChannelManager()
OP_OTLManager & getOTLManager()
const char * getOpType() const override
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
virtual void updateExportedParms(OP_Node *)
OP_OpTypeId getOpTypeID() const override
GLint GLint GLsizei GLint GLenum GLenum type
virtual bool loadNodeCompiledDs(OP_Node *, UT_IStream &)
OP_DataType getCookedDataType() const override
virtual bool loadNodeCompiledCode(OP_Node *, UT_IStream &, bool is_source_code=false)
int getCwdStackSize(int thread) const
OP_ERROR cookMe(OP_Context &) override
bool getIsDoingExplicitSave() const
void bumpSkipPlaybarBasedSimulationReset(int inc)
void clearOldCHOPOverrideFlag()
bool getIsQuitting() const
bool loadNetwork(UT_IStream &is, int merge=0, const char *pattern=nullptr, int overwrite=0, const OP_FixNameParms *fix_name_parms=nullptr, UT_StringArray *src_names=nullptr, UT_StringArray *dest_names=nullptr)
int getNShopClerks() const
bool getIsLoadingHip() const
void getPickedItems(OP_ItemTypeMask item_type_mask, OP_NetworkBoxItemList &picked, bool include_hidden=false, bool recurse_picked_netboxes=false) const
void deleteCookedData() override
const char * getChildType() const override
virtual OP_ERROR saveNodeSpareParms(OP_Parameters *, bool, std::ostream &) const
GLuint const GLchar * name
std::function< T > UT_Function
virtual bool removeNodeSpareParm(OP_Parameters *node, const char *parmname, UT_StringArray *errs=nullptr, UT_StringArray *warn=nullptr) const
GLenum GLenum GLsizei void * table
virtual OP_Node * linkInternalScriptOperator(const char *, OP_Operator *)
GT_API const UT_StringHolder version
const OP_OTLManager & getOTLManager() const
virtual void getInternalScriptDefinition(OP_Node *, UT_String &)
virtual void deleteNodeSpareParmLayout(OP_Parameters *) const
virtual bool loadHOMSessionModuleSource(UT_IStream &is)
unsigned int OP_ItemTypeMask
fpreal32 getVersion() const
**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
Create an evaluation context scope with a new node.
virtual void addExtraInput(OP_Node *op, OP_InterestType type)
OP_Take * getTakeManager()
const char * getFileExtension(int binary) const override
virtual void saveNodeSpareParmCommands(OP_Parameters *, std::ostream &, const char *, bool) const
OP_API OP_Director * OPgetDirector()
bool loadCookedData(UT_IStream &, const char *=nullptr) override
virtual void saveNodeCompiledDs(OP_Node *, std::ostream &)
OP_CommandManager * getCommandManager()
**If you just want to fire and args
void getCwd(UT_String &str)
virtual PRM_ScriptPage * allocateSpareScriptPage(OP_Operator *)
void setCookEnabled(int state)
virtual void definitionsAdded(int, UT_IntArray &)
virtual void saveNodeCompiledCode(OP_Node *, std::ostream &, bool is_source_code=false)
virtual void changeNodeSpareParms(OP_Parameters *, PI_EditScriptedParms &, UT_String &) const
int simulationEnabled() const
OP_ERROR bypassMe(OP_Context &, int &) override
virtual void saveHOMSessionModuleSource(std::ostream &os)
void * getCookedData(const OP_Context &) override
Cooks node data and makes it available through the reader.
OP_OpTypeId getChildTypeID() const override
void setSimulationEnabled(int state)
void(* OP_GlobalOpChangedCallback)(OP_Node *node, OP_EventType reason, void *data, void *cbdata)
UT_NonCopyable & operator=(const UT_NonCopyable &)=delete
bool getIsClearing() const
bool skipPlaybarBasedSimulationReset() const