I3DDBActionServer Struct Reference
[Shell Utilities]

Inheritance diagram for I3DDBActionServer:

IMCUnknown List of all members.

Public Member Functions

virtual MCCOMErr MCCOMAPI CreateObjectByKindAndID (I3DShTreeElement **outTree, IDType inKind, IDType inID, I3DShScene *inSceneContext)=0
virtual MCCOMErr MCCOMAPI PostInsertObjectAction (ISceneDocument *inDocument, IDType inKind, IDType inID, I3DShTreeElement *inRoot, EInsertTreePos inInsertTreePos, const TTreeTransform &inTransform, boolean inAutoPlace)=0
virtual MCCOMErr MCCOMAPI PostInsertObjectAction (ISceneDocument *inDocument, I3DShObject *inObject, I3DShTreeElement *inRoot, EInsertTreePos inInsertTreePos, const TTreeTransform &inTransform, boolean inAutoPlace)=0
virtual MCCOMErr MCCOMAPI PostInsertTreeListAction (ISceneDocument *inDocument, const TMCCountedPtrArray< I3DShTreeElement > &inTreeList, I3DShTreeElement *inRoot, EInsertTreePos inInsertTreePos, const TTreeTransform &inTransform, boolean inAutoPlace, I3DShScene *fromScene, TMCSmartPtr< IMFAction > *outAction=NULL)=0
virtual MCCOMErr MCCOMAPI PostInsertMasterObjectAction (ISceneDocument *inDocument, I3DShObject *inObject, I3DShMasterShader *inShader, I3DShTreeElement *inRoot, const TTreeTransform &inTransform, boolean inAutoPlace)=0
virtual MCCOMErr MCCOMAPI PostInsertMasterObjectAction (ISceneDocument *inDocument, I3DShObject *inObject, I3DShMasterShader *inShader)=0
virtual MCCOMErr MCCOMAPI PostInsertMasterShaderAction (ISceneDocument *inDocument, I3DShMasterShader *inMaster)=0
virtual MCCOMErr MCCOMAPI PostInsertMasterSoundAction (ISceneDocument *inDocument, IShMasterSound *inMaster)=0
virtual MCCOMErr MCCOMAPI PostInsertSoundChannelAction (ISceneDocument *inDocument)=0
virtual MCCOMErr MCCOMAPI PostRemoveSoundChannelAction (ISceneDocument *inDocument, uint32 inChannel)=0
virtual MCCOMErr MCCOMAPI PostRemoveMasterSoundAction (ISceneDocument *inDocument, IShMasterSound *inMaster)=0
virtual MCCOMErr MCCOMAPI PostChangeTransformAction (ISceneDocument *inDocument, TMCPtrArray< I3DShTreeElement > &inTrees, TMCArray< TTreeTransform > &inTransforms, TMCArray< TVector3 > &inHotPoints, boolean inIsGlobal, boolean inRemoveConstraints, boolean inCheckForConstraints, boolean inNotifyAboutModifiers)=0
virtual MCCOMErr MCCOMAPI PostChangeNameAction (ISceneDocument *inDocument, I3DShTreeElement *inTree, const TMCString &inNewName)=0
virtual MCCOMErr MCCOMAPI PostChangeNameAction (ISceneDocument *inDocument, I3DShObject *inObject, const TMCString &inNewName)=0
virtual MCCOMErr MCCOMAPI PostChangeNameAction (ISceneDocument *inDocument, I3DShMasterShader *inMasterShader, const TMCString &inNewName)=0
virtual MCCOMErr MCCOMAPI PostChangeExistsAction (ISceneDocument *inDocument, I3DShTreeElement *inTree, boolean inExists)=0
virtual MCCOMErr MCCOMAPI PostChangeShownAction (ISceneDocument *inDocument, I3DShTreeElement *inTree, boolean inShown)=0
virtual MCCOMErr MCCOMAPI PostChangeShadowCastingAction (ISceneDocument *inDocument, I3DShTreeElement *inTree, boolean inShadowCasting)=0
virtual MCCOMErr MCCOMAPI PostChangeReceiveShadowAction (ISceneDocument *inDocument, I3DShTreeElement *inTree, boolean inShadowCatching)=0
virtual MCCOMErr MCCOMAPI PostChangeURLAction (ISceneDocument *inDocument, I3DShInstance *inInstance, const TMCString &inURLName, int16 inURLKind)=0
virtual MCCOMErr MCCOMAPI PostChangeComponentAction (ISceneDocument *inDocument, TMCPtrArray< I3DShTreeElement > &inTrees, IComponentAnim *inComponent, IDType family, boolean canUndo)=0
virtual MCCOMErr MCCOMAPI PostInsertModifierAction (ISceneDocument *inDocument, TMCPtrArray< I3DShTreeElement > &inTrees, I3DShModifier *inComponent)=0
virtual MCCOMErr MCCOMAPI PostChangeAnimationMethodAction (ISceneDocument *inDocument, TMCPtrArray< I3DShTreeElement > &inTrees, I3DShAnimationMethod *inComponent, boolean inConvertOldData=true)=0
virtual MCCOMErr MCCOMAPI PostChangeTweenerAction (ISceneDocument *inDocument, TMCPtrArray< I3DShTweenerChainLink > &inLinks, I3DShTweener *inComponent)=0
virtual MCCOMErr MCCOMAPI PostChangeModifierList (ISceneDocument *inDocument, I3DShTreeElement *inTrees, TMCPtrArray< I3DShModifier > &modifierList)=0
virtual MCCOMErr MCCOMAPI PostApplyShaderToChildrenAction (ISceneDocument *inDocument, I3DShTreeElement *inTreeElement)=0
virtual MCCOMErr MCCOMAPI PostChangeMasterShaderAction (ISceneDocument *inDocument, TMCPtrArray< I3DShShadableTree > &inShadableTrees, I3DShMasterShader *inComponent)=0
virtual MCCOMErr MCCOMAPI PostChangeSceneComponentAction (ISceneDocument *inDocument, IComponentAnim *inComponent, IDType familyID, boolean canUndo)=0
virtual MCCOMErr MCCOMAPI PostChangePostRendererList (ISceneDocument *inDocument, TMCCountedPtrArray< I3DShPostRenderer > &postRendererList, boolean canUndo)=0

Detailed Description

Utility functions for making changes to the 3D database as a result of user interaction. Do not use these functions for simply altering the 3D database (e.g., importing a file format)---they should be used only when the user changes something in the UI to make a change (e.g., selects a new component in the properties module). All actions are undoable and properly restore the selection during undo and redo. They generally take a list of target objects in order to facilitate drag and drop onto a multiple selection. If only a single target object is desired, simply make a list with one element.

Actions are important because they are the base of the undo

It is important to understand that an action is not synchonous. The functions post the action in the action queue but they do not execute the action right away. The action is executed next time the application goes through its main loop.


Member Function Documentation

virtual MCCOMErr MCCOMAPI I3DDBActionServer::CreateObjectByKindAndID (  I3DShTreeElement **  outTree,
IDType  inKind,
IDType  inID,
I3DShScene *  inSceneContext
)  [pure virtual]
 

Creates an object.

Parameters:
outTree A point to the object that is returned.
inKind The family ID of the object ('prim' for primitive, 'came' for camera, 'lite' for lights, 'data' for a helper objects)
inID The class ID of the object.
inSceneContext Used only to generate a unique name.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostApplyShaderToChildrenAction (  ISceneDocument *  inDocument,
I3DShTreeElement *  inTreeElement
)  [pure virtual]
 

Posts an undoable action that apply the shader of a tree to all its children

Parameters:
inDocument The scene document
inTreeElement The tree element

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeAnimationMethodAction (  ISceneDocument *  inDocument,
TMCPtrArray< I3DShTreeElement > &  inTrees,
I3DShAnimationMethod *  inComponent,
boolean  inConvertOldData = true
)  [pure virtual]
 

Posts an action that change the animation method of a tree

Parameters:
inTrees The list of trees on which the animation method should be changed.
inComponent The new animation method
inConvertOldData True if the old animation data should be converted to the new animation method.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeComponentAction (  ISceneDocument *  inDocument,
TMCPtrArray< I3DShTreeElement > &  inTrees,
IComponentAnim *  inComponent,
IDType  family,
boolean  canUndo
)  [pure virtual]
 

Posts an action when a component is changed on a tree element

Parameters:
inTrees The list of trees on which the component should be changed.
inComponent The new component
family The family ID of the component.
canUndo True if the action should be undoable.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeExistsAction (  ISceneDocument *  inDocument,
I3DShTreeElement *  inTree,
boolean  inExists
)  [pure virtual]
 

Posts an action that changes the Exists (visible) flag on a tree.

Parameters:
inTree The tree on which the action is performed.
inExists The new state of the Exists flag.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeMasterShaderAction (  ISceneDocument *  inDocument,
TMCPtrArray< I3DShShadableTree > &  inShadableTrees,
I3DShMasterShader *  inComponent
)  [pure virtual]
 

Posts an action that modifies the shader applied to a number of tree elements.

Parameters:
inShadableTrees The tree elements where the the new master shader will be applied.
inComponent The Master Shader that will be applied.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeModifierList (  ISceneDocument *  inDocument,
I3DShTreeElement *  inTrees,
TMCPtrArray< I3DShModifier > &  modifierList
)  [pure virtual]
 

Posts an action that changes the modifiers of a tree

Parameters:
inTrees The list of trees on which the modifier list should be changed.
inComponent The new modifier list.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeNameAction (  ISceneDocument *  inDocument,
I3DShMasterShader *  inMasterShader,
const TMCString &  inNewName
)  [pure virtual]
 

Posts an action that changes the name of a master shader.

Parameters:
inMasterShader The master shader whose name should be changed.
inNewName The new name of the master shader.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeNameAction (  ISceneDocument *  inDocument,
I3DShObject *  inObject,
const TMCString &  inNewName
)  [pure virtual]
 

Posts an action that changes the name of a master object.

Parameters:
inObject The master object whose name should be changed.
inNewName The new name of the master object.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeNameAction (  ISceneDocument *  inDocument,
I3DShTreeElement *  inTree,
const TMCString &  inNewName
)  [pure virtual]
 

Posts an action that changes the name of a tree element.

Parameters:
inTree The tree element whose name should be changed.
inNewName The new name of the tree element.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangePostRendererList (  ISceneDocument *  inDocument,
TMCCountedPtrArray< I3DShPostRenderer > &  postRendererList,
boolean  canUndo
)  [pure virtual]
 

Posts an action that changes the list of postrender filters.

Parameters:
postRendererList The list of postrender filters.
canUndo True if the action is undoable.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeReceiveShadowAction (  ISceneDocument *  inDocument,
I3DShTreeElement *  inTree,
boolean  inShadowCatching
)  [pure virtual]
 

Posts an action that changes the receive shadow flag on a tree.

Parameters:
inTree The tree on which the action is performed.
inShadowCatching The new state of the receive shadow flag.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeSceneComponentAction (  ISceneDocument *  inDocument,
IComponentAnim *  inComponent,
IDType  familyID,
boolean  canUndo
)  [pure virtual]
 

Posts an action that changes a component on the scene.

Parameters:
inComponent The new component
familyID The family ID of the component.
canUndo True if the action is undoable.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeShadowCastingAction (  ISceneDocument *  inDocument,
I3DShTreeElement *  inTree,
boolean  inShadowCasting
)  [pure virtual]
 

Posts an action that changes the cast shadow flag on a tree.

Parameters:
inTree The tree on which the action is performed.
inShadowCasting The new state of the cast shadow flag.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeShownAction (  ISceneDocument *  inDocument,
I3DShTreeElement *  inTree,
boolean  inShown
)  [pure virtual]
 

Posts an action that changes the Shown (visible in 3D view) flag on a tree.

Parameters:
inTree The tree on which the action is performed.
inShown The new state of the Shown flag.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeTransformAction (  ISceneDocument *  inDocument,
TMCPtrArray< I3DShTreeElement > &  inTrees,
TMCArray< TTreeTransform > &  inTransforms,
TMCArray< TVector3 > &  inHotPoints,
boolean  inIsGlobal,
boolean  inRemoveConstraints,
boolean  inCheckForConstraints,
boolean  inNotifyAboutModifiers
)  [pure virtual]
 

Changes the transform of one or more trees. If inIsGlobal is true, then the transforms are set as global transforms, otherwise as local. If inCheckForConstraints is true, then if there is a constraint on one of the trees, the user is asked whether he/she wants to use or override the constraint. If inRemoveConstraints is true (and inCheckForConstraints false), the user is not asked, but the constraints (if any) are overriden. If inNotifyAboutModifiers is true, then if there is a space modifier (behavior) on a tree, then the user is warned that the transform may be altered to fit the behavior.

If inHotPoints has data in it (i.e., the array has the same number of elements as the inTransforms), then the corresponding hot point is set AFTER the transform is set:

              tree->SetHotPoint(zeroVec);
              tree->SetTransform(t[i]);
              tree->SetHotPoint(hp[i]);

Parameters:
inTrees The trees whose transform should be changed.
inTransforms The new transform for each tree.
inHotPoints The new hotpoints for each tree.
inIsGlobal True if we are setting a global transform.
inRemoveConstraints True if constraints should be removed.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeTweenerAction (  ISceneDocument *  inDocument,
TMCPtrArray< I3DShTweenerChainLink > &  inLinks,
I3DShTweener *  inComponent
)  [pure virtual]
 

Posts an action that change a tweener

Parameters:
inLinks The links where the tweener is changed.
inComponent The new tweener.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostChangeURLAction (  ISceneDocument *  inDocument,
I3DShInstance *  inInstance,
const TMCString &  inURLName,
int16  inURLKind
)  [pure virtual]
 

Posts an action that changes the url associated with a tree element.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostInsertMasterObjectAction (  ISceneDocument *  inDocument,
I3DShObject *  inObject,
I3DShMasterShader *  inShader
)  [pure virtual]
 

Posts an action that inserts the object in the scene and creates a new instance of it. Also adds the shader and uses it on the new instance.

Parameters:
inObject The master object that should be inserted.
inShader The master shader that should be inserted.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostInsertMasterObjectAction (  ISceneDocument *  inDocument,
I3DShObject *  inObject,
I3DShMasterShader *  inShader,
I3DShTreeElement *  inRoot,
const TTreeTransform &  inTransform,
boolean  inAutoPlace
)  [pure virtual]
 

Posts an action that inserts a master object in the scene and creates a new instance of it. Also adds the shader and uses it on the new instance.

Parameters:
inObject The master object that should be inserted.
inShader The master shader that should be inserted.
inRoot The tree under which the object is inserted.
inTransform The position of the inserted object.
inAutoPlace True if the object should be automatically place.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostInsertMasterShaderAction (  ISceneDocument *  inDocument,
I3DShMasterShader *  inMaster
)  [pure virtual]
 

Posts an action that inserts a Master Shader in the scene.

Parameters:
inShader The master shader that should be inserted.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostInsertMasterSoundAction (  ISceneDocument *  inDocument,
IShMasterSound *  inMaster
)  [pure virtual]
 

Posts an action that inserts the specified master sound in the scene.

Parameters:
inMaster The master sound that should be inserted.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostInsertModifierAction (  ISceneDocument *  inDocument,
TMCPtrArray< I3DShTreeElement > &  inTrees,
I3DShModifier *  inComponent
)  [pure virtual]
 

Posts an action that inserts a modifier on a tree element

Parameters:
inTrees The list of trees on which the modifier should be inserted.
inComponent The new component

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostInsertObjectAction (  ISceneDocument *  inDocument,
I3DShObject *  inObject,
I3DShTreeElement *  inRoot,
EInsertTreePos  inInsertTreePos,
const TTreeTransform &  inTransform,
boolean  inAutoPlace
)  [pure virtual]
 

Posts an action that creates a new instance of the object (which must already be in the scene).

Parameters:
inKind The family ID of the object ('prim' for example).
inID The class ID of the object
inRoot The tree under which the object is inserted.
inInsertTreePos The position in the tree.
inTransform The position of the inserted object.
inAutoPlace True if the object should be automatically place.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostInsertObjectAction (  ISceneDocument *  inDocument,
IDType  inKind,
IDType  inID,
I3DShTreeElement *  inRoot,
EInsertTreePos  inInsertTreePos,
const TTreeTransform &  inTransform,
boolean  inAutoPlace
)  [pure virtual]
 

Posts an action that creates a new object in the scene.

Parameters:
inKind The family ID of the object ('prim' for example).
inID The class ID of the object
inRoot The tree under which the object is inserted.
inInsertTreePos The position in the tree.
inTransform The position of the inserted object.
inAutoPlace True if the object should be automatically place.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostInsertSoundChannelAction (  ISceneDocument *  inDocument  )  [pure virtual]
 

Posts an action that creates a new sound track (channel) in the scene.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostInsertTreeListAction (  ISceneDocument *  inDocument,
const TMCCountedPtrArray< I3DShTreeElement > &  inTreeList,
I3DShTreeElement *  inRoot,
EInsertTreePos  inInsertTreePos,
const TTreeTransform &  inTransform,
boolean  inAutoPlace,
I3DShScene *  fromScene,
TMCSmartPtr< IMFAction > *  outAction = NULL
)  [pure virtual]
 

Posts an action that inserts a list of tree elements in the scene, with their master objects and master shaders. If outAction is not null, the action is not posted and you'll have to delete it (used to delegate functionality from another action) If the action is canceled, the resulting action will be null

Parameters:
inTreeList The list of tree that should be inserted.
inRoot The tree under which the object is inserted.
inInsertTreePos The position in the tree.
inTransform The position of the inserted object.
inAutoPlace True if the object should be automatically place.
outAction A pointer to the action that is created.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostRemoveMasterSoundAction (  ISceneDocument *  inDocument,
IShMasterSound *  inMaster
)  [pure virtual]
 

Posts an action that removes the specified master sound from the scene.

Parameters:
inMaster The master sound that should be removed.

virtual MCCOMErr MCCOMAPI I3DDBActionServer::PostRemoveSoundChannelAction (  ISceneDocument *  inDocument,
uint32  inChannel
)  [pure virtual]
 

Posts an action that removes a new sound track (channel) from the scene.

Parameters:
inChannel the index of the channel that should be removed.


The documentation for this struct was generated from the following file:
Generated on Mon Mar 14 12:29:00 2005 for Carrara SDK Doc by  doxygen 1.3.9.1