#include <MTime.h>
Set and retrieve animation time values in various unit systems.
The MTime class provides a fundamental type for the Maya API to hold and manipulate animation timing information in various unit systems. All API methods that require or return timing information do so through variables of this type.
If one desires to manipulate time in such a way that integer changes in an MTime instance result in integer changes in the frame displayed by the timeslider, then an MTime instance should be created that uses UI units. This can be done either by using the default constructor, or by passing the return value of the static method uiUnit to the normal constructor. Once such an MTime instance is created, its value will be equivalent to a frame on the timeslider.
It should be noted that while the timeslider displays frames, a seemingly unitless value, Maya internally is operating based on the desired frameRate (one of those specified by the MTime::Unit enum. It is necessary for the API programmer to be aware of this as MTime instances are not unitless and allow the manipulation of time in any desired units.
Public Types | |
enum | Unit { kInvalid, kHours, kMinutes, kSeconds, kMilliseconds, kGames, k15FPS = kGames, kFilm, k24FPS = kFilm, kPALFrame, k25FPS = kPALFrame, kNTSCFrame, k30FPS = kNTSCFrame, kShowScan, k48FPS = kShowScan, kPALField, k50FPS = kPALField, kNTSCField, k60FPS = kNTSCField, k2FPS, k3FPS, k4FPS, k5FPS, k6FPS, k8FPS, k10FPS, k12FPS, k16FPS, k20FPS, k40FPS, k75FPS, k80FPS, k100FPS, k120FPS, k125FPS, k150FPS, k200FPS, k240FPS, k250FPS, k300FPS, k375FPS, k400FPS, k500FPS, k600FPS, k750FPS, k1200FPS, k1500FPS, k2000FPS, k3000FPS, k6000FPS, kUserDef, kLast } |
Time units. More... | |
Public Member Functions | |
MTime () | |
Default class constructor. More... | |
MTime (const MTime &) | |
Copy Constructor. More... | |
MTime (double time_val, Unit=kFilm) | |
Constructor that sets the current time to the given value in the given units. More... | |
~MTime () | |
The class destructor. | |
Unit | unit () const |
Returns the current units in effect for this instance. More... | |
double | value () const |
Returns the current time value in the units that are currently in effect for this instance. More... | |
MStatus | setUnit (Unit new_unit) |
Set the current units in effect on this MTime instance. More... | |
MStatus | setValue (double new_value) |
Set the current time value in the current units for this instance. More... | |
double | as (Unit other_unit) const |
Returns the current time value in the given units. More... | |
double | asUnits (Unit other_unit) const |
Returns the current time value in the given units. More... | |
MTime & | operator= (const MTime &rhs) |
Assignment operator. More... | |
bool | operator== (const MTime &rhs) const |
Equality operator. More... | |
bool | operator!= (const MTime &rhs) const |
InEquality operator. More... | |
bool | operator<= (const MTime &rhs) const |
Less than or equal to operator. More... | |
bool | operator>= (const MTime &rhs) const |
Greater than or equal to operator. More... | |
bool | operator< (const MTime &rhs) const |
Less than operator. More... | |
bool | operator> (const MTime &rhs) const |
Greater than operator. More... | |
MTime | operator+ (const MTime &rhs) const |
Addition with another MTime. More... | |
MTime & | operator+= (const MTime &rhs) |
In-place addition with another MTime. More... | |
MTime | operator+ (double rhs) const |
Addition with a double. More... | |
MTime & | operator+= (double rhs) |
In-place addition with a double. More... | |
MTime | operator- (const MTime &rhs) const |
Subtraction of another MTime. More... | |
MTime & | operator-= (const MTime &rhs) |
In-place subtraction of another MTime. More... | |
MTime | operator- (double rhs) const |
Subtraction of a double. More... | |
MTime & | operator-= (double rhs) |
In-place Subtraction of a double. More... | |
MTime | operator* (double rhs) const |
Multiplication by a scalar operator. More... | |
MTime & | operator*= (double rhs) |
In place multiplication by a scalar operator. More... | |
MTime | operator/ (double rhs) const |
Division by a scalar operator. More... | |
MTime & | operator/= (double rhs) |
In place division by a scalar operator. More... | |
MTime & | operator++ () |
NO SCRIPT SUPPORT. More... | |
MTime & | operator++ (int) |
NO SCRIPT SUPPORT. More... | |
MTime & | operator-- () |
NO SCRIPT SUPPORT. More... | |
MTime & | operator-- (int) |
NO SCRIPT SUPPORT. More... | |
Static Public Member Functions | |
static Unit | uiUnit () |
Returns the Working Units (or UI units) chosen in the settings of the prefs window. More... | |
static MStatus | setUIUnit (Unit new_unit) |
Set the unit system to be used by the user in the UI. More... | |
static const char * | className () |
Returns the name of this class. More... | |
static MTick | ticksPerSecond () |
Returns the number of ticks per second, the smallest unit of time available. More... | |
Friends | |
OPENMAYA_EXPORT std::ostream & | operator<< (std::ostream &os, const MTime &t) |
NO SCRIPT SUPPORT. More... | |
enum Unit |
Time units.
Enumerator | |
---|---|
kInvalid |
Invalid value. |
kHours |
3600 seconds |
kMinutes |
60 seconds |
kSeconds |
1 second |
kMilliseconds |
1/1000 of a second |
kGames |
|
k15FPS |
15 frames per second |
kFilm |
|
k24FPS |
24 frames per second |
kPALFrame |
|
k25FPS |
25 frames per second |
kNTSCFrame |
|
k30FPS |
30 frames per second |
kShowScan |
|
k48FPS |
twice the speed of film (48 frames per second) |
kPALField |
|
k50FPS |
twice the speed of PAL (50 frames per second) |
kNTSCField |
|
k60FPS |
twice the speed of NTSC (60 frames per second) |
k2FPS |
2 frames per second |
k3FPS |
3 frames per second |
k4FPS |
4 frames per second |
k5FPS |
5 frames per second |
k6FPS |
6 frames per second |
k8FPS |
8 frames per second |
k10FPS |
10 frames per second |
k12FPS |
12 frames per second |
k16FPS |
16 frames per second |
k20FPS |
20 frames per second |
k40FPS |
40 frames per second |
k75FPS |
75 frames per second |
k80FPS |
80 frames per second |
k100FPS |
100 frames per second |
k120FPS |
120 frames per second |
k125FPS |
125 frames per second |
k150FPS |
150 frames per second |
k200FPS |
200 frames per second |
k240FPS |
240 frames per second |
k250FPS |
250 frames per second |
k300FPS |
300 frames per second |
k375FPS |
375 frames per second |
k400FPS |
400 frames per second |
k500FPS |
500 frames per second |
k600FPS |
600 frames per second |
k750FPS |
750 frames per second |
k1200FPS |
1200 frames per second |
k1500FPS |
1500 frames per second |
k2000FPS |
2000 frames per second |
k3000FPS |
3000 frames per second |
k6000FPS |
6000 frames per second |
kUserDef |
user defined units (not implemented yet) |
kLast |
Last value, used for counting. |
MTime | ( | ) |
Default class constructor.
Sets the initial time to 1 (the first frame) in the UI units currently in effect.
MTime | ( | double | newValue, |
MTime::Unit | newUnit = kFilm |
||
) |
Constructor that sets the current time to the given value in the given units.
If the parameter, newUnit, is not specified, it defaults to kFilm (24 frames/second).
[in] | newValue | the initial time value, in the newUnit system |
[in] | newUnit | the unit system to be used in this instance |
MTime::Unit unit | ( | ) | const |
Returns the current units in effect for this instance.
double value | ( | ) | const |
Returns the current time value in the units that are currently in effect for this instance.
MStatus setUnit | ( | MTime::Unit | newUnit | ) |
Set the current units in effect on this MTime instance.
Note that this method only changes the current units in the instance, it does not affect the value. So, calls to the value method before and after a call to setUnit will return the same number, however, the interpretation of that number will be different due to the change in unit systems.
[in] | newUnit | an element of the MTime::Unit enum |
MStatus setValue | ( | double | newValue | ) |
Set the current time value in the current units for this instance.
[in] | newValue | The new time value. |
double as | ( | MTime::Unit | newUnit | ) | const |
Returns the current time value in the given units.
This does not affect the current units for the instance.
[in] | newUnit | an element of the MTime::Unit enum |
double asUnits | ( | MTime::Unit | newUnit | ) | const |
Returns the current time value in the given units.
This does not affect the current units for the instance.
[in] | newUnit | an element of the MTime::Unit enum |
|
static |
Returns the Working Units (or UI units) chosen in the settings of the prefs window.
Maya's timeslider displays frames in these units.
|
static |
Set the unit system to be used by the user in the UI.
After the successful completion of this method, Maya's timeslider will be displaying frames in the specified units.
[in] | newUnit | an element of the MTime::Unit enum |
bool operator== | ( | const MTime & | rhs | ) | const |
Equality operator.
[in] | rhs | Right operand. |
bool operator!= | ( | const MTime & | rhs | ) | const |
InEquality operator.
[in] | rhs | Right operand. |
bool operator<= | ( | const MTime & | rhs | ) | const |
Less than or equal to operator.
[in] | rhs | Right operand. |
bool operator>= | ( | const MTime & | rhs | ) | const |
Greater than or equal to operator.
[in] | rhs | Right operand. |
bool operator< | ( | const MTime & | rhs | ) | const |
Less than operator.
[in] | rhs | Right operand. |
bool operator> | ( | const MTime & | rhs | ) | const |
Greater than operator.
[in] | rhs | Right operand. |
MTime operator+ | ( | double | rhs | ) | const |
Addition with a double.
The double is interpreted as a number of frames in the units of the MTime instance to the left of the + operator. Thus, to increase time by five frames in the current units, add 5 to the instance.
The result is returned in a new MTime. The MTime on the left is not modified.
[in] | rhs | Right operand. |
MTime & operator+= | ( | double | rhs | ) |
MTime operator- | ( | double | rhs | ) | const |
Subtraction of a double.
The double is interpreted as a number of frames in the units of the MTime instance to the left of the - operator. Thus, to decrease time by five frames in the current units, subtract 5 from the instance.
The result is returned in a new MTime. The MTime on the left is not modified.
[in] | rhs | Right operand. |
MTime & operator-= | ( | double | rhs | ) |
MTime operator* | ( | double | rhs | ) | const |
Multiplication by a scalar operator.
Multiply the instance to the left of the * operator by the given double, and assign the result to a new MTime instance.
[in] | rhs | the scalar to multiply by. |
MTime & operator*= | ( | double | rhs | ) |
In place multiplication by a scalar operator.
Multiply the current instance by the given double.
[in] | rhs | the scalar to multiply by. |
MTime operator/ | ( | double | rhs | ) | const |
Division by a scalar operator.
Divide the instance to the left of the / operator by the given double, and assign the result to a new MTime instance.
[in] | rhs | the scalar to divide by. |
MTime & operator/= | ( | double | rhs | ) |
In place division by a scalar operator.
Divide the current instance by the given double.
[in] | rhs | the scalar to multiply by. |
MTime & operator++ | ( | ) |
NO SCRIPT SUPPORT.
Prefix increment operator.
MTime & operator++ | ( | int | dTime | ) |
NO SCRIPT SUPPORT.
Postfix increment operator.
[in] | dTime | dummy argument to differentiate the prefix and postfix operators. |
MTime & operator-- | ( | ) |
NO SCRIPT SUPPORT.
Prefix decrement operator.
MTime & operator-- | ( | int | dTime | ) |
NO SCRIPT SUPPORT.
Postfix decrement operator.
[in] | dTime | dummy argument to differentiate the prefix and postfix operators. |
|
static |
Returns the name of this class.
|
static |
Returns the number of ticks per second, the smallest unit of time available.
|
friend |