519 lines
28 KiB
C
519 lines
28 KiB
C
/*************************************************************************/
|
|
/* File : CKEnums.h */
|
|
/* */
|
|
/* Virtools SDK */
|
|
/* Copyright (c) Virtools 1999, All Rights Reserved. */
|
|
/*************************************************************************/
|
|
#ifndef CKENUMS_H
|
|
|
|
#define CKENUMS_H "$Id:$"
|
|
|
|
|
|
/***************************************************
|
|
{filename:CK_OBJECT_FLAGS}
|
|
Summary: CKObject Flags
|
|
|
|
Remarks:
|
|
+ Flags specifying special settings for basic objects.
|
|
+ Some of this flags are shared with sub-classes such as CKParameterIn,CKParameterOut and CKBehaviorIO.
|
|
+ You rarely need to modify directly this flags through CKObject::SetFlags or CKObject::ModifyObjectFlags instead
|
|
you should always use the specific acces function (given between ()) which may need to perform additionnal operations.
|
|
See also: CKObject,CKObject::GetObjectFlags,CKObject::ModifyObjectFlags
|
|
*************************************************/
|
|
typedef enum CK_OBJECT_FLAGS {
|
|
CK_OBJECT_INTERFACEOBJ = 0x00000001, // Reserved for Inteface Use
|
|
CK_OBJECT_PRIVATE = 0x00000002, // The object must not be displayed in interface (Lists,Level view,etc...),nor should it be saved. (CKObject::IsPrivate()
|
|
CK_OBJECT_INTERFACEMARK = 0x00000004,
|
|
CK_OBJECT_FREEID = 0x00000008, // ID of this object can be released safely and is free to be reused by future CKobjects.
|
|
CK_OBJECT_TOBEDELETED = 0x00000010, // This object is being deleted
|
|
CK_OBJECT_NOTTOBESAVED = 0x00000020, // This object must not be saved
|
|
CK_OBJECT_VISIBLE = 0x00000040, // This object is visible (CKObject::Show)
|
|
CK_OBJECT_NAMESHARED = 0x00000080, // This object has its name from another entity
|
|
CK_OBJECT_DYNAMIC = 0x00000108, // This object may be created or deleted at run-time, it also contails CK_OBJECT_FREEID. (CKObject::IsDynamic,CKContext::CreateObject)
|
|
CK_OBJECT_HIERACHICALHIDE = 0x00000200, // This object hides all its hierarchy (CKObject::Show)
|
|
CK_OBJECT_UPTODATE = 0x00000400, // (Camera,etc..)
|
|
CK_OBJECT_TEMPMARKER = 0x00000800,
|
|
CK_OBJECT_ONLYFORFILEREFERENCE = 0x00001000,
|
|
CK_OBJECT_NOTTOBEDELETED = 0x00002000, // This object must not be deleted in a clear all
|
|
CK_OBJECT_APPDATA = 0x00004000, // This object has app data
|
|
CK_OBJECT_SINGLEACTIVITY = 0x00008000, // this object has an information of single activity (active at scene start,etc..)
|
|
CK_OBJECT_LOADSKIPBEOBJECT = 0x00010000, // When loading this object the CKBeObject part should be skipped
|
|
CK_OBJECT_KEEPSINGLEACTIVITY = 0x00020000, // this object must keep its information of single activity (active at scene start,etc..)
|
|
CK_OBJECT_LOADREPLACINGOBJECT = 0x00040000, // Indicates the object being loaded is being replaced
|
|
|
|
CK_OBJECT_NOTTOBELISTEDANDSAVED = 0x00000023, // Combination of Private and Not To Be Saved
|
|
CK_OBJECT_SELECTIONSET = 0x00080000, // if group, then it is a selection set, otherwise, temporary flag used for objects belonging to a selection set. Used by Virtools's Interface
|
|
CK_OBJECT_VR_DISTRIBUTED = 0x00100000, // distributed object for VR (ie mainly used for distributed parameters for VR)
|
|
|
|
|
|
// The following flags are specific to parameters (they are stored here for object's size purposes )
|
|
CK_PARAMETEROUT_SETTINGS = 0x00400000,
|
|
CK_PARAMETEROUT_PARAMOP = 0x00800000, // This parameter is the output of a CKParameterOperation (Automatically set by Engine)
|
|
CK_PARAMETERIN_DISABLED = 0x01000000, // Parameter In or Out is disabled (CKBehavior::EnableInputParameter,CKBehavior::DisableInputParameter)
|
|
CK_PARAMETERIN_THIS = 0x02000000, // Special parameter type : its value and type are always equal to its owner (CKParameter::SetAsMyselfParameter)
|
|
CK_PARAMETERIN_SHARED = 0x04000000,
|
|
CK_PARAMETEROUT_DELETEAFTERUSE = 0x08000000, // When adding parameters to CKMessage, they can be automatically deleted when message is released (CKMessage::AddParameter)
|
|
CK_OBJECT_PARAMMASK = 0x0FC00000, // Mask for options specific to parameters
|
|
|
|
// The Following flags are specific for Behavior ios (CKBehaviorIO)
|
|
CK_BEHAVIORIO_IN = 0x10000000, // This BehaviorIO is a behavior input (CKBehaviorIO::SetType}
|
|
CK_BEHAVIORIO_OUT = 0x20000000, // This BehaviorIO is a behavior output (CKBehaviorIO::SetType)
|
|
CK_BEHAVIORIO_ACTIVE = 0x40000000, // This BehaviorIO is a currently active (CKBehaviorIO::Activate}
|
|
CK_OBJECT_IOTYPEMASK = 0x30000000,
|
|
CK_OBJECT_IOMASK = 0xF0000000,
|
|
|
|
// The Following flags are specific for Behavior ios (CKBehaviorIO)
|
|
CKBEHAVIORLINK_RESERVED = 0x10000000, // This BehaviorIO is a behavior input (CKBehaviorIO::SetType}
|
|
CKBEHAVIORLINK_ACTIVATEDLASTFRAME = 0x20000000, // This link had been activated last frame
|
|
CK_OBJECT_BEHAVIORLINKMASK = 0x30000000,
|
|
} CK_OBJECT_FLAGS;
|
|
|
|
|
|
|
|
/************************************************************
|
|
{filename:CK_BEHAVIOR_FLAGS}
|
|
Summary: Flags settings for behaviors.
|
|
Remarks:
|
|
+ When creating a prototype, you can precise various flags
|
|
about how your behavior will act: whether it will send or receive message,
|
|
does the user may add inputs,outputs or parameters, is it active, etc.
|
|
|
|
See also: CKBehaviorPrototype::SetBehaviorFlags,Behavior Prototype Creation
|
|
**********************************************************/
|
|
typedef enum CK_BEHAVIOR_FLAGS {
|
|
CKBEHAVIOR_NONE =0x00000000, // Reserved for future use
|
|
CKBEHAVIOR_ACTIVE =0x00000001, // This behavior is active
|
|
CKBEHAVIOR_SCRIPT =0x00000002, // This behavior is a script
|
|
CKBEHAVIOR_RESERVED1 =0x00000004, // Reserved for internal use.
|
|
CKBEHAVIOR_USEFUNCTION =0x00000008, // Behavior uses a function and not a graph
|
|
CKBEHAVIOR_RESERVED2 =0x00000010, // Reserved for internal use.
|
|
CKBEHAVIOR_CUSTOMSETTINGSEDITDIALOG =0x00000020, // Behavior has a custom Dialog Box for settings edition .
|
|
CKBEHAVIOR_WAITSFORMESSAGE =0x00000040, // Behavior is waiting for a message to activate one of its outputs
|
|
CKBEHAVIOR_VARIABLEINPUTS =0x00000080, // Behavior may have its inputs changed by editing them
|
|
CKBEHAVIOR_VARIABLEOUTPUTS =0x00000100, // Behavior may have its outputs changed by editing them
|
|
CKBEHAVIOR_VARIABLEPARAMETERINPUTS =0x00000200, // Behavior may have its number of input parameters changed by editing them
|
|
CKBEHAVIOR_VARIABLEPARAMETEROUTPUTS =0x00000400, // Behavior may have its number of output parameters changed by editing them
|
|
CKBEHAVIOR_TOPMOST =0x00004000, // No other Behavior includes this one
|
|
CKBEHAVIOR_BUILDINGBLOCK =0x00008000, // This Behavior is a building block. Automatically set by the engine when coming from a DLL.
|
|
CKBEHAVIOR_MESSAGESENDER =0x00010000, // Behavior may send messages during its execution.
|
|
CKBEHAVIOR_MESSAGERECEIVER =0x00020000, // Behavior may check messages during its execution.
|
|
CKBEHAVIOR_TARGETABLE =0x00040000, // Behavior may be owned by a different object that the one to which its execution will apply.
|
|
CKBEHAVIOR_CUSTOMEDITDIALOG =0x00080000, // This Behavior have a custom Dialog Box for parameters edition .
|
|
CKBEHAVIOR_RESERVED0 =0x00100000, // Reserved for internal use.
|
|
CKBEHAVIOR_EXECUTEDLASTFRAME =0x00200000, // This behavior has been executed during last process. (Available only in profile mode )
|
|
CKBEHAVIOR_DEACTIVATENEXTFRAME =0x00400000, // Behavior will be deactivated next frame
|
|
CKBEHAVIOR_RESETNEXTFRAME =0x00800000, // Behavior will be reseted next frame
|
|
CKBEHAVIOR_INTERNALLYCREATEDINPUTS =0x01000000, // Behavior execution may create/delete inputs
|
|
CKBEHAVIOR_INTERNALLYCREATEDOUTPUTS =0x02000000, // Behavior execution may create/delete outputs
|
|
CKBEHAVIOR_INTERNALLYCREATEDINPUTPARAMS =0x04000000, // Behavior execution may create/delete input parameters or change their type
|
|
CKBEHAVIOR_INTERNALLYCREATEDOUTPUTPARAMS=0x08000000, // Behavior execution may create/delete output parameters or change their type
|
|
CKBEHAVIOR_INTERNALLYCREATEDLOCALPARAMS =0x40000000, // Behavior execution may create/delete local parameters or change their type
|
|
CKBEHAVIOR_ACTIVATENEXTFRAME =0x10000000, // Behavior will be activated next frame
|
|
CKBEHAVIOR_LOCKED =0x20000000, // Behavior is locked for utilisation in Virtools
|
|
CKBEHAVIOR_LAUNCHEDONCE =0x80000000, // Behavior has not yet been launched...
|
|
} CK_BEHAVIOR_FLAGS;
|
|
|
|
|
|
/*************************************************
|
|
{filename:CK_BEHAVIOR_CALLBACKMASK}
|
|
Summary: Mask for the messages the callback function of a behavior should be aware of.
|
|
|
|
Remarks:
|
|
+The callback function of a behavior may ignore some messages using this mask.
|
|
+Don't forget to set the mask for the behavior callback function if you use one since it
|
|
can improve performance not to receive useless messages.
|
|
See also: CKBehaviorPrototype::SetBehaviorCallbackFct,Behavior Prototype Creation
|
|
*************************************************/
|
|
typedef enum CK_BEHAVIOR_CALLBACKMASK {
|
|
CKCB_BEHAVIORPRESAVE =0x00000001, // Callback will be called for CKM_BEHAVIORPRESAVE messages
|
|
CKCB_BEHAVIORDELETE =0x00000002, // Callback will be called for CKM_BEHAVIORDELETE messages
|
|
CKCB_BEHAVIORATTACH =0x00000004, // Callback will be called for CKM_BEHAVIORATTACH messages
|
|
CKCB_BEHAVIORDETACH =0x00000008, // Callback will be called for CKM_BEHAVIORDETACH messages
|
|
CKCB_BEHAVIORPAUSE =0x00000010, // Callback will be called for CKM_BEHAVIORPAUSE messages
|
|
CKCB_BEHAVIORRESUME =0x00000020, // Callback will be called for CKM_BEHAVIORRESUME messages
|
|
CKCB_BEHAVIORCREATE =0x00000040, // Callback will be called for CKM_BEHAVIORCREATE messages
|
|
CKCB_BEHAVIORRESET =0x00001000, // Callback will be called for CKM_BEHAVIORRESET messages
|
|
CKCB_BEHAVIORPOSTSAVE =0x00000100, // Callback will be called for CKM_BEHAVIORPOSTSAVE messages
|
|
CKCB_BEHAVIORLOAD =0x00000200, // Callback will be called for CKM_BEHAVIORLOAD messages
|
|
CKCB_BEHAVIOREDITED =0x00000400, // Callback will be called for CKM_BEHAVIOREDITED messages
|
|
CKCB_BEHAVIORSETTINGSEDITED =0x00000800, // Callback will be called for CKM_BEHAVIORSETTINGSEDITED messages
|
|
CKCB_BEHAVIORREADSTATE =0x00001000, // Callback will be called for CKM_BEHAVIORREADSTATE messages
|
|
CKCB_BEHAVIORNEWSCENE =0x00002000, // Callback will be called for CKM_BEHAVIORNEWSCENE messages
|
|
CKCB_BEHAVIORACTIVATESCRIPT =0x00004000, // Callback will be called for CKM_BEHAVIORACTIVATESCRIPT messages
|
|
CKCB_BEHAVIORDEACTIVATESCRIPT=0x00008000, // Callback will be called for CKM_BEHAVIORDEACTIVATESCRIPT messages
|
|
CKCB_BEHAVIORRESETINBREAKPOINT=0x00010000, // Callback will be called for CKM_BEHAVIORRESETINBREAKPOINT messages
|
|
|
|
CKCB_BEHAVIORBASE =0x0000000E, // Base flags :attach /detach /delete
|
|
CKCB_BEHAVIORSAVELOAD =0x00000301, // Base flags for load and save
|
|
CKCB_BEHAVIORPPR =0x00000130, // Base flags for play/pause/reset
|
|
CKCB_BEHAVIOREDITIONS =0x00000C00, // Base flags for editions of settings or parameters
|
|
CKCB_BEHAVIORALL =0xFFFFFFFF, // All flags
|
|
} CK_BEHAVIOR_CALLBACKMASK;
|
|
|
|
|
|
|
|
/*************************************************
|
|
{filename:CK_BEHAVIOR_RETURN}
|
|
Summary: Return value for the behavior execution function.
|
|
Remarks:
|
|
+ Return value of a behavior execution function is used to activate it
|
|
the next frame and handle errors.
|
|
|
|
+ A return value with _RETRY (CKBR_ACTIVATENEXTFRAME bit set) forces the behavior to be reactivated next frame.
|
|
|
|
See also: CKBehaviorPrototype::SetFunction
|
|
*************************************************/
|
|
typedef enum CK_BEHAVIOR_RETURN
|
|
{
|
|
CKBR_OK = 0, // Everything's ok. Behavior is deactivated unless one of its inputs is active.
|
|
CKBR_ACTIVATENEXTFRAME = 1, // The behavior will be reactivated next frame
|
|
CKBR_ATTACHFAILED = 2, // The attach failed
|
|
CKBR_DETACHFAILED = 4, // The attach failed
|
|
CKBR_LOCKED = 6, // obsolete..
|
|
CKBR_INFINITELOOP = 8, // The behavior has reached the infinite loop limit...
|
|
CKBR_BREAK = 10, // Break the processing here => Keep on processing windows messages but keep on calling the behavior until
|
|
// it returns a different value (Used by script debugger )
|
|
CKBR_GENERICERROR = 0xA000, // Something went wrong
|
|
CKBR_BEHAVIORERROR = 0xA002, // The behavior gave to the code was wrong
|
|
CKBR_OWNERERROR = 0xA004, // The owner isn't what it should be
|
|
CKBR_PARAMETERERROR = 0xA008, // Some of the parameters are wrong
|
|
CKBR_GENERICERROR_RETRY = 0xA001,
|
|
CKBR_BEHAVIORERROR_RETRY = 0xA003,
|
|
CKBR_OWNERERROR_RETRY = 0xA005,
|
|
CKBR_PARAMETERERROR_RETRY = 0xA009,
|
|
|
|
|
|
} CK_BEHAVIOR_RETURN;
|
|
|
|
|
|
/*************************************************
|
|
{filename:CK_BEHAVIOR_TYPE}
|
|
Summary: Behavior Type.
|
|
Remarks:
|
|
+ Behaviors may be scripts, simpliest behaviors (a function) or elaborated graphs of sub-behaviors.
|
|
|
|
See also: CKBehavior::GetType
|
|
*************************************************/
|
|
typedef enum CK_BEHAVIOR_TYPE {
|
|
CKBEHAVIORTYPE_BASE =0x00000000, // This Behavior is a most simple type of behavior ( a function )
|
|
CKBEHAVIORTYPE_SCRIPT =0x00000001, // This Behavior is a script
|
|
CKBEHAVIORTYPE_BEHAVIOR =0x00000004, // This Behavior is a simple one ( a graph )
|
|
} CK_BEHAVIOR_TYPE;
|
|
|
|
/*************************************************
|
|
{filename:CK_PARAMETERTYPE_FLAGS}
|
|
Summary: Flags settings for new parameter types
|
|
|
|
Remarks:
|
|
+These flags specify special settings for a parameter type.
|
|
+Parameter may have a fixed or variable buffer size, some may be hidden
|
|
so that they are not displayed in the interface.
|
|
See also: CKParameterTypeDesc
|
|
*************************************************/
|
|
typedef enum CK_PARAMETERTYPE_FLAGS {
|
|
CKPARAMETERTYPE_VARIABLESIZE = 0x00000001, // Size of the buffer stored by the parameter may change
|
|
CKPARAMETERTYPE_RESERVED = 0x00000002, // Reserved
|
|
CKPARAMETERTYPE_HIDDEN = 0x00000004, // This parameter type should not be shown in the interface
|
|
CKPARAMETERTYPE_FLAGS = 0x00000008, // This parameter type is a flag (See CKParameterManager::RegisterNewFlags)
|
|
CKPARAMETERTYPE_STRUCT = 0x00000010, // This parameter type is a structure of parameters (See CKParameterManager::RegisterNewStructure)
|
|
CKPARAMETERTYPE_ENUMS = 0x00000020, // This parameter type is an enumeration (See CKParameterManager::RegisterNewEnum)
|
|
CKPARAMETERTYPE_USER = 0x00000040, // This parameter type is a user-defined one created in the interface
|
|
CKPARAMETERTYPE_NOENDIANCONV = 0x00000080, // Do not try to convert this parameter buffer On Big-Endian processors (strings, void buffer have this flags)
|
|
CKPARAMETERTYPE_TOSAVE = 0x00000100, // Temporary flag set in CKFile::EndSave(). This parameter type is to be saved in the SaveData callback of managers. Used in Parameter Manager (used user's flags & enums)
|
|
} CK_PARAMETERTYPE_FLAGS;
|
|
|
|
|
|
/*************************************************
|
|
{filename:CK_ATTRIBUT_FLAGS}
|
|
Summary: Attribute Flags
|
|
|
|
Remarks:
|
|
+ When created a new attribute type with CKAttributeManager::RegisterNewAttributeType , it can
|
|
be given special properties that will control its behavior in the Dev interface and other
|
|
special features such as the ability for an attribute to be copied or saved along with the object
|
|
it belongs to.
|
|
See also: CKAttributeManager::RegisterNewAttributeType,CKAttributeManager::GetAttributeFlags
|
|
*************************************************/
|
|
typedef enum CK_ATTRIBUT_FLAGS {
|
|
CK_ATTRIBUT_CAN_MODIFY = 0x00000001, // This Attribute type may be renamed
|
|
CK_ATTRIBUT_CAN_DELETE = 0x00000002, // This Attribute type may be deleted
|
|
CK_ATTRIBUT_HIDDEN = 0x00000004, // This Attribute type will not appear in the Virtools Interface
|
|
CK_ATTRIBUT_DONOTSAVE = 0x00000008, // This Attribute type will not be saved
|
|
CK_ATTRIBUT_USER = 0x00000010, // This Attribute type was created by a user (in the Dev interface for example)
|
|
CK_ATTRIBUT_SYSTEM = 0x00000020, // This Attribute type was created by the system (Behavior Dll,Manager,etc...)
|
|
CK_ATTRIBUT_DONOTCOPY = 0x00000040, // This Attribute type will not be copied when the object that holds it is copied
|
|
CK_ATTRIBUT_TOSAVE = 0x00000080, // Temporary flag set in CKFile::EndSave(). This parameter type is to be saved in the SaveData callback of managers. Used in Attribute Manager (used attributes)
|
|
} CK_ATTRIBUT_FLAGS;
|
|
|
|
|
|
//----------------------------------------------------------////
|
|
// Behavior Prototype Flags ////
|
|
//----------------------------------------------------------////
|
|
|
|
|
|
typedef enum CK_BEHAVIORPROTOTYPE_FLAGS {
|
|
CK_BEHAVIORPROTOTYPE_NORMAL =0x00000001,
|
|
CK_BEHAVIORPROTOTYPE_HIDDEN =0x00000002,
|
|
CK_BEHAVIORPROTOTYPE_OBSOLETE =0x00000004,
|
|
} CK_BEHAVIORPROTOTYPE_FLAGS;
|
|
|
|
|
|
/*************************************************
|
|
{filename:CK_LOADMODE}
|
|
Summary: Specify the way an object just loaded should be handled when it already exists in the level.
|
|
{secret}
|
|
|
|
See also:
|
|
*************************************************/
|
|
typedef enum CK_LOADMODE
|
|
{
|
|
CKLOAD_INVALID=-1,// Use the existing object instead of loading
|
|
CKLOAD_OK=0, // Ignore ( Name unicity is broken )
|
|
CKLOAD_REPLACE=1, // Replace the existing object (Not yet implemented)
|
|
CKLOAD_RENAME=2, // Rename the loaded object
|
|
CKLOAD_USECURRENT=3,// Use the existing object instead of loading
|
|
} CK_LOADMODE,CK_CREATIONMODE;
|
|
|
|
/*************************************************
|
|
{filename:CK_OBJECTCREATION_OPTIONS}
|
|
Summary: Specify the way an object is created through CKCreateObject.
|
|
|
|
Remarks:
|
|
+ These flag controls the way an object is created, the most important of these flags
|
|
being CK_OBJECTCREATION_DYNAMIC which, if set in CKCreateObject, make the newly created object
|
|
dynamic.
|
|
See also: CKContext::CreateObject,Dynamic Objects
|
|
*************************************************/
|
|
enum CK_OBJECTCREATION_OPTIONS
|
|
{
|
|
CK_OBJECTCREATION_NONAMECHECK = 0, // Do not test for name unicity (may be overriden in special case)
|
|
CK_OBJECTCREATION_REPLACE = 1, // Replace the current object by the object being loaded
|
|
CK_OBJECTCREATION_RENAME = 2, // Rename the created object to ensure its uniqueness
|
|
CK_OBJECTCREATION_USECURRENT = 3, // Do not create a new object, use the one with the same name instead
|
|
CK_OBJECTCREATION_ASK = 4, // If a duplicate name if found, opens a dialog box to ask the useror use automatic load mode if any.
|
|
CK_OBJECTCREATION_FLAGSMASK = 0x0000000F, // Mask for previous values
|
|
CK_OBJECTCREATION_DYNAMIC = 0x00000010, // The object must be created dynamic
|
|
CK_OBJECTCREATION_ACTIVATE = 0x00000020, // The object will be copied/created active
|
|
CK_OBJECTCREATION_NONAMECOPY = 0x00000040 // The object will take control of the string given to it directly, without copying it
|
|
};
|
|
|
|
|
|
#define CK_OBJECTCREATION_SameDynamic (IsDynamic() ? CK_OBJECTCREATION_DYNAMIC : CK_OBJECTCREATION_NONAMECHECK)
|
|
|
|
#define CK_OBJECTCREATION_Dynamic(x) (x ? CK_OBJECTCREATION_DYNAMIC : CK_OBJECTCREATION_NONAMECHECK)
|
|
|
|
/*************************************************
|
|
{filename:CK_DEPENDENCIES_OPMODE}
|
|
Summary: Specify the mode of operation of a CKDependenciesContext.
|
|
|
|
Remarks:
|
|
A CKDependenciesContext class is always used when it come to work
|
|
with object dependencies (A mesh if a dependencies of a CK3dEntity for example)
|
|
See also: CKCreateObject
|
|
*************************************************/
|
|
typedef enum CK_DEPENDENCIES_OPMODE {
|
|
CK_DEPENDENCIES_COPY = 1, // Copying objects
|
|
CK_DEPENDENCIES_DELETE = 2, // Deleting objects
|
|
CK_DEPENDENCIES_REPLACE = 3,
|
|
CK_DEPENDENCIES_SAVE = 4, // Saving objects
|
|
CK_DEPENDENCIES_BUILD = 5, // Building a list of dependencies
|
|
CK_DEPENDENCIES_OPERATIONMODE = 0xF
|
|
} CK_DEPENDENCIES_OPMODE;
|
|
|
|
/*************************************************
|
|
{filename:CK_FILE_WRITEMODE}
|
|
Summary: Specify the way files are saved to disk (compression)
|
|
|
|
Remarks :
|
|
+ File write mode controls the format of a Virtools file when saved. More specifically it
|
|
controls whether compression is enabled and also if the Virtools Interface specific data
|
|
should be stored in the file (if CKFILE_FORVIEWER flag is set , no interface data is saved)
|
|
|
|
See also: CKContext::SetFileWriteMode,CKContext::GetFileWriteMode,CKContext::SetCompressionLevel,CKContext::SetGlobalImagesSaveOptions,CKContext::SetGlobalSoundsSaveOptions
|
|
*************************************************/
|
|
typedef enum CK_FILE_WRITEMODE
|
|
{
|
|
CKFILE_UNCOMPRESSED =0, // Save data uncompressed
|
|
CKFILE_CHUNKCOMPRESSED_OLD =1, // Obsolete
|
|
CKFILE_EXTERNALTEXTURES_OLD=2, // Obsolete : use CKContext::SetGlobalImagesSaveOptions instead.
|
|
CKFILE_FORVIEWER =4, // Don't save Interface Data within the file, the level won't be editable anymore in the interface
|
|
CKFILE_WHOLECOMPRESSED =8, // Compress the whole file
|
|
} CK_FILE_WRITEMODE;
|
|
|
|
|
|
|
|
/*************************************************
|
|
{filename:CK_CONFIG_FLAGS}
|
|
Summary: Flags specifying start options for Virtools
|
|
|
|
Remarks:
|
|
Flags specifying start options for Virtools
|
|
|
|
|
|
|
|
See also: CKCreateContext
|
|
*************************************************/
|
|
typedef enum CK_CONFIG_FLAGS {
|
|
CK_CONFIG_DISABLEDSOUND= 1, // Prevent CK from initializing Sound Engines
|
|
CK_CONFIG_DISABLEDINPUT= 2, // Prevent CK from initializing Input Engines
|
|
CK_CONFIG_DOWARN= 4 // Set this flag for message box warning (sound init failed, etc.)
|
|
} CK_CONFIG_FLAGS;
|
|
|
|
|
|
/*************************************************
|
|
{filename:CK_DESTROY_FLAGS}
|
|
Summary: Objects destruction Flags
|
|
|
|
Remarks: Flags specifying how objects should be deleted.
|
|
|
|
|
|
See also: CKContext::DestroyObjects,CKContext::DestroyObject
|
|
*************************************************/
|
|
typedef enum CK_DESTROY_FLAGS {
|
|
CK_DESTROY_FREEID = 0x00000001, // Release the CK_ID of the object so that it can be re-used bu new objects.
|
|
CK_DESTROY_NONOTIFY = 0x00000002, // Managers and other objects won't be notified of this deletion
|
|
CK_DESTROY_TEMPOBJECT = 0x00000003, // Combination for temporary objects : Do not notify and release CK_ID
|
|
} CK_DESTROY_FLAGS;
|
|
|
|
|
|
//----------------------------------------------------------////
|
|
// Data Array Flags and Enums ////
|
|
//----------------------------------------------------------////
|
|
|
|
/************************************************
|
|
{filename:CK_BINARYOPERATOR}
|
|
Summary: Available operations between colums of a DataArray
|
|
|
|
See Also: CKDataArray::ColumnTransform, CKDataArray::ColumnsOperate
|
|
************************************************/
|
|
typedef enum CK_BINARYOPERATOR{
|
|
CKADD = 1, // Addition
|
|
CKSUB = 2, // Substraction
|
|
CKMUL = 3, // Multiplication
|
|
CKDIV = 4 // Division
|
|
} CK_BINARYOPERATOR;
|
|
|
|
/************************************************
|
|
{filename:CK_COMPOPERATOR}
|
|
Summary: Available comparisons between colums of a DataArray
|
|
Remarks:
|
|
|
|
See Also: CKDataArray::CreateGroup, CKDataArray::FindLine
|
|
************************************************/
|
|
typedef enum CK_COMPOPERATOR{
|
|
CKEQUAL = 1,
|
|
CKNOTEQUAL = 2,
|
|
CKLESSER = 3,
|
|
CKLESSEREQUAL = 4,
|
|
CKGREATER = 5,
|
|
CKGREATEREQUAL = 6
|
|
} CK_COMPOPERATOR;
|
|
|
|
|
|
|
|
typedef enum CK_SETOPERATOR{
|
|
CKUNION = 1, // Addition
|
|
CKINTERSECTION = 2, // Intersection
|
|
CKSUBTRACTION = 3, // Subtraction
|
|
} CK_SETOPERATOR;
|
|
|
|
/************************************************
|
|
{filename:CK_ARRAYTYPE}
|
|
Summary: Enum defining the format of a Data Array element.
|
|
Remarks:
|
|
+ In a data array each column can contain data
|
|
of the given type.
|
|
|
|
See Also: CKDataArray::InsertColumn, CKDataArray::GetColumnType
|
|
************************************************/
|
|
typedef enum CK_ARRAYTYPE{
|
|
CKARRAYTYPE_INT = 1, // an integer
|
|
CKARRAYTYPE_FLOAT = 2, // a float
|
|
CKARRAYTYPE_STRING = 3, // a pointer to a string
|
|
CKARRAYTYPE_OBJECT = 4, // a CKObject ID (CK_ID)
|
|
CKARRAYTYPE_PARAMETER = 5 // a CKParameter ID
|
|
} CK_ARRAYTYPE;
|
|
|
|
|
|
|
|
/*************************************************
|
|
{filename:CK_LOAD_FLAGS}
|
|
Summary: Load Options.
|
|
|
|
Remarks:
|
|
+ This options apply when loading a Virtools file
|
|
or a importing a 3D Model file.
|
|
+ They defines whether object geometry,only animations
|
|
or only behaviors should be loaded.
|
|
+ One can specify (using the CK_LOAD_AS_DYNAMIC_OBJECT) if
|
|
created CKObjects should be created as dynamic (See also Dynamic Objects)
|
|
See also : CKContext::Load,CKContext::CKSave
|
|
*************************************************/
|
|
typedef enum CK_LOAD_FLAGS {
|
|
CK_LOAD_ANIMATION =1<<0, // Load animations
|
|
CK_LOAD_GEOMETRY =1<<1, // Load geometry.
|
|
CK_LOAD_DEFAULT =CK_LOAD_GEOMETRY|CK_LOAD_ANIMATION, // Load animations & geometry
|
|
CK_LOAD_ASCHARACTER =1<<2, // Load all the objects and create a character that contains them all .
|
|
CK_LOAD_DODIALOG =1<<3, // Check object name unicity and warns the user with a dialog box when duplicate names are found.
|
|
CK_LOAD_AS_DYNAMIC_OBJECT =1<<4, // Objects loaded from this file may be deleted at run-time or are temporary
|
|
CK_LOAD_AUTOMATICMODE =1<<5, // Check object name unicity and automatically rename or replace according to the options specified in CKContext::SetAutomaticLoadMode
|
|
CK_LOAD_CHECKDUPLICATES =1<<6, // Check object name unicity (The list of duplicates is stored in the CKFile class after a OpenFile call
|
|
CK_LOAD_CHECKDEPENDENCIES =1<<7, // Check if every plugins needed are availables
|
|
CK_LOAD_ONLYBEHAVIORS =1<<8, //
|
|
CK_LOAD_REPLACEALL_WITHSCRIPT =1<<9, // Replace all duplicates names, scripts included (old scripts are deleted)
|
|
} CK_LOAD_FLAGS;
|
|
|
|
|
|
/*************************************************
|
|
{filename:CK_PLUGIN_TYPE}
|
|
Summary: Type identifier for a Virtools plugin.
|
|
|
|
Remarks:
|
|
+Each plugin must be given a type.
|
|
+This enumeration is used to identify a specific catagory
|
|
of plugin when using the CKPluginManager.
|
|
See also: CKPluginManager,Creating New Plugins
|
|
*************************************************/
|
|
typedef enum CK_PLUGIN_TYPE {
|
|
CKPLUGIN_BITMAP_READER = 0, // The plugin is bitmap (textures,sprites) loader
|
|
CKPLUGIN_SOUND_READER = 1, // Sound Reader Plugin
|
|
CKPLUGIN_MODEL_READER = 2, // 3D Model Reader
|
|
CKPLUGIN_MANAGER_DLL = 3, // The plugin implements a Manager
|
|
CKPLUGIN_BEHAVIOR_DLL = 4, // The plugin implements one or more behaviors
|
|
CKPLUGIN_RENDERENGINE_DLL = 5, // Render Engine plugin
|
|
CKPLUGIN_MOVIE_READER = 6, // Movie (AVI,Mpeg) reader
|
|
CKPLUGIN_EXTENSION_DLL = 7, // Generic extension (definition of new parameter types or operations for ex.)
|
|
} CK_PLUGIN_TYPE;
|
|
|
|
|
|
typedef enum CK_PARAMETER_FLAGS {
|
|
CKPARAMETER_LOCAL =0, // The parameter is local to a CKBehavior
|
|
CKPARAMETER_IN =1, // The parameter is an input of a CKBehavior
|
|
CKPARAMETER_OUT =2, // The parameter is an output of a CKBehavior or a parameter of a CKBeObject
|
|
CKPARAMETER_SETTING =3, // The parameter is used as a setting parameter by a CKBehavior.
|
|
} CK_PARAMETER_FLAGS;
|
|
|
|
|
|
|
|
typedef enum CK_PROFILE_CATEGORY {
|
|
CK_PROFILE_RENDERTIME = 3,
|
|
CK_PROFILE_IKTIME = 7,
|
|
CK_PROFILE_ANIMATIONTIME = 6,
|
|
} CK_PROFILE_CATEGORY;
|
|
|
|
/**********************************************************
|
|
{filename:CK_BONES_REFERENTIAL}
|
|
Summary : Type of bone matrices send to the skinning shader
|
|
|
|
***************************************************************/
|
|
typedef enum CK_BONES_REFERENTIAL {
|
|
|
|
CK_BONE_LOCAL = 0x00000000, // Matrices transformed from bones referential to skin holder referential
|
|
CK_BONE_WORLD , // Matrices transformed from bones referential to world referential
|
|
CK_BONE_WORLDVIEW , // Matrices transformed from bones referential to camera referential
|
|
|
|
}CK_BONES_REFERENTIAL;
|
|
|
|
|
|
#endif
|