16 #ifndef __OP_Director_h__
17 #define __OP_Director_h__
38 #define OP_POSTLOAD_SCRIPT "456.cmd"
43 class OP_SaveCallback;
46 class op_ShopClerkInfo;
55 class OP_EventScriptPathCache;
58 void *
data,
void *cbdata);
83 typedef OP_ERROR (*SaveCallback)(std::ostream &,
void *);
100 std::ostream &,
OP_Context &,
int = 0)
override
103 const char * =
nullptr)
override
119 bool loadChannelManagerOptions();
120 bool saveChannelManagerOptions();
130 virtual void enable(
int state);
132 OP_ERROR saveNetwork(std::ostream &os,
135 const char *merge_pattern=
nullptr,
137 void initializeManagerWireStyles();
138 virtual void clearNetwork(
int clear_aliases );
143 virtual void opUpdateAllExports();
146 { myOldCHOPOverrideFlag =
true; }
148 {
return myOldCHOPOverrideFlag; }
150 { myOldCHOPOverrideFlag =
false; }
163 int eval_collection=-1);
173 return myCwdContext.getValueForThread(thread)
180 bool include_hidden=
false,
181 bool append_to_list=
false)
const;
183 bool include_hidden=
false)
const;
184 bool getPickedInputs(
189 void clearPickedItems();
201 void addPickedNode(
const OP_Node &node,
bool edit);
202 void removePickedNode(
const OP_Node &node,
bool edit);
203 void makePickedNodeLast(
const OP_Node &node,
bool edit);
220 void addPickedInput(
const OP_Input &input);
221 void removePickedInput(
const OP_Input &input);
228 void setNFrames(
fpreal nframes,
bool notify =
true);
230 void setChopMotionSamples(
int n,
bool notify =
true);
243 void setSamplesPerSec(
245 bool modify_frame_count =
true,
246 bool preserve_keyframes =
false,
247 bool preserve_frame_start =
false,
253 void setGlobalTime(
fpreal t_start,
fpreal t_end,
bool notify =
true);
258 void setTimeRange(
fpreal t_start,
fpreal t_end,
bool notify =
true);
263 void setSampleRange(
fpreal frame_start,
fpreal fend,
bool notify =
true);
271 void setSaveCallback(SaveCallback cb,
void *cb_data);
272 void removeSaveCallback(SaveCallback cb,
void *cb_data);
276 void addEventCallback(EventType
type, EventCallback cb,
278 void removeEventCallback(EventType
type, EventCallback cb,
282 void setUserDisplayOptionSaveCallback(
283 OP_ERROR (*cb)(std::ostream &,
void *),
284 void *callback_data);
285 void setSceneFileVisualizersSaveCallback(
286 OP_ERROR (*cb)(std::ostream &,
void *),
287 void *callback_data);
288 void addBadLoadData(
char *str,
int len);
291 virtual void beginLoading();
292 virtual void endLoading();
294 {
return myIsLoadingHip; }
296 {
return myIsQuitting; }
298 { myIsDoingExplicitSave =
value; }
300 {
return myIsDoingExplicitSave; }
301 const OP_Node *getAnyCookingNode()
const;
304 {
return myIsMantra; }
308 {
return myIsClearing; }
310 void destroyFileResolver();
312 void beginTakeSwitch();
313 void endTakeSwitch();
315 {
return mySwitchingTake; }
321 void saveChannelGroups(std::ostream &os,
int binary);
323 void saveTimeGroups(std::ostream &os,
int binary);
325 void saveBookmarks(std::ostream &os,
int binary);
327 void saveScriptedOpLibrary(std::ostream &os);
328 bool loadScriptedOpLibrary(
UT_IStream &is, time_t modtime);
330 void saveInternalOpLibraries(std::ostream &os);
332 void saveLibraryPreferences(std::ostream &os);
334 bool loadHOMSessionModuleSource(
UT_IStream &is);
335 void saveUnselectedFilePatterns(std::ostream &os);
336 bool loadUnselectedFilePatterns(
UT_IStream &is);
341 void saveExprFunctions(std::ostream &os);
348 {
return myCookEnabled; }
350 { myCookEnabled = state; }
354 {
return mySimulationEnabled; }
356 { mySimulationEnabled = state; }
361 {
return mySkipPlaybarBasedSimulationReset > 0; }
363 { mySkipPlaybarBasedSimulationReset += inc; }
366 bool addShopClerk(
const char *
type);
368 {
return myShopInfo.entries(); }
369 const char *getShopClerkName(
int clerk)
const;
370 int getShopClerkVisibility(
int clerk)
const;
371 void setShopClerkVisibility(
int clerk,
int onoff);
398 std::ostream &)
const
419 const char *parmname,
452 bool is_source_code =
false)
455 bool is_source_code =
false)
482 static void globAllArgumentsAsArray(
OP_Node &relative_to_node,
502 void getTableAndOperator(
506 const OP_Node *relativetonode =
nullptr);
508 {
return myOTLManager; }
510 {
return myOTLManager; }
515 void runDeleteScriptsOnQuit();
519 void addGlobalOpChangedCallback(
521 void removeGlobalOpChangedCallback(
526 void globalOpChanged(
OP_Node *node,
534 static bool createBackupFile(
const char *
filename,
540 static void autoIncrementRename(
const char *
filename,
551 const char *startup_script,
552 const char *postload_script);
556 {
return myGlobalEventScriptPathCache; }
559 void clearGlobalEventScriptPathCache();
562 void getCachedGlobalEventScriptPaths(
565 bool only_nonempty)
const;
571 bool getSaveSceneAsText()
const;
572 void setSaveSceneAsText(
bool on_off);
573 bool getNewFileSaveSceneAsText()
const;
574 void setNewFileSaveSceneAsText(
bool on_off);
578 void notifyBeforeSceneSave(
584 void notifyAfterSceneSave(
592 {
return myOrientationMode; }
594 { myOrientationMode = axis; }
596 static UT_Obfuscator *getObfuscator();
604 {
return binary ?
".bhip" :
".hip"; }
605 void clearUnsupportedCommands()
const;
616 errors +=
"Spare parameters are not alowed on ";
617 errors +=
"the root node.";
623 void runPostLoadScript();
631 void installCommands();
632 void installMoreCommands();
633 void installCHCommands();
634 void installOTLCommands();
635 void installOpRampResolver();
637 void savePreCommands(std::ostream &os);
638 void savePostCommands(std::ostream &os);
640 void notifyEventCallbacks(EventType
type);
644 void updateNewDefinition(
649 void varChanged(
const UT_String &varname);
655 static void getFirstFoundStartupScriptFile(
657 const char *script_file_name);
664 static void getFirstFoundScriptFile(
666 const char *inputpath);
672 int myBadLoadDataLen;
679 CwdContext() : myCwdId(-1)
691 OP_SaveCallback *myCallbacks;
692 OP_SaveCallback *myUserDisplayOptionCallback;
693 OP_SaveCallback *mySceneFileVisualizersCallback;
701 int mySimulationEnabled;
702 int mySkipPlaybarBasedSimulationReset;
712 struct EventCallbackInfo
716 friend bool operator==(
const EventCallbackInfo &lhs,
const EventCallbackInfo &rhs)
718 return (lhs.cb == rhs.cb) && (lhs.data == rhs.data);
731 EventCallbackInfoList myEventCallbacks[NUM_NETWORK_EVENT_TYPES];
734 OP_EventScriptPathCache *myGlobalEventScriptPathCache;
739 bool myOldCHOPOverrideFlag;
744 bool mySwitchingTake;
748 bool myIsDoingExplicitSave;
759 bool mySaveSceneAsText;
760 bool myNewFileSaveSceneAsText;
762 OrientationMode myOrientationMode;
764 static UT_Obfuscator *theObfuscator;
virtual bool addNodeSpareParm(OP_Parameters *, PRM_Template *) const
bool loadNetwork(UT_IStream &is, int merge=0, const char *pattern=NULL, int overwrite=0, const OP_FixNameParms *fix_name_parms=NULL, UT_StringArray *src_names=NULL, UT_StringArray *dest_names=NULL)
void * getCookedData(OP_Context &) override
UT_ErrorSeverity OP_ERROR
UT_ValArray< OP_GlobalOpChangedCallback > OP_GlobalOpChangedCallbacks
GT_API const UT_StringHolder filename
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
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
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
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
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
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