This class describes an animation. More...

Public Member Functions

 SB_DECLARE_DATA (SBDDocumentAnimation)
 
- Public Member Functions inherited from SBDDataGraphNode
 SB_DECLARE_DATA (SBDDataGraphNode)
 
SBDDataGraphNodegetParent () const
 Returns the parent of the node. More...
 
SBDDataGraphNodegetThisNode () const
 Returns the pointer to this node. More...
 
SBDDataGraphNodegetNextNode () const
 Returns the pointer to the next node in the children of the node's parent. More...
 
SBDDataGraphNodegetPreviousNode () const
 Returns the pointer to the previous node in the children of the node's parent. More...
 
SBDDataGraphNodegetNextNode (SBDDataGraphNode::Type nodeType) const
 Returns the pointer to the next node with type nodeType in the children of the node's parent. More...
 
SBDDataGraphNodegetPreviousNode (SBDDataGraphNode::Type nodeType) const
 Returns the pointer to the previous node with type nodeType in the children of the node's parent. More...
 
SBDDocumentgetDocument () const
 Returns the document the node belongs to. More...
 
virtual bool canAddChild (SBDDataGraphNode *node, SBDDataGraphNode *nextNode=0) const
 Returns whether this node can add node as a child. More...
 
virtual bool canAddChildType (SBDDataGraphNode::Type nodeType) const
 Returns whether this node can add a node with type nodeType as a child. More...
 
virtual bool canHaveDescendantType (SBDDataGraphNode::Type nodeType) const
 Returns whether this node can have a node with type nodeType as a descendant. More...
 
virtual bool addChild (SBDDataGraphNode *node, SBDDataGraphNode *nextNode=0)
 Adds a child to the node. More...
 
virtual bool removeChild (SBDDataGraphNode *node)
 Removes a child from the node. More...
 
bool hasOneOf (const SBNodeIndexer &nodeIndexer) const
 Returns true if and only if this node is one of the nodes of the nodeIndexer, or is the ancestor of one of them. More...
 
bool descendsFrom (SBDDataGraphNode *node) const
 Returns true if and only if this node is node, or descends from it. More...
 
bool descendsFrom (const SBNodeIndexer &nodeIndexer) const
 Returns true if and only if this node is one of the nodes of the nodeIndexer, or descends from one of them. More...
 
bool descendsFrom (SBPointerIndexer< SBDDataGraphNode > *nodePointerIndexer) const
 Returns true if and only if this node is one of the nodes of the nodePointerIndexer, or descends from one of them. More...
 
bool isIn (SBDDataGraphNode *node) const
 Returns true if and only if this node is node, or descends from it, or belongs to a group stored in node. More...
 
bool isIn (const SBNodeIndexer &nodeIndexer) const
 Returns true if and only if this node is one of the nodes of the nodeIndexer, or descends from one of them, or belongs to a group stored in one of the nodes of the nodeIndexer. More...
 
bool isIn (SBPointerIndexer< SBDDataGraphNode > *nodePointerIndexer) const
 Returns true if and only if this node is one of the nodes of the nodePointerIndexer, or descends from one of them, or belongs to a group stored in of the nodes of the nodePointerIndexer. More...
 
bool isOneOf (const SBNodeIndexer &nodeIndexer) const
 Returns true if and only if this node is one of the nodes of the nodeIndexer. More...
 
bool isOneOf (SBPointerIndexer< SBDDataGraphNode > *nodePointerIndexer) const
 Returns true if and only if this node is one of the nodes of the nodePointerIndexer. More...
 
SBDDataGraphNodegetRoot () const
 Returns the root of the hierarchy the node belongs to. More...
 
unsigned int getNodeIndex () const
 Returns the node index (unique in the whole data graph, but non-persistent) More...
 
std::string getTypeString (bool humanReadable=false) const
 Returns a string describing the type of the data graph node. More...
 
virtual std::string const & getName () const
 Returns the name of the node.
 
virtual void setName (const std::string &name)
 Sets the name of the node. More...
 
bool isType (Type type) const
 Returns true when the type of the node corresponds to type.
 
bool isModel () const
 Returns true when the node is a model.
 
bool isStructuralNode () const
 Returns true when the node is a structural node.
 
bool isStructuralModel () const
 Returns true when the node is a structural model.
 
bool isVisualModel () const
 Returns true when the node is a visual model.
 
bool isDynamicalModel () const
 Returns true when the node is a dynamical model.
 
bool isInteractionModel () const
 Returns true when the node is a interaction model.
 
bool isPropertyModel () const
 Returns true when the node is a property model.
 
bool isMesh () const
 Returns true when the node is a mesh.
 
bool isSimulator () const
 Returns true when the node is a simulator.
 
bool isStructuralParticle () const
 Returns true when the node is a structural particle (an atom or a pseudo-atom)
 
virtual bool isLocked () const
 Returns whether the node is locked.
 
virtual bool getLockedFlag () const
 Returns the locked flag.
 
virtual void setLockedFlag (bool flag)
 Sets the locked flag.
 
bool isCreated () const
 Returns true if and only if the node is created. More...
 
void create ()
 Creates the node. More...
 
bool isErased () const
 Returns true if and only if the node is erased. More...
 
void erase ()
 Erases the node. More...
 
unsigned int getFlags () const
 Returns the flags. More...
 
unsigned int getInheritedFlags () const
 Returns the inherited flags. More...
 
bool isSelected () const
 Returns whether the node is selected. More...
 
bool getSelected () const
 Returns whether the node is selected.
 
bool getSelectionFlag () const
 Returns the selection flag. More...
 
void setSelectionFlag (bool flag)
 Sets the selection flag. More...
 
bool isVisible () const
 Returns whether the node is visible. More...
 
bool getVisible () const
 Returns whether the node is visible.
 
bool getVisibilityFlag () const
 Returns the visibility flag. More...
 
void setVisibilityFlag (bool flag)
 Sets the visibility flag. More...
 
bool isHighlighted () const
 Returns whether the node is highlighted. More...
 
bool getHighlightingFlag () const
 Returns the highlighting flag. More...
 
void setHighlightingFlag (bool flag)
 Sets the highlighting flag. More...
 
virtual void display ()
 Displays the node (deprecated) More...
 
virtual void displayForShadow ()
 Displays the node for shadowing purposes (deprecated) More...
 
virtual void displayForSelection ()
 Displays the node for selection purposes (deprecated) More...
 
virtual unsigned int getOpacity () const
 Returns the opacity.
 
virtual void setOpacity (unsigned int opacity)
 Sets the opacity.
 
virtual bool hasOpacityRange () const
 Returns whether the node has the opacity range.
 
virtual unsigned int getDefaultOpacity () const
 Returns the default opacity.
 
virtual unsigned int getMinimumOpacity () const
 Returns the minimum opacity.
 
virtual unsigned int getMaximumOpacity () const
 Returns the maximum opacity.
 
virtual unsigned int getOpacitySingleStep () const
 Returns the opacity single step.
 
virtual std::string getOpacitySuffix () const
 Returns the opacity suffix.
 
virtual unsigned int getTransparency () const
 Returns the transparency.
 
virtual void setTransparency (unsigned int transparency)
 Sets the transparency.
 
virtual bool hasTransparencyRange () const
 Returns whether the node has the transparency range.
 
virtual unsigned int getDefaultTransparency () const
 Returns the default transparency.
 
virtual unsigned int getMinimumTransparency () const
 Returns the minimum transparency.
 
virtual unsigned int getMaximumTransparency () const
 Returns the maximum transparency.
 
virtual unsigned int getTransparencySingleStep () const
 Returns the transparency single step.
 
virtual std::string getTransparencySuffix () const
 Returns the transparency suffix.
 
float getInheritedOpacity () const
 Returns the cumulative opacity, when taking into account the ascendants.
 
float getInheritedTransparency () const
 Returns the cumulative transparency, when taking into account the ascendants.
 
bool addMaterial (SBDDataGraphNodeMaterial *material)
 Adds a material. More...
 
bool removeMaterial ()
 Removes the material. More...
 
SBDDataGraphNodeMaterialgetMaterial () const
 Returns the material. More...
 
SBDDataGraphNodegetMaterialOwner () const
 Returns the node whose material is inherited. More...
 
void connectBaseSignalToSlot (SBCReferenceTarget *referenceTarget, void(SBCReferenceTarget::*functionPointer)(SBBaseEvent *), SBCReferenceTarget *nextReferenceTarget=0, void(SBCReferenceTarget::*nextFunctionPointer)(SBBaseEvent *)=0)
 Connects the base signal to a slot. More...
 
bool baseSignalIsConnectedToSlot (SBCReferenceTarget *referenceTarget, void(SBCReferenceTarget::*functionPointer)(SBBaseEvent *)) const
 Returns true when the base signal is connected to a slot.
 
void disconnectBaseSignalFromSlot (SBCReferenceTarget *referenceTarget, void(SBCReferenceTarget::*functionPointer)(SBBaseEvent *))
 Disconnects the base signal from a slot.
 
virtual void getNodes (SBNodeIndexer &nodeIndexer, SBDDataGraphNode::Type nodeType, bool selectedNodesOnly=false, const SBNodePredicate &visitPredicate=SBDDataGraphNode::All(), bool includeDependencies=false) const
 Collects nodes into nodeIndexer, based on a nodeType, a selection status and a visitPredicate, with our without dependencies. More...
 
virtual void getNodes (SBNodeIndexer &nodeIndexer, const SBNodePredicate &selectionPredicate=SBDDataGraphNode::All(), const SBNodePredicate &visitPredicate=SBDDataGraphNode::All(), bool includeDependencies=false) const
 Collects nodes into nodeIndexer, based on a selectionPredicate and a visitPredicate, with our without dependencies. More...
 
unsigned int countNodes (SBDDataGraphNode::Type nodeType, bool selectedNodesOnly=false, const SBNodePredicate &visitPredicate=SBDDataGraphNode::All(), bool includeDependencies=false) const
 Collects nodes into nodeIndexer, based on a nodeType, a selection status and a visitPredicate, with our without dependencies. More...
 
unsigned int countNodes (const SBNodePredicate &selectionPredicate=SBDDataGraphNode::All(), const SBNodePredicate &visitPredicate=SBDDataGraphNode::All(), bool includeDependencies=false) const
 Collects nodes into nodeIndexer, based on a selectionPredicate and a visitPredicate, with our without dependencies. More...
 
virtual void forEachNodeDepthFirst (void(*action)(SBDDataGraphNode *node))
 Performs an action on each node.
 
virtual void forEachNodeDepthFirst (SBCClass *object, void(SBCClass::*action)(SBDDataGraphNode *node))
 Performs an action on each node.
 
virtual std::string getHierarchyString (const std::string &separator="/", bool includeNodeType=false) const
 Returns a string with hierarchical information on the node and its parents names. More...
 
- Public Member Functions inherited from SBCReferenceTarget
 SBCReferenceTarget ()
 
virtual ~SBCReferenceTarget ()
 
unsigned int getMemoryFootprint () const
 
void printReferencesToOwners () const
 

Protected Member Functions

 SBDDocumentAnimation (SBDDocumentAnimationData *dataPointer)
 Constructs a color (1.0f, 1.0f, 1.0f, 1.0f)
 
- Protected Member Functions inherited from SBDDataGraphNode
 SBDDataGraphNode ()
 Builds a data graph node. More...
 
 SBDDataGraphNode (SBDDataGraphNodeData *dataPointer)
 Builds a data graph node.
 
virtual ~SBDDataGraphNode ()
 Destroys the node. More...
 
- Protected Member Functions inherited from SBCReferenceTarget
void removeAllReferenceOwners ()
 
 SBCReferenceTarget (SBCReferenceTargetData *dataPointer)
 

Animation categories

enum  Category {
  Category::Entrance,
  Category::Highlight,
  Category::Motion,
  Category::Exit,
  Category::Camera,
  Category::Other
}
 The category of the animation. More...
 

Constructors and destructors

 SBDDocumentAnimation ()
 Constructs an animation.
 
 SBDDocumentAnimation (const std::string &name, const SBNodeIndexer &nodeIndexer, double currentFrame=0.0)
 Constructs an animation with name name from the nodes in nodeIndexer at frame currentFrame.
 
virtual ~SBDDocumentAnimation ()
 Destructs the animation.
 

Serialization

virtual bool isSerializable () const
 Returns false by default.
 
virtual void serialize (SBCSerializer *serializer, const SBNodeIndexer &nodeIndexer, const SBVersionNumber &sdkVersionNumber=SB_SDK_VERSION_NUMBER, const SBVersionNumber &classVersionNumber=SBVersionNumber(1, 0, 0)) const
 Serializes the animation.
 
virtual void unserialize (SBCSerializer *serializer, const SBNodeIndexer &nodeIndexer, const SBVersionNumber &sdkVersionNumber=SB_SDK_VERSION_NUMBER, const SBVersionNumber &classVersionNumber=SBVersionNumber(1, 0, 0))
 Unserializes the animation.
 

Topology

SBDDocumentAnimationgetNextAnimation () const
 Returns the next animation.
 
SBDDocumentAnimationgetPreviousAnimation () const
 Returns the previous animation.
 
virtual SBDDocumentAnimationclone ()
 Returns a copy of the animation and its descendants.
 

Identity

virtual SBDDataGraphNode::Type getType () const
 Returns the data graph node type.
 
virtual Category getCategory () const
 Returns the category of the animation.
 
std::string getCategoryString (bool humanReadable=false) const
 Returns a string describing the category of the animation. More...
 
static std::string getCategoryString (Category category, bool humanReadable=false)
 Returns a string describing the category of the animation. More...
 

Keyframes

bool hasKeyframe (double frame) const
 Returns whether the animation has a keyframe at frame frame.
 
bool hasKeyframes () const
 Returns whether the animation has keyframes.
 
unsigned int getNumberOfKeyframes () const
 Returns the number of keyframes.
 
void getKeyframes (SBVector< double > &sortedKeyframeVector) const
 Returns the vector of keyframes sorted in increasing order. More...
 
int getKeyframeIndex (double keyframe) const
 Returns the index of keyframe in the vector of keyframes (-1 if the keyframe is not present)
 
double getBeginKeyframe () const
 Returns the first keyframe, or zero if there are no key frames.
 
double getEndKeyframe () const
 Returns the last keyframe, or zero if there are no key frames.
 
virtual bool canAddKeyframe (double frame) const
 Returns whether it is possible to add a keyframe at frame frame. More...
 
virtual bool canRemoveKeyframe (double frame) const
 Returns whether it is possible to remove the keyframe at frame frame. More...
 
virtual bool canMoveKeyframe (double fromFrame, double toFrame) const
 Returns whether it is possible to move the keyframe from frame fromFrame to frame toFrame. More...
 
bool addKeyframe (double frame)
 Adds a keyframe at frame frame.
 
bool removeKeyframe (double frame)
 Removes the keyframe at frame frame.
 
bool moveKeyframe (double fromFrame, double toFrame)
 Moves the keyframe from frame fromFrame to frame toFrame.
 
virtual void onKeyframeAdded (double frame)
 Called after a keyframe has been added at frame frame.
 
virtual void onKeyframeRemoved (double frame)
 Called after a keyframe has been removed at frame frame.
 
virtual void onKeyframeMoved (double fromFrame, double toFrame)
 Called after a keyframe has been moved from frame fromFrame to frame toFrame.
 
virtual void editKeyframe (double frame)
 Called to edit the keyframe at frame frame.
 

Intervals

int getIntervalIndex (double keyframe) const
 Returns the index of interval which contains the keyframe (-1 if the keyframe is not in an interval)
 

Animation

virtual void setCurrentFrame (double currentFrame, const SBVector< double > &sortedKeyframeVector)
 Sets the current frame.
 

Rendering

virtual void display (SBNode::RenderingPass renderingPass)
 Displays the animation.
 
virtual void getKeyframeColor (unsigned int keyframeIndex, SBColor &keyframeColor)
 Returns the color of keyframe keyframeIndex.
 
virtual void getIntervalColors (unsigned int intervalIndex, SBVector< SBColor > &intervalColorVector, SBVector< float > &intervalPositionVector)
 Returns the vectors of colors and corresponding positions (in [0,1]) for interval intervalIndex. More...
 

Actions

virtual bool isSelectionDependent () const
 Returns true when the animation's actions depend on the current selection.
 
virtual void getContextMenuActions (SBVector< SBGAction *> &actionVector)
 Returns the context menu actions.
 
virtual void getKeyframeActions (unsigned int keyframeIndex, SBVector< SBGAction *> &actionVector)
 Returns the keyframe's actions.
 
virtual void getIntervalActions (unsigned int intervalIndex, SBVector< SBGAction *> &actionVector)
 Returns the interval's actions.
 

Signals

void changed ()
 Emits the AnimationChanged event from the owning node.
 

Messaging

void connectDocumentSignalToSlot (SBCReferenceTarget *referenceTarget, void(SBCReferenceTarget::*functionPointer)(SBDocumentEvent *), SBCReferenceTarget *nextReferenceTarget=0, void(SBCReferenceTarget::*nextFunctionPointer)(SBDocumentEvent *)=0)
 Connects the document signal to a slot.
 
bool documentSignalIsConnectedToSlot (SBCReferenceTarget *referenceTarget, void(SBCReferenceTarget::*functionPointer)(SBDocumentEvent *)) const
 Returns true if and only if the document signal is connected to the slot.
 
void disconnectDocumentSignalFromSlot (SBCReferenceTarget *referenceTarget, void(SBCReferenceTarget::*functionPointer)(SBDocumentEvent *))
 Disconnects the document signal from a slot.
 

Debugging

virtual void print (unsigned int offset=0) const
 Prints the animation.
 

Additional Inherited Members

- Public Types inherited from SBDDataGraphNode
enum  RenderingPass {
  RenderingPass::Setup,
  RenderingPass::OpaqueGeometry,
  RenderingPass::SelectableGeometry,
  RenderingPass::ShadowingGeometry,
  RenderingPass::TransparentGeometry,
  RenderingPass::Interface,
  RenderingPass::Text
}
 The rendering pass. More...
 
enum  Type {
  Undefined,
  StructuralModel,
  StructuralModelNode,
  StructuralModelConformation,
  Conformation,
  StructuralModelPath,
  Path,
  StructuralModelNodeGroup,
  StructuralGroup,
  StructuralModelNodeRoot,
  Root,
  StructuralModelNodeParticle,
  StructuralParticle,
  StructuralModelNodeAtom,
  Atom,
  StructuralModelNodePseudoAtom,
  PseudoAtom,
  StructuralModelNodeBond,
  Bond,
  StructuralModelNodePseudoBond,
  PseudoBond,
  StructuralModelNodeHydrogenBond,
  HydrogenBond,
  StructuralModelNodeHydrogenBondGroup,
  HydrogenBondGroup,
  StructuralModelNodeResidue,
  Residue,
  StructuralModelNodeSegment,
  Segment,
  StructuralModelNodeProtein,
  Protein,
  StructuralModelNodeChain,
  Chain,
  StructuralModelNodeMolecule,
  Molecule,
  StructuralModelNodeBackbone,
  Backbone,
  StructuralModelNodeSideChain,
  SideChain,
  VisualModel,
  VisualModelMesh,
  Mesh,
  DynamicalModel,
  DynamicalModelParticleSystem,
  ParticleSystem,
  DynamicalModelRigidBodySystem,
  RigidBodySystem,
  DynamicalModelArticulatedBodySystem,
  ArticulatedBodySystem,
  DynamicalModelNode,
  DynamicalNode,
  DynamicalModelNodeGroup,
  DynamicalGroup,
  DynamicalModelNodeRoot,
  DynamicalRoot,
  DynamicalModelNodeParticle,
  DynamicalParticle,
  DynamicalModelNodeRigidBody,
  RigidBody,
  DynamicalModelNodeArticulatedBody,
  ArticulatedBody,
  InteractionModel,
  InteractionModelParticleSystem,
  InteractionModelRigidBodySystem,
  InteractionModelArticulatedBodySystem,
  PropertyModel,
  PropertyModelFunction,
  Simulator,
  SimulatorParticleSystem,
  SimulatorRigidBodySystem,
  SimulatorArticulatedBodySystem,
  StateUpdater,
  StateUpdaterParticleSystem,
  StateUpdaterRigidBodySystem,
  StateUpdaterArticulatedBodySystem,
  DocumentManager,
  Document,
  Folder,
  Camera,
  Label,
  Note,
  Animation,
  Presentation,
  DataGraphNodeGroup,
  NodeGroup,
  Controller,
  ControllerNode,
  Asset
}
 The type of the data graph node. More...
 
- Static Public Member Functions inherited from SBDDataGraphNode
static void clone (const SBNodeIndexer &sourceNodeIndexer, SBNodeIndexer &destinationNodeIndexer)
 Clones the nodes in sourceNodeIndexer (treated as a whole) and places the clones in destinationNodeIndexer. More...
 
static SBDDataGraphNodegetNode (unsigned int nodeIndex)
 Returns the unique node corresponding to the node index nodeIndex. More...
 
static std::string getTypeString (Type type, bool humanReadable=false)
 Returns a string describing the type of the data graph node. More...
 
static void forEachNodeInSelection (SBNodeIndexer &nodeIndexer, void(*action)(SBDDataGraphNode *node))
 Performs an action for each node in a selection.
 
static void forEachNodeInSelection (SBNodeIndexer &nodeIndexer, SBCClass *object, void(SBCClass::*action)(SBDDataGraphNode *node))
 Performs an action for each node in a selection.
 
- Protected Attributes inherited from SBCReferenceTarget
SBCReferenceTargetData * dataPointer
 

Detailed Description

This class describes an animation in SAMSON. Please refer to this page for more information.

See also
Animations

Member Enumeration Documentation

◆ Category

Enumerator
Entrance 

Entrance.

Highlight 

Highlight.

Motion 

Motion.

Exit 

Exit.

Camera 

Camera.

Other 

Other.

Member Function Documentation

◆ canAddKeyframe()

bool SBDDocumentAnimation::canAddKeyframe ( double  frame) const
virtual

This function returns false by default

Parameters
frame
Returns

◆ canMoveKeyframe()

bool SBDDocumentAnimation::canMoveKeyframe ( double  fromFrame,
double  toFrame 
) const
virtual

By default, this function returns true when a keyframe exists at frame fromFrame and does not exist at frame toFrame

Parameters
fromFrame
toFrame
Returns

◆ canRemoveKeyframe()

bool SBDDocumentAnimation::canRemoveKeyframe ( double  frame) const
virtual

This function returns false by default

Parameters
frame
Returns

◆ getCategoryString() [1/2]

std::string SBDDocumentAnimation::getCategoryString ( bool  humanReadable = false) const

This function is a convenience function used to produce a string corresponding to the animation's category.

◆ getCategoryString() [2/2]

std::string SBDDocumentAnimation::getCategoryString ( SBDDocumentAnimation::Category  category,
bool  humanReadable = false 
)
static

This function is a convenience function used to produce a string corresponding to a given animation category.

◆ getIntervalColors()

void SBDDocumentAnimation::getIntervalColors ( unsigned int  intervalIndex,
SBVector< SBColor > &  intervalColorVector,
SBVector< float > &  intervalPositionVector 
)
virtual

The vector intervalPositionVector is optional, and only used if intervalColorVector contains at least two colors. If the size of intervalPositionVector is different from the size of intervalColorVector, then intervalPositionVector is not used and colors in intervalColorVector are spread uniformly along the interval.

◆ getKeyframes()

void SBDDocumentAnimation::getKeyframes ( SBVector< double > &  sortedKeyframeVector) const

This function adds all keyframes, sorted in increasing order, to sortedKeyframeVector.

Parameters
sortedKeyframeVector