This class describes a document. More...
Constructors and destructors | |
| SBDDocument () | |
| Constructs a document. | |
| SBDDocument (const std::string &fileName) | |
Constructs a document with name name. | |
| virtual | ~SBDDocument () |
| Destructs the document. | |
Serialization | |
| bool | isSerializable () const |
| Returns true. | |
| 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 document. | |
| virtual void | unserialize (SBCSerializer *serializer, const SBNodeIndexer &nodeIndexer, const SBVersionNumber &sdkVersionNumber=SB_SDK_VERSION_NUMBER, const SBVersionNumber &classVersionNumber=SBVersionNumber(1, 0, 0)) |
| Unserializes the document. | |
Topology | |
| SBDDocument * | getNextDocument () const |
| Returns the next document. | |
| SBDDocument * | getPreviousDocument () const |
| Returns the previous document. | |
| virtual SBDDocument * | clone () |
| Returns a copy of the node and its descendants. | |
Identity | |
| virtual SBNode::Type | getType () const |
| Returns the data graph node type. | |
File management | |
| std::string | getFileName () const |
| Returns the name of the file associated to the document. | |
| void | setFileName (const std::string &name) |
| Sets the name of the file associated to the document. | |
Camera | |
| SBDDocumentCamera * | getActiveCamera () const |
| Returns the active camera. | |
| void | setActiveCamera (SBDDocumentCamera *documentCamera) |
| Sets the active camera. | |
Modeling | |
| SBStructuralModel * | getActiveStructuralModel () const |
| Returns the active structural model. | |
| void | setActiveStructuralModel (SBStructuralModel *structuralModel) |
| Sets the active structural model. | |
Groups | |
| SBNodeGroup * | createGroup (const std::string &name, const SBNodePredicate &selectionPredicate=SBDDataGraphNode::All(), const SBNodePredicate &visitPredicate=SBDDataGraphNode::All()) |
Create a group with name name based on a selectionPredicate and a visitPredicate. | |
| SBNodeGroup * | groupSelection (const std::string &name) |
Stores the selected nodes into a group with name name. More... | |
Selection | |
| void | clearSelection () |
| Clears the selection. | |
| void | addNodeToSelection (SBNode *node) |
| Adds a node to the selection. | |
| void | removeNodeFromSelection (SBNode *node) |
| Removes a node from the selection. | |
| SBPointerIndexer< SBNode > const * | getSelectedNodes () const |
| Returns the index of selected nodes. | |
| void | selectGroupNodes (SBNodeGroup *group) const |
| Clears the document selection and select the group nodes. | |
| void | addGroupNodesToSelection (SBNodeGroup *group) const |
| Adds the group nodes to the document selection. | |
| void | removeGroupNodesFromSelection (SBNodeGroup *group) const |
| Removes the group nodes from the document selection. | |
| void | intersectGroupNodesWithSelection (SBNodeGroup *group) const |
| Keeps in the document selection only the nodes stored in this group. | |
Debugging | |
| virtual void | print (unsigned int offset=0) const |
| Prints the document. | |
Additional Inherited Members | |
Public Types inherited from SBDDataGraphNode | |
| enum | RenderingPass { 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, 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, DataGraphNodeGroup, NodeGroup, Controller, ControllerNode, Asset } |
| The type of the data graph node. More... | |
Public Member Functions inherited from SBDDocumentFolder | |
| SBDDocumentFolder () | |
| Constructs a folder. | |
| SBDDocumentFolder (const std::string &name) | |
Constructs a folder with name name. | |
| virtual | ~SBDDocumentFolder () |
| Destructs the folder. | |
| bool | isSerializable () const |
| Returns true. | |
| virtual bool | initialize () |
| Initializes the folder. | |
| SBPointerList< SBNode > const * | getChildren () const |
| Returns the children of the folder. | |
| virtual bool | canAddChild (SBNode *node, SBNode *nextNode=0) const |
Returns whether this node can add node as a child. | |
| virtual bool | canAddChildType (SBNode::Type nodeType) const |
Returns whether this node can add a node with type nodeType as a child. | |
| virtual bool | addChild (SBDDataGraphNode *node, SBDDataGraphNode *nextNode=0) |
| Adds a child to the folder. | |
| virtual bool | removeChild (SBDDataGraphNode *node) |
| Removes a child from the folder. | |
| SBPointerList< SBDDocumentFolder > const * | getFolderList () const |
| Returns the list of folders. | |
| SBPointerList< SBMModel > const * | getModelList () const |
| Returns the list of models. | |
| SBPointerList< SBMStructuralModel > const * | getStructuralModelList () const |
| Returns the list of structural models. | |
| SBPointerList< SBMVisualModel > const * | getVisualModelList () const |
| Returns the list of visual models. | |
| SBPointerList< SBMDynamicalModel > const * | getDynamicalModelList () const |
| Returns the list of dynamical models. | |
| SBPointerList< SBMInteractionModel > const * | getInteractionModelList () const |
| Returns the list of interaction models. | |
| SBPointerList< SBMPropertyModel > const * | getPropertyModelList () const |
| Returns the list of property models. | |
| SBPointerList< SBSSimulator > const * | getSimulatorList () const |
| Returns the list of Simulators. | |
| SBPointerList< SBDController > const * | getControllerList () const |
| Returns the list of controllers. | |
| SBPointerList< SBNodeGroup > const * | getNodeGroupList () const |
| Returns the list of node groups. | |
| SBPointerList< SBConformation > const * | getConformationList () const |
| Returns the list of conformations. | |
| SBPointerList< SBPath > const * | getPathList () const |
| Returns the list of paths. | |
| SBPointerList< SBLabel > const * | getLabelList () const |
| Returns the list of labels. | |
| SBPointerList< SBCamera > const * | getCameraList () const |
| Returns the list of cameras. | |
| SBPointerList< SBAsset > const * | getAssetList () const |
| Returns the list of assets. | |
| SBUUID | getUUID () const |
| Returns the folder UUID. | |
| void | setUUID (const SBUUID &uuid) |
| sets the folder UUID | |
| virtual void | getNodes (SBNodeIndexer &nodeIndexer, const SBNodePredicate &selectionPredicate=SBDDataGraphNode::All(), const SBNodePredicate &visitPredicate=SBDDataGraphNode::All(), bool includeDependencies=false) |
| Returns some nodes. | |
| virtual void | forEachNodeDepthFirst (void(*action)(SBDDataGraphNode *node)) |
Performs action action on each node of this document. | |
| virtual void | forEachNodeDepthFirst (SBCClass *object, void(SBCClass::*action)(SBDDataGraphNode *node)) |
Performs action action of object object on each node of this document. | |
| 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. | |
Public Member Functions inherited from SBDDataGraphNode | |
| SBDDataGraphNode * | getParent () const |
| Returns the parent of the node. More... | |
| SBDDataGraphNode * | getThisNode () const |
| Returns the pointer to this node. More... | |
| SBDDataGraphNode * | getNextNode () const |
| Returns the pointer to the next node in the children of the node's parent. More... | |
| SBDDataGraphNode * | getPreviousNode () const |
| Returns the pointer to the previous node in the children of the node's parent. More... | |
| SBDDataGraphNode * | getNextNode (SBDDataGraphNode::Type nodeType) const |
Returns the pointer to the next node with type nodeType in the children of the node's parent. More... | |
| SBDDataGraphNode * | getPreviousNode (SBDDataGraphNode::Type nodeType) const |
Returns the pointer to the previous node with type nodeType in the children of the node's parent. More... | |
| SBDDocument * | getDocument () 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... | |
| 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 | isIn (SBDDataGraphNode *node) const |
Returns true if and only if this node is node, or descends from it. 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. 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. 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... | |
| SBDDataGraphNode * | getRoot () 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) | |
| 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 visible. | |
| 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 (RenderingPass renderingPass) |
| Displays the node. 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... | |
| bool | addMaterial (SBDDataGraphNodeMaterial *material) |
| Adds a material. More... | |
| bool | removeMaterial () |
| Removes the material. More... | |
| SBDDataGraphNodeMaterial * | getMaterial () const |
| Returns the material. More... | |
| SBDDataGraphNode * | getMaterialOwner () 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. | |
| unsigned int | countNodes (const SBNodePredicate &selectionPredicate=SBDDataGraphNode::All(), const SBNodePredicate &visitPredicate=SBDDataGraphNode::All(), bool includeDependencies=false) |
Collects nodes into nodeIndexer, based on a selectionPredicate and a visitPredicate, with our without dependencies. More... | |
| 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 |
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 SBDDataGraphNode * | getNode (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 Member Functions inherited from SBDDocumentFolder | |
| SBDDocumentFolder (SBDDocumentFolderData *dataPointer) | |
| Builds a folder. | |
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... | |
This class describes a document. A document may contain folders, cameras, groups, conformations and paths.
SAMSON Elements access the active document through SAMSON:
The set of selected nodes is accessible from the document:
The index cannot be modified, because SAMSON needs to perform bookkeeping when managing selected nodes, so the selection is manipulated either by modifying the selection flag of a node:
or by modyfing the document selection itself:
Whenever the selection flag of a node changes, through either one of these methods, a SelectionFlagChanged base signal is emitted by the node and the document (thus, adding a node twice to a selection, for example, emits a signal only once).
Note that you should always turn the Undo system on when modifying the selection:
Short name: SBDocument
| SBNodeGroup * SBDDocument::groupSelection | ( | const std::string & | name | ) |
This function is undoable