#include <PackList_TimeBlockTrack.h>
Inherits PackList.
Definition at line 18 of file PackList_TimeBlockTrack.h.
Public Types | |
typedef TimeBlockTrackElement *(* | TimeBlockTrackElementCreatorCallBackFunction )(void) |
TimeTrackElementCreatorCallBackFunction stands for a pointer to a static method that make a new TimeTrackElement. | |
enum | eVedaUpdate { eVedaUpdate_NoUpdate = 0, eVedaUpdate_MemberIsGoingToChange, eVedaUpdate_MemberChanged, eVedaUpdate_MemberChangedBecauseOfUndo, eVedaUpdate_MemberDestroyed, eVedaUpdate_ObjectNew, eVedaUpdate_ObjectDestroyed, eVedaUpdate_ObjectReCreated, eVedaUpdate_ObjectClosed, eVedaUpdate_NewRegisteredClass } |
enum used by BaseContext::NotifyObjectChange() to describe the notification meaning. Used by interfaces to monitor a context. More... | |
Public Member Functions | |
PackList_TimeBlockTrack (TimeBlockTrackElementCreatorCallBackFunction _func) | |
Constructor. Like PAckList you specify an element constructor, and the meaning of time by elements. Dates and length are then given in seconds. | |
virtual const char * | GetClassID () const |
Each BaseType's inherited classes must explicit an ID for their class, or let use one of the super class at least through this virtual method. This is needed by GUIs to detect the types of each sub-members, and shape an interface for each Object according to their member list. | |
virtual void | SwapElements (unsigned int _indexOfElementToSwapWithNext) |
Edition tool: Exchange 2 neighbour elements in the list, if there is a next element. if index is 0, 0 will be 1 and 1 will be 0. | |
void | SetDefaultTimeCellLength (double _DefaultTimeCellLength=8.0) |
In edition mode, there is a default timelength you can set at init:. | |
virtual Cell * | GetCellByDate (double _dateInSecond) |
Find the Cell which match a given date in the list. It means the date is between this element and the next elment's date. Then get its TimeTrackElement with ->GetManagedObject(). | |
virtual Cell * | AddElement (int _indexWhereToInsert=-1, BaseType *_pObjectToAdd=0L) |
Override PackList to assure the list is date-sorted. Add a new element, at the given index, in edition context. in non-editable, it shouldnt be used, and serialization recreate the elements. when asked a first element, as the track must have a length, we create 2 elements: a zero timed one, and a end with default time length. | |
virtual const unsigned char * | Serialize_In (const unsigned char *_pDescriptionChunk) |
Read the object description from a byte chunk. Could crash if chunk not valid. | |
virtual unsigned int | GetSerializedDescriptionSize (void) |
get the size of the whole byte chunk that will be written by Serialize_Out(). | |
virtual unsigned char * | Serialize_Out (unsigned char *_pDescriptionChunkToFill) |
write the Current object definition to a Chunk using private packed types, recursively. | |
virtual void | DeleteElement (unsigned int _index) |
delete an element at a given index. It closes and destroys the object. | |
virtual void | DeleteElement (BaseType *_pObWhichCellIsToDestroy) |
delete an element at a given index. It closes and destroys the object. | |
virtual const unsigned char * | MergeSerialize_In (const unsigned char *_pDescriptionChunk, const char *_pendName=0L) |
Acts like Serialize_In() but keep all previous objects. So you can load and mix 2 or more context this way. | |
virtual void | CloneElement (unsigned int _indexOfElementToClone) |
Insert a new element after _indexOfElementToClone, and clone it with the previous element shape. Note this can exclude some data members, like Object reference. | |
virtual void | SetObjectThatManagesThis (BaseObject *_pManager) |
The Object this one belong to as a member. Should only be used at init. | |
virtual const char * | ValueToString () |
convert the value of this object to an explicit string. The object manages the string privately, so just read it or copy it. the string would be destroyed with the objects, and changed when using Set() methods. Note: this is not virtual, but each class can manage m_pValueString or not. | |
BaseType * | Get (unsigned int _index) |
get an element at a given index. | |
Cell * | GetFirstCell () const |
FirstCell or null if empty. | |
Cell * | GetLastCell () const |
the Last Cell or null if empty | |
unsigned int | GetNumberOfCell () const |
return the number of cell. | |
void | DeleteAllElements (void) |
close and destroy the whole list. | |
virtual unsigned int | WriteFile (const char *_pFileName) |
write a serialized form, using GetSerializedDescriptionSize() and Serialize_Out(). | |
virtual unsigned int | ReadFile (const char *_pFileName) |
Try to read a serialized form, using Serialize_In(). | |
void | SetMemberName (const char *_MemberName) |
Explicits the name of an object when used as a class member. It exists only in editable mode, and then can be used by any GUI. A member with an infoString not NULL, should be drawn in a GUI and receive updates. an object member with GetMemberName() returning NULL should not be edited by an interface or undo-managed. Use REGISTER_MEMBER macros family: it registers the members and use SetMemberName() automatically (or not, according to the compilation mode). | |
const char * | GetMemberName () const |
Explicits the name of an object when used as a class member. It exists only in editable mode, and then can be used by any GUI. A member with an infoString not NULL, should be drawn in a GUI and receive updates. an object member with GetMemberName() to NULL should not be edited by an interface or undo-managed. set with SetMemberName(). | |
void | SetMemberInfo (const char *_MemberInfo) |
Explicits the use of an object when used as a class member. It should explain what the member does for the object. It exists only in editable mode,and can be used by any GUI. Don't use html tags , only \n are allowed. Use REGISTER_MEMBER_INFO macro after the REGISTER_MEMBER macro in the constructors. It can be left NULL. | |
const char * | GetMemberInfo () const |
Explicits the use of an object when used as a class member. It exists only in editable mode and can be used by any GUI. It should explain what the member does for the object. | |
BaseObject * | GetObjectThatManagesThis () |
If there is any, get the object that manages this one as a member. | |
void | MakeCloneOf (BaseType &_ModelObject) |
Tool that makes an object take the values of another using serialization. Use with care: You got to clone a PackUlong with a PackULong, a PackString with a PackString: Clone Object of the same type or it will crash . A test is done at the beginning to check that for both types are the sames, if not it does nothing. however it may still crash with 2 objects from unherited classes. Also, some type like PackObjectReference, will not clone its value by copying a pointer.Reference member clonage is done with BaseObject::Clone(). | |
Protected Member Functions | |
void | RegisterSerializableMember (BaseType &_object) |
Register any serializable object to serialize for read or write operation, Use it in objects constructors. The object are serialized in the file in the same order as they are given by this method. | |
void | BeginChangeNotification () |
In edition mode, when a member of an object is changed (like in a Set()), you got to use BeginChangeNotification(), make your changes, and then EndChangeNotification(), so that the edition of this object and member is known by the context, and allows it to manage a GUI update and the undo stack. | |
void | EndChangeNotification () |
In edition mode, when a member of an object is changed (like in a Set()), you got to use BeginChangeNotification(), make your changes, and then EndChangeNotification(), so that the edition of this object and member is known by the context, and allows it to manage a GUI update and the undo stack. | |
Protected Attributes | |
double | m_DefaultTimeCellLength |
In edition mode, there is a default start timelength. | |
PackULong | mSerUlong_ChunkLength |
thechunk length of the list: | |
BaseTypeCreatorCallBackFunction | m_CreatorFunc |
Static Method Pointer to the NewObject function used to create the object that this node manage. | |
Cell * | m_pFirstCell |
member that manages the list of members to serialize automatically. | |
Cell * | m_pLastCell |
another member that manages the list of members to serialize automatically, and allow to grow the list by the end. | |
unsigned int | m_NumberOfCell |
the number of cell. | |
BaseObject * | m_pObjectThatManagesThis |
an object can belong (or not) to a BaseObject,( and to a BaseContext through it). | |
const char * | m_pMemberName |
If used as a member in an object, the member name, or NULL (not editable member). | |
const char * | m_pMemberInfo |
a short string explaining what's the object for in editable mode. OK if NULL (no info). | |
PackString * | m_pValueString |
a string standing for an expression of the value of the object: | |
unsigned char * | m_pPreviousValueShape |
used as a temp for object change notification in Begin/EndChangeNotification(): | |
unsigned int | m_PreviousValueShapeLength |
Classes | |
class | TimeBlockTrackElement |
Nested class that describe a dated element in the list. It has to be extended with new serializable members (ex: splines, scripts, music tracks..). It manages the fact that the time are kept sorted in edition mode. More... |
|
TimeTrackElementCreatorCallBackFunction stands for a pointer to a static method that make a new TimeTrackElement.
Definition at line 26 of file PackList_TimeBlockTrack.h. |
|
enum used by BaseContext::NotifyObjectChange() to describe the notification meaning. Used by interfaces to monitor a context.
Definition at line 194 of file BaseType.h. |
|
Constructor. Like PAckList you specify an element constructor, and the meaning of time by elements. Dates and length are then given in seconds.
|
|
Override PackList to assure the list is date-sorted. Add a new element, at the given index, in edition context. in non-editable, it shouldnt be used, and serialization recreate the elements. when asked a first element, as the track must have a length, we create 2 elements: a zero timed one, and a end with default time length.
Reimplemented from PackList. |
|
In edition mode, when a member of an object is changed (like in a Set()), you got to use BeginChangeNotification(), make your changes, and then EndChangeNotification(), so that the edition of this object and member is known by the context, and allows it to manage a GUI update and the undo stack.
|
|
Insert a new element after _indexOfElementToClone, and clone it with the previous element shape. Note this can exclude some data members, like Object reference.
|
|
close and destroy the whole list.
|
|
delete an element at a given index. It closes and destroys the object.
Reimplemented in PackList_TimeTrack. |
|
delete an element at a given index. It closes and destroys the object.
Reimplemented from PackStruct. |
|
In edition mode, when a member of an object is changed (like in a Set()), you got to use BeginChangeNotification(), make your changes, and then EndChangeNotification(), so that the edition of this object and member is known by the context, and allows it to manage a GUI update and the undo stack.
|
|
get an element at a given index.
|
|
Find the Cell which match a given date in the list. It means the date is between this element and the next elment's date. Then get its TimeTrackElement with ->GetManagedObject().
|
|
Each BaseType's inherited classes must explicit an ID for their class, or let use one of the super class at least through this virtual method. This is needed by GUIs to detect the types of each sub-members, and shape an interface for each Object according to their member list.
Reimplemented from PackList. Definition at line 44 of file PackList_TimeBlockTrack.h. |
|
FirstCell or null if empty.
Definition at line 171 of file PackStruct.h. References PackStruct::m_pFirstCell. Referenced by LightModel::GetFirstDifuseLight(), and LightModel::GetFirstLinearLight(). |
|
the Last Cell or null if empty
Definition at line 176 of file PackStruct.h. References PackStruct::m_pLastCell. Referenced by PackList_TimeTrack::GetEndTime(). |
|
Explicits the use of an object when used as a class member. It exists only in editable mode and can be used by any GUI. It should explain what the member does for the object.
Definition at line 144 of file BaseType.h. References BaseType::m_pMemberInfo. |
|
Explicits the name of an object when used as a class member. It exists only in editable mode, and then can be used by any GUI. A member with an infoString not NULL, should be drawn in a GUI and receive updates. an object member with GetMemberName() to NULL should not be edited by an interface or undo-managed. set with SetMemberName().
Definition at line 123 of file BaseType.h. References BaseType::m_pMemberName. |
|
return the number of cell.
Definition at line 181 of file PackStruct.h. References PackStruct::m_NumberOfCell. |
|
If there is any, get the object that manages this one as a member.
Definition at line 170 of file BaseType.h. References BaseType::m_pObjectThatManagesThis. |
|
get the size of the whole byte chunk that will be written by Serialize_Out().
Reimplemented from PackStruct. |
|
Tool that makes an object take the values of another using serialization. Use with care: You got to clone a PackUlong with a PackULong, a PackString with a PackString: Clone Object of the same type or it will crash . A test is done at the beginning to check that for both types are the sames, if not it does nothing. however it may still crash with 2 objects from unherited classes. Also, some type like PackObjectReference, will not clone its value by copying a pointer.Reference member clonage is done with BaseObject::Clone().
|
|
Acts like Serialize_In() but keep all previous objects. So you can load and mix 2 or more context this way.
|
|
Try to read a serialized form, using Serialize_In().
|
|
Register any serializable object to serialize for read or write operation, Use it in objects constructors. The object are serialized in the file in the same order as they are given by this method.
|
|
Read the object description from a byte chunk. Could crash if chunk not valid.
Reimplemented from PackStruct. Reimplemented in PackList_TimeTrack. |
|
write the Current object definition to a Chunk using private packed types, recursively.
Reimplemented from PackStruct. |
|
In edition mode, there is a default timelength you can set at init:.
|
|
Explicits the use of an object when used as a class member. It should explain what the member does for the object. It exists only in editable mode,and can be used by any GUI. Don't use html tags , only \n are allowed. Use REGISTER_MEMBER_INFO macro after the REGISTER_MEMBER macro in the constructors. It can be left NULL.
|
|
Explicits the name of an object when used as a class member. It exists only in editable mode, and then can be used by any GUI. A member with an infoString not NULL, should be drawn in a GUI and receive updates. an object member with GetMemberName() returning NULL should not be edited by an interface or undo-managed. Use REGISTER_MEMBER macros family: it registers the members and use SetMemberName() automatically (or not, according to the compilation mode).
|
|
The Object this one belong to as a member. Should only be used at init.
Reimplemented from BaseType. Reimplemented in PackResource. |
|
Edition tool: Exchange 2 neighbour elements in the list, if there is a next element. if index is 0, 0 will be 1 and 1 will be 0.
Reimplemented from PackList. |
|
convert the value of this object to an explicit string. The object manages the string privately, so just read it or copy it. the string would be destroyed with the objects, and changed when using Set() methods. Note: this is not virtual, but each class can manage m_pValueString or not.
Reimplemented from BaseType. Reimplemented in PackDynamicType. |
|
write a serialized form, using GetSerializedDescriptionSize() and Serialize_Out().
|
|
Static Method Pointer to the NewObject function used to create the object that this node manage.
Definition at line 127 of file PackList.h. |
|
In edition mode, there is a default start timelength.
Definition at line 128 of file PackList_TimeBlockTrack.h. |
|
the number of cell.
Definition at line 197 of file PackStruct.h. Referenced by PackStruct::GetNumberOfCell(). |
|
member that manages the list of members to serialize automatically.
Definition at line 193 of file PackStruct.h. Referenced by PackStruct::GetFirstCell(). |
|
another member that manages the list of members to serialize automatically, and allow to grow the list by the end.
Definition at line 195 of file PackStruct.h. Referenced by PackStruct::GetLastCell(). |
|
a short string explaining what's the object for in editable mode. OK if NULL (no info).
Definition at line 259 of file BaseType.h. Referenced by BaseType::GetMemberInfo(). |
|
If used as a member in an object, the member name, or NULL (not editable member).
Definition at line 255 of file BaseType.h. Referenced by BaseType::GetMemberName(). |
|
an object can belong (or not) to a BaseObject,( and to a BaseContext through it).
Definition at line 251 of file BaseType.h. Referenced by BaseType::GetObjectThatManagesThis(). |
|
used as a temp for object change notification in Begin/EndChangeNotification():
Definition at line 269 of file BaseType.h. |
|
a string standing for an expression of the value of the object:
Definition at line 264 of file BaseType.h. |
|
thechunk length of the list:
Definition at line 125 of file PackList.h. |
/\/\ 4 N k ! N D _______ _ __ ___ _____ ___ _ _ ____ ___________ __//___ /________ |/ / ___________\_______/ \ / _ _ \/ _ / _ / _/_/____/ _ __ / / / / / / / \ \/ / / \ \ / \\___/___/___/ ¯ _____/_____/ ______\___/_____/\________\\ \________/_ ___ __ l____\ /elD! http://www.m4nkind.com \____/