12 #ifndef __CH_Manager_h__
13 #define __CH_Manager_h__
54 class CH_ScriptAccessManager;
63 typedef std::function<void(const UT_StringHolder &)>
78 virtual void changed() = 0;
85 virtual void changed(
int type,
void* fsc) = 0;
86 virtual void removed(
void* fsc) = 0;
117 bool scopeChannelInternal(
const CH_Channel *chp,
bool on_off);
118 bool scopeChannelInternal(
const CH_ChannelRef &chref,
bool on_off);
120 void scopeChannel(
const char *full_chan_path,
bool on_off);
121 void unscopeChannelsWithNodeId(
int node_id,
bool force=
false);
124 void scopeChanged(
unsigned flags,
bool propagate=
true );
128 bool isChannelScoped(
const char *full_chan_path)
const;
134 bool isChannelDisplayed(
CH_Channel *chp)
const;
136 bool isChannelDisplayed(
const char *full_chan_path )
const;
137 void clearDisplayedChannels(
bool propagate =
true );
138 void displayAllScopedChannels(
bool propagate =
true );
139 void displaySelectedScopedChannels(
bool propagate =
true );
142 bool propagate =
true );
143 void displayChannel(
const char *full_chan_path,
144 bool propagate =
true );
146 bool propagate =
true );
147 void undisplayChannel(
const char *full_chan_path,
148 bool propagate =
true );
149 void undisplayChannelsWithNodeId(
int node_id,
bool force=
false);
154 bool isChannelSelected(
const char *full_chan_path )
const;
155 void clearSelectedChannels(
bool propagate =
true );
156 void selectAllScopedChannels(
bool propagate =
true );
159 bool propagate =
true );
160 void selectChannel(
const char *full_chan_path,
161 bool propagate =
true );
163 bool propagate =
true );
164 void deselectChannel(
const char *full_chan_path,
165 bool propagate =
true );
170 void togglePinAllScopedChannels();
172 void pinAllScopedChannels(
bool propagate =
true );
173 void unpinAllScopedChannels(
bool propagate =
true );
174 void pinSelectedChannels(
bool propagate =
true,
176 void unpinSelectedChannels(
bool propagate =
true,
179 bool propagate =
true );
181 bool propagate =
true );
183 bool propagate =
true );
185 bool propagate =
true );
186 void unpinChannelsWithNodeId(
int node_id,
bool force=
false);
187 void clearPinnedChannels(
bool propagate =
true );
192 void clearLayerScope();
194 bool isLayerScoped(
const char *full_chan_path)
const;
197 void scopeLayer(
const char *full_chan_path,
bool on_off);
198 bool scopeLayerInternal(
CH_Channel *chp,
bool on_off);
199 bool scopeLayerInternal(
const CH_ChannelRef &chref,
bool on_off);
205 bool isLayerSelected(
const char *full_chan_path)
const;
206 void clearSelectedLayers(
bool propagate =
true);
207 void selectAllScopedLayers(
bool propagate =
true);
209 void selectLayer(
const CH_ChannelRef &chref,
bool propagate=
true);
210 void selectLayer(
const char *full_chan_path,
bool propagate=
true);
211 void deselectLayer(
const CH_ChannelRef &chref,
bool propagate=
true);
212 void deselectLayer(
const char *full_chan_path,
bool propagate=
true);
217 void togglePinAllScopedLayers();
219 void pinAllScopedLayers(
bool propagate =
true );
220 void unpinAllScopedLayers(
bool propagate =
true );
221 void pinSelectedLayers(
bool propagate =
true,
223 void unpinSelectedLayers(
bool propagate =
true,
226 bool propagate =
true );
228 bool propagate =
true );
230 bool propagate =
true );
232 bool propagate =
true );
233 void clearPinnedLayers(
bool propagate =
true );
239 bool isLayerDisplayed(
const char *full_chan_path )
const;
240 void clearDisplayedLayers(
bool propagate =
true );
241 void displayAllScopedLayers(
bool propagate =
true );
242 void displaySelectedScopedLayers(
bool propagate =
true );
245 bool propagate =
true );
246 void displayLayer(
const char *full_chan_path,
247 bool propagate =
true );
249 bool propagate =
true );
250 void undisplayLayer(
const char *full_chan_path,
251 bool propagate =
true );
256 bool isGraphSelected(
const char *full_chan_path )
const;
257 void clearGraphSelected(
bool propagate =
true );
259 bool propagate =
true );
260 void selectGraph(
const char *full_chan_path,
261 bool propagate =
true );
263 bool propagate =
true );
264 void deselectGraph(
const char *full_chan_path,
265 bool propagate =
true );
273 bool propagate =
true );
274 unsigned getChannelFlags(
const CH_ChannelRef &chref )
const;
279 void clearChannelScope(
bool clear_all_tables=
false);
285 int getNumScopedChanRefs();
288 int getNumScopedChanRefs(
bool filtered);
295 bool sorted=
false)
const;
299 void getScopedChannelsKeyFrames(
UT_IntArray &frames,
300 int minframe,
int maxframe);
302 bool hasScopedChannels();
305 {
return myKeepChannelSelection; }
307 { myKeepChannelSelection =
b;}
312 FilterAnimationLayers = 1,
320 { myEnableFilter[filter_type] =
b; }
322 {
return myEnableFilter[filter_type]; }
325 { myFilter[filter_type] =
f;}
327 {
return myFilter[filter_type]; }
330 { myFilterTranlates =
b;}
332 {
return myFilterTranlates; }
335 { myFilterRotates =
b;}
337 {
return myFilterRotates; }
340 { myFilterScales =
b;}
342 {
return myFilterScales; }
345 { myFilterParmLabels[filter_type] =
b;}
347 {
return myFilterParmLabels[filter_type]; }
350 { myFilterFullNames[filter_type] =
b;}
352 {
return myFilterFullNames[filter_type]; }
359 void triggerDependentFilters(
int type);
361 bool hasFilter()
const;
375 bool myKeepChannelSelection;
376 mutable int myNumScopedChannels;
377 mutable int myTotalScopedChannels;
382 bool myEnableFilter[NumFilterType];
383 bool myFilterParmLabels[NumFilterType];
384 bool myFilterFullNames[NumFilterType];
385 bool myIsFiltered[NumFilterType];
386 bool myFilterTranlates;
387 bool myFilterRotates;
404 CH_ON_COLLISION_ASSERT
405 } CollisionBehaviour;
408 CH_EXPANSION_TYPE_EXPRESSION = 1,
409 CH_EXPANSION_TYPE_VARIABLE = 1 << 1,
410 CH_EXPANSION_TYPE_TILDE = 1 << 2,
411 CH_EXPANSION_TYPE_DEFAULT = CH_EXPANSION_TYPE_EXPRESSION |
412 CH_EXPANSION_TYPE_VARIABLE |
413 CH_EXPANSION_TYPE_TILDE,
430 virtual void aboutToDelete();
439 virtual void setContext();
443 void resetPlayback();
445 void resetChannelOptions();
446 bool loadChannelOptions(
const char *
filename );
447 bool saveChannelOptions(
const char *
filename );
452 myDefaultExpression.harden( s );
455 {
return (
const char *)myDefaultExpression; }
459 myDefaultRotationExpression.harden(s);
462 {
return (
const char *)myDefaultRotationExpression;}
466 {
return myAutoSlope; }
468 { myDefaultSlope = slope; }
470 {
return myDefaultSlope; }
472 { myAutoSplit = onoff; }
474 {
return myAutoSplit; }
476 { myDefaultSplitExpression.harden(
477 expr ? expr :
"" ); }
479 {
return (
const char *)myDefaultSplitExpression; }
482 { myHoldLastKey = onoff; }
484 {
return myHoldLastKey; }
486 {
return (
const char *)myChanCreateKeyExpression; }
488 { myChanCreateKeyExpression.harden(s ? s :
""); }
490 {
return myAlwaysCommitKey; }
492 { myAlwaysCommitKey = onoff; }
502 void clearChannelScope();
510 int getNumScopedChanRefs()
511 {
return myScopedChannels.getNumScopedChanRefs(); }
519 bool sorted=false)
const;
529 void getScopedChannelsKeyFrames(
UT_IntArray &frames,
530 int minframe,
int maxframe);
534 void blockModifyScope(
int on_off);
542 void scopeChannel(const
char *full_chan_path,
bool on_off);
544 bool scopeChannelInternal(const
CH_Channel *chp,
bool on_off);
546 bool scopeChannelInternal(const
CH_ChannelRef &chref,
bool on_off);
548 virtual
void getChannelsWithNodeId(
CH_ChannelList &chans,
int node_id) const;
552 void scopeChanged(
unsigned flags,
bool propagate=true );
558 bool isChannelScoped(const
char *full_chan_path) const;
565 void clearPendingChannels();
567 bool hasPendingChannels() const;
577 bool isChannelDisplayed(
CH_Channel *chp) const;
581 bool isChannelDisplayed( const
char *full_chan_path ) const;
583 void clearDisplayedChannels(
bool propagate = true );
585 void displayAllScopedChannels(
bool propagate = true );
587 void displaySelectedScopedChannels(
bool propagate = true );
591 bool propagate = true );
593 void displayChannel( const
char *full_chan_path,
594 bool propagate = true );
597 bool propagate = true );
599 void undisplayChannel( const
char *full_chan_path,
600 bool propagate = true );
608 bool isChannelSelected( const
char *full_chan_path ) const;
610 void clearSelectedChannels(
bool propagate = true );
612 void selectAllScopedChannels(
bool propagate = true );
616 bool propagate = true );
618 void selectChannel( const
char *full_chan_path,
619 bool propagate = true );
622 bool propagate = true );
624 void deselectChannel( const
char *full_chan_path,
625 bool propagate = true );
631 void togglePinAllScopedChannels();
635 void pinAllScopedChannels(
bool propagate = true );
637 void unpinAllScopedChannels(
bool propagate = true );
639 void pinSelectedChannels(
bool propagate = true,
640 int operateOn = CH_SELECTED );
642 void unpinSelectedChannels(
bool propagate = true,
643 int operateOn = CH_SELECTED );
646 bool propagate = true );
649 bool propagate = true );
654 void clearLayerScope();
658 bool isLayerScoped(const
char *full_chan_path) const;
664 void scopeLayer(const
char *full_chan_path,
bool on_off);
666 bool scopeLayerInternal(
CH_Channel *chp,
bool on_off);
668 bool scopeLayerInternal(const
CH_ChannelRef &chref,
bool on_off);
676 bool isLayerSelected( const
char *full_chan_path ) const;
678 void clearSelectedLayers(
bool propagate = true );
680 void selectAllScopedLayers(
bool propagate = true );
683 void selectLayer( const
CH_ChannelRef &chref,
bool propagate = true );
685 void selectLayer( const
char *full_chan_path,
bool propagate = true );
687 void deselectLayer( const
CH_ChannelRef &chref,
bool propagate = true );
689 void deselectLayer( const
char *full_chan_path,
bool propagate = true );
695 void togglePinAllScopedLayers();
699 void pinAllScopedLayers(
bool propagate = true );
701 void unpinAllScopedLayers(
bool propagate = true );
703 void pinSelectedLayers(
bool propagate = true,
int operateOn =
CH_LAYER_SELECTED );
705 void unpinSelectedLayers(
bool propagate = true,
int operateOn = CH_LAYER_SELECTED );
718 bool isLayerDisplayed( const
char *full_chan_path ) const;
720 void clearDisplayedLayers(
bool propagate = true );
722 void displayAllScopedLayers(
bool propagate = true );
724 void displaySelectedScopedLayers(
bool propagate = true );
728 bool propagate = true );
730 void displayLayer( const
char *full_chan_path,
731 bool propagate = true );
734 bool propagate = true );
736 void undisplayLayer( const
char *full_chan_path,
737 bool propagate = true );
743 bool propagate = true );
745 unsigned getChannelFlags( const
CH_ChannelRef &chref ) const;
753 int expandString(const
char *
string,
UT_String &expanded,
756 int expansion_type = CH_EXPANSION_TYPE_DEFAULT,
758 context_options_stack =
nullptr,
762 void buildStringOpDependencies( const
char *str,
void *ref_id,
769 bool scanForVariableInString(const
char *
variable,
770 const
char *
string) const;
772 const
char *new_fullpath,
773 const
char *old_fullpath,
775 const
char *chan_name,
776 const
char *old_chan_name,
787 context_options_stack =
nullptr,
788 DEP_ContextOptionsReadHandle context_options =
789 DEP_ContextOptionsReadHandle());
795 context_options_stack =
nullptr,
796 DEP_ContextOptionsReadHandle context_options =
797 DEP_ContextOptionsReadHandle());
801 static
void evaluationError(
int err,
int thread, const
char *
path);
812 bool getIsSettingGlobalParam()
const
813 {
return (mySettingGlobalParam > 0); }
814 void getGlobalParamF(
const char *token,
CH_Collection *scope,
816 bool add_dependencies );
817 void getGlobalParamS(
const char *token,
CH_Collection *scope,
819 int thread,
bool add_dependencies );
824 void getGlobalParamAnyScopeF(
const char *token,
CH_Collection *scope,
826 bool add_dependencies );
827 void getGlobalParamAnyScopeS(
const char *token,
CH_Collection *scope,
829 int thread,
bool add_dependencies );
831 int setGlobalFloatParam(
const char *token,
834 int setGlobalStringParam(
const char *token,
839 void dumpGlobalParams(std::ostream &out)
const;
843 void dirtyOrphanGlobalParamDependents(
const char *token,
851 {
return (mySettingGuideParam > 0); }
859 CH_Group *findGroup(
const char *const_path,
bool create =
false,
862 const char *
pattern,
bool minimal );
874 bool propagate =
true);
875 void updateGroupSelectionFromScoped(
void *by,
876 bool propagate =
true);
879 bool propagate =
true);
881 const char *
name=
"new_group");
884 CH_Group *createGroup(
const char *const_path,
885 bool doRename =
true,
CH_Group *head=0);
893 void collapseChildren(
CH_Group *parent );
899 CollisionBehaviour cb,
900 const char *new_name = 0 );
902 CollisionBehaviour cb,
903 const char *new_name = 0 );
905 CollisionBehaviour cb );
907 CollisionBehaviour cb );
923 static bool couldExpandString(
const char *str);
927 {
return myDefaultExprLanguage; }
929 { myDefaultExprLanguage = language; }
933 {
return p == &myScopedChannels; }
937 {
return myScopedChannels; }
939 {
return myScopedChannels; }
942 void timeGroupsChanged();
947 void destroyTimeGroup(
int i);
956 int getTimeGroupIdx(
const char *
name )
const;
975 int niceFrameSeparation(
fpreal initialSep,
976 int minimumSep = 1)
const;
984 static fpreal getDefaultFPS();
987 static int getDefaultChopMotionSamples();
990 void setRawNumSamples(
int n);
992 void setSamplesPerSec(
fpreal fps);
994 void setRawSamplesPerSec(
fpreal fps);
996 void setChopMotionSamples(
int n);
1001 {
return getFrame( myStart ); }
1003 {
return getFrame( myEnd ); }
1015 return ((sample-1.0)/myFPS);
1025 return niceNumber(getSampleRaw(t));
1030 return (
int)
SYSfloor(getSampleRaw(t+getTolerance()));
1035 return sample_delta/myFPS;
1040 return time_delta*myFPS;
1045 return getTime(
SYSrint( getSampleRaw(t) ) );
1065 snaptime = getSnapToFrameTime( t );
1066 return SYSisEqual(t, snaptime, getTolerance());
1105 void parseUnitsString(
const char *
units,
1108 fpreal scaleToMKS(
const char *fromunits)
const;
1109 fpreal scaleFromMKS(
const char *tounits)
const;
1122 start = myRangeStart;
1127 if (start > end) { myRangeEnd =
start; myRangeStart =
end; }
1128 else { myRangeEnd =
end; myRangeStart =
start; }
1135 int saveChannels(
const char *
filename,
bool binary,
bool compiled,
1137 bool displayed =
false)
const;
1138 int loadChannels(
const char *
filename,
1139 const char *src_pattern,
1140 const char *dest_pattern,
1145 bool delete_keys =
false,
1147 static bool readCHNFileHeader(
UT_IStream &is,
bool quiet,
1151 static bool skipCHNFileHeaderForCollection(
UT_IStream &is,
bool &is_fp64);
1152 static bool getFileType(
const char *
filename,
int &raw,
int &
binary );
1153 static bool printFileInfo(std::ostream &os,
const char *
filename,
1155 bool print_segments=
true );
1176 evalContext(thread).myCollection =
g;
1178 evalContext(thread).myChannel = 0;
1179 evalContext(thread).mySegment = 0;
1180 evalContext(thread).myChannelName = 0;
1191 return evalContext(thread).myCollection;
1198 { myRootCollection = root; }
1200 {
return myRootCollection; }
1207 {
return myEvalContext.getValueForThread(thread); }
1211 {
return myEvalContext.getValueForThread(thread); }
1214 {
return evalContext(thread).myChannel; }
1216 {
return evalContext(thread).mySegment; }
1218 {
return evalContext(thread).myChannelName; }
1221 {
return evalContext(thread).myContextOptionsStack; }
1224 {
return evalContext(thread).myContextOptions; }
1229 {
return evalContext(thread).time(); }
1231 { evalContext(thread).setTime(time); }
1233 { evalContext(thread).setFlicks(fl); }
1249 bool getVariableValue(
UT_String &str,
int i,
1251 bool getVariableValue(
fpreal &
val,
int i,
1255 bool getVariableValue(
int &
val,
int i,
int thread)
const;
1258 virtual bool getVariableString(
const char *
name,
1271 static void lookupVariableNoThread(
const char *
name,
1275 static void lookupExpressionNoThread(
const char *
name,
1296 const char *
path)
const;
1317 bool use_alias=
false)
const;
1319 void changeReferencesToNodeId(
int old_id,
int new_id);
1325 void removeReferencesToNodeId(
int node_id);
1327 void displayScope()
const;
1341 {
return myAutoKeyTuples; }
1343 { myAutoKeyTuples=
b; }
1348 {
return mySetAutoScopeOnChannelCreate; }
1350 { mySetAutoScopeOnChannelCreate=
b; }
1355 {
return myAutoScopeIncludeAnimated; }
1357 { myAutoScopeIncludeAnimated=
b; }
1361 {
return myFollowScopedChannelReferences; }
1363 { myFollowScopedChannelReferences=
b; }
1376 fpreal evalCycleOffsetFunc(
1378 fpreal evalCycleOffsettFunc(
1405 {
return myAutoScopeIncludeChild; }
1407 { myAutoScopeIncludeChild=
b; }
1412 {
return myAutoScopeIncludeConstraints; }
1414 { myAutoScopeIncludeConstraints=
b; }
1422 {
return myDefaultContextOptions; }
1425 void setDefaultContextOption(
1428 void setDefaultContextOption(
1433 void setDefaultContextOptionUiConfig(
1436 void removeDefaultContextOption(
1438 void clearDefaultContextOptions();
1439 bool saveDefaultContextOptions(std::ostream &os)
const;
1440 bool loadDefaultContextOptions(
UT_IStream &is);
1441 int addDefaultContextOptionCallback(
1443 void removeDefaultContextOptionCallback(
int id);
1450 void triggerChannelChanged();
1461 {
return myIgnoreUpdateScopeFlag; }
1463 { myIgnoreUpdateScopeFlag = onoff; }
1465 void initExpressionLibrary();
1469 void initLibraryGlue();
1474 void internalScopeChanged(
unsigned flags,
1475 bool propagate=
true );
1477 void handleGroupCollision(
CH_Group *new_group,
1479 CollisionBehaviour cb );
1481 void destroyContents();
1482 int internalSetGlobalParam(
const char *token,
1485 int setSingleGlobalParam(
const char *token,
1488 void internalDirtyOrphanGlobalParamDependents(
1493 void propagateDefaultContextOptionDirtied(
1496 static char *chExprExpander(
const char *str,
int thread);
1502 bool operator==(
const chParamKey &key)
const;
1506 const char *getToken()
const
1514 {
return key.hash(); }
1545 chParamData *findGlobalParam(
const char *token,
1547 chParamData *findOrCreateGlobalParam(
1549 fpreal fval,
const char *sval);
1551 chParamData *myLastGlobalParam;
1552 int mySettingGlobalParam;
1554 int mySettingGuideParam;
1556 int myChopMotionSamples;
1558 unsigned myGroupsSorted:1,
1561 myRealTimeDisableSkip:1,
1570 mySetAutoScopeOnChannelCreate:1,
1571 myAutoScopeIncludeAnimated:1,
1572 myFollowScopedChannelReferences:1,
1573 myAutoScopeIncludeChild:1,
1574 myAutoScopeIncludeConstraints:1;
1577 short myRawInterpFlag;
1583 SlopeMode myAutoSlope;
1587 bool myAlwaysCommitKey;
1600 int myBlockModifyScope;
1601 unsigned myPendingScopeChange;
1602 bool myPendingChannelChanged;
1608 myDefaultContextOptionCallbacks;
1609 int myNextDefaultContextOptionCallbackId;
1611 bool myIgnoreUpdateScopeFlag;
1630 : myContext(chman.evalContext(thread))
1631 , myCollection(nullptr)
1632 , myPopCollection(false)
1633 , myPopContextOptions(false)
1635 #if defined(CH_USE_FLICKS)
1636 myFlicks = myContext.flicks();
1638 mySeconds = myContext.time();
1640 myContext.setTime(time);
1643 myPopCollection =
true;
1644 myCollection = myContext.myCollection;
1645 myContext.myCollection = ch;
1647 if (!context_options.isNull())
1649 myPopContextOptions =
true;
1650 myContextOptionsStack = myContext.myContextOptionsStack;
1651 myContext.myContextOptionsStack = context_options_stack;
1652 myContextOptions = myContext.myContextOptions;
1653 myContext.myContextOptions = context_options;
1659 #if defined(CH_USE_FLICKS)
1660 myContext.setFlicks(myFlicks);
1662 myContext.setTime(mySeconds);
1664 if (myPopCollection)
1665 myContext.myCollection = myCollection;
1666 if (myPopContextOptions)
1668 myContext.myContextOptionsStack = myContextOptionsStack;
1669 myContext.myContextOptions = myContextOptions;
1678 #if defined(CH_USE_FLICKS)
1683 bool myPopCollection;
1684 bool myPopContextOptions;
1695 : myContext(
CH_Manager::getContext()->evalContext(thread))
1697 myCollection = myContext.myCollection;
1699 myContext.myCollection = collection;
1703 return myContext.myCollection;
1708 myContext.myCollection = collection;
1712 myContext.myCollection = myCollection;
fpreal getSampleDelta(fpreal time_delta) const
fpreal getRealTimeFactor() const
CH_API void CHsortChannelRefs(CH_ChannelRefList &channels)
GLboolean GLboolean GLboolean b
DEP_ContextOptionsHandle getDefaultContextOptions() const
GT_API const UT_StringHolder filename
bool getAutoScopeIncludeConstraints() const
const char * getEvalChannelName(int thread) const
fpreal getSnapToFrameTime(fpreal t) const
fpreal getSecsPerSample() const
CH_API fpreal CHgetTimeFromFrame(fpreal frame)
#define SYS_DEPRECATED(__V__)
void setAutoScopeOnChannelCreate(bool b)
CH_API fpreal CHgetSampleFromTime(fpreal time)
virtual ~CH_ChannelColorManager()
void setAutoScopeIncludeChild(bool b)
const DEP_ContextOptionsStack * getEvalChannelContextOptionsStack(int thread) const
void setAutoScopeIncludeConstraints(bool b)
fpreal getUnitLength() const
GT_API const UT_StringHolder time
bool(* CH_StringVarEvalFunc)(UT_String &val, int varid, int thread)
void setHoldFlag(int flag)
void setSampleStep(fpreal s)
void setShowAudioFlag(int flag)
bool(* CH_IntVarEvalFunc)(int &val, int varid, int thread)
const GLuint GLenum const void * binary
GLsizei const GLchar *const * path
void setShowRangeFlag(int flag)
void setKeepChannelListSelection(bool b)
bool getAutoScopeOnChannelCreate() const
void setFilterParmLabels(FilterType filter_type, bool b)
void setFilterScales(bool b)
void setSampleRange(fpreal start, fpreal end)
fpreal getSampleRaw(fpreal t) const
const CH_TimeGroup * getTimeGroup(int i) const
std::size_t SYS_HashType
Define the type for hash values.
fpreal getSnapSample(fpreal frame) const
void setEvalCollection(CH_Collection *g, int thread)
int getShowSimCacheFlag() const
CH_API void CHsortChannelPaths(UT_StringArray &channel_paths)
CH_API void CHoutputChannelList(UT_WorkBuffer &info, CH_ChannelList &channels)
bool getAutoScopeIncludeChild() const
Selectively extract and filter point data using a custom filter operator.
CH_API void CHbuildRange(int start, int end, UT_SuperIntervalR &r)
fpreal getTimeDelta(fpreal sample_delta) const
fpreal getTimeCodeOffset(fpreal) const
GLuint const GLchar * name
bool getFilterParmLabels(FilterType filter_type) const
bool getIsSettingGuideParam() const
int getRealTimeFlag() const
void setEnableFilter(FilterType filter_type, bool b)
SYS_API fpreal64 SYSniceNumber(fpreal64 num, int digits=6)
void setShowSimCacheFlag(int flag)
const CH_EvalContext & evalContext(int thread) const
int getHoldLastKey() const
void setAutoScopeIncludeAnimated(bool b)
int getShowKeysFlag() const
fpreal getUnitMass() const
static bool getContextExists()
void setUnitMass(fpreal unitmass)
bool getRealTimeDisableSkip() const
SlopeMode getAutoSlope() const
void setChanCreateKeyExpression(const char *s)
void setFollowScopedChannelReferences(bool b)
bool getFilterFullNames(FilterType filter_type) const
int getGlobalEndFrame() const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
bool getFollowScopedChannelReferences() const
int getNTimeGroups() const
void setDefaultSplitExpression(const char *expr)
void getSampleRange(fpreal &start, fpreal &end)
int getFrame(fpreal t) const
fpreal getSampleStep() const
bool getFilterTranslates() const
CH_API void CHsortLayerRefs(CH_ChannelRefList &channels)
bool getAutoScopeIncludeAnimated() const
int getRawInterpolation()
GLint GLint GLsizei GLint GLenum GLenum type
CH_AutoEvaluateTime(CH_Manager &chman, int thread, fpreal time, CH_Collection *ch=nullptr, const DEP_ContextOptionsStack *context_options_stack=nullptr, DEP_ContextOptionsReadHandle context_options=DEP_ContextOptionsReadHandle())
bool getFilterScales() const
CH_Manager * CHgetManager()
fpreal getGlobalStart() const
fpreal getSample(fpreal t) const
const UT_StringHolder & getFilter(FilterType filter_type) const
int getIntegerFrameFlag() const
std::function< void(const UT_StringHolder &)> CH_DefaultContextOptionCallback
const CH_Segment * getEvalSegment(int thread) const
bool getAutoKeyTuples() const
Auto-Key all Tuples is a preference to key tuples together.
bool getEnableFilter(FilterType filter_type) const
DEP_ContextOptionsReadHandle getEvalChannelContextOptions(int thread) const
void setRootCollection(CH_Collection *root)
fpreal getSamplesPerSec() const
void setIntegerFrameFlag(int flag)
void setShowTicksFlag(int flag)
int getRestrictRangeFlag() const
void setDefaultSlope(fpreal slope)
GLsizei GLsizei GLchar * source
void setEvaluateTime(SYS_Flicks fl, int thread)
Functions for obtaining and setting the current evaluation time.
void setShowKeysFlag(int flag)
CH_EvalContext & evalContext(int thread)
CH_API void CHchannelsToCollections(CH_ChannelList const &channels, CH_CollectionList &collections)
const CH_Channel * getEvalChannel(int thread) const
void setRawInterpolation(int state)
CH_API void CHdisplayFlags(unsigned flags, std::ostream &s)
void setDefaultExpression(const char *s)
fpreal getGlobalEnd() const
void setDefaultExprLanguage(CH_ExprLanguage language)
bool getIgnoreUpdateScopeFlag() const
SYS_API fpreal32 SYSfloor(fpreal32 val)
fpreal getAudioLevel() const
CH_Collection * collection() const
CH_API int CHgetFrameFromTime(fpreal time)
void setAudioLevel(fpreal lvl)
CH_ExprLanguage getDefaultExprLanguage()
void setAutoSlope(SlopeMode m)
void setFilterFullNames(FilterType filter_type, bool b)
fpreal32 SYSrint(fpreal32 val)
virtual ~CH_FilterChanged()
fpreal getDefaultSlope() const
static CH_Manager * getContext()
int getShowAudioFlag() const
bool getIsAtFrame(fpreal t) const
int getShowRangeFlag() const
const char * getDefaultExpression() const
GT_API const UT_StringHolder version
void setDefaultRotationExpression(const char *s)
CH_AutoEvalCollection(int thread, CH_Collection *collection=NULL)
GLenum GLuint GLenum GLsizei const GLchar * buf
const CH_ScopedChannels & getGlobalScopedChannels() const
void setRealTimeDisableSkip(bool b)
fpreal getEvaluateTime(int thread) const
Functions for obtaining and setting the current evaluation time.
CH_Collection * getEvalCollection(int thread) 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
void setUnitLength(fpreal unitlength)
bool getFilterRotates() const
UT_COWReadHandle< DEP_ContextOptions > DEP_ContextOptionsReadHandle
void setRealTimeFactor(fpreal f)
void setAutoKeyTuples(bool b)
Push & restore the evaluation time (and optionally a channel collection)
int getChopMotionSamples() const
CH_ScopedChannels & getGlobalScopedChannels()
const char * getDefaultRotationExpression() const
virtual ~CH_ChannelChanged()
SYS_HashType operator()(const chParamKey &key) const
void setAlwaysCommitKeyChange(bool onoff)
bool getAutoSplit() const
void setHoldLastKey(bool onoff)
fpreal getNumSamples() const
void setFilterRotates(bool b)
virtual CH_ScriptAccessManager * getAccessManager(int)
void setTimeCodeOffset(fpreal t)
GLsizei const GLfloat * value
bool getAlwaysCommitKeyChange() const
void set(CH_Collection *collection)
virtual bool getChannelAutoSelect(const CH_ChannelRef &chref) const
CH_TimeGroup * getTimeGroup(int i)
CH_Collection * getRootCollection() const
bool getKeepChannelListSelection() const
bool operator!=(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
static fpreal niceNumber(fpreal num, int digits=6)
void setAutoSplit(bool onoff)
void setFilterTranslates(bool b)
const char * getDefaultSplitExpression() const
void setRealTimeFlag(int flag)
void setIgnoreUpdateScopeFlag(bool onoff)
bool(* CH_FloatVarEvalFunc)(fpreal &val, int varid, int thread)
void setEvaluateTime(fpreal time, int thread)
Functions for obtaining and setting the current evaluation time.
int getGlobalStartFrame() const
fpreal getTolerance() const
fpreal getTime(fpreal sample) const
void setRestrictRangeFlag(int flag)
void setFilter(FilterType filter_type, const UT_StringHolder &f)
int getShowTicksFlag() const
CH_API void CHsortChannels(CH_ChannelList &channels)
ImageBuf OIIO_API channels(const ImageBuf &src, int nchannels, cspan< int > channelorder, cspan< float > channelvalues={}, cspan< std::string > newchannelnames={}, bool shuffle_channel_names=false, int nthreads=0)
CH_ScopedChannels & CHgetScopedChannels()
const char * getChanCreateKeyExpression() const
bool isGlobalScopedChannels(CH_ScopedChannels *p)