Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/gameengine/SceneGraph/SG_ParentRelation.h')
-rw-r--r--source/gameengine/SceneGraph/SG_ParentRelation.h83
1 files changed, 30 insertions, 53 deletions
diff --git a/source/gameengine/SceneGraph/SG_ParentRelation.h b/source/gameengine/SceneGraph/SG_ParentRelation.h
index ce45b42c148..493fcd0fc83 100644
--- a/source/gameengine/SceneGraph/SG_ParentRelation.h
+++ b/source/gameengine/SceneGraph/SG_ParentRelation.h
@@ -32,17 +32,18 @@
*
* \section SG_ParentRelationSection SG_ParentRelation
*
- * This is an abstract interface class to the Scene Graph library.
+ * This is an abstract interface class to the Scene Graph library.
* It allows you to specify how child nodes react to parent nodes.
+ *
* Normally a child will use it's parent's transforms to compute
- * it's own global transforms. How this is performed depends on
- * the type of relation. For example if the parent is a vertex
- * parent to this child then the child should not inherit any
- * rotation information from the parent. Or if the parent is a
- * 'slow parent' to this child then the child should react
+ * its own global transforms. How this is performed depends on
+ * the type of relation. For example if the parent is a vertex
+ * parent to this child then the child should only inherit
+ * location information from the parent. Or if the parent is a
+ * 'slow parent' to this child then the child should react
* slowly to changes in the parent's position. The exact relation
- * is left for you to implement by filling out this interface
- * with concrete examples.
+ * is left for you to implement by filling out this interface
+ * with concrete examples.
*
* There is exactly one SG_ParentRelation per SG_Node. Subclasses
* should not be value types and should be allocated on the heap.
@@ -57,26 +58,16 @@ class SG_Spatial;
class SG_ParentRelation {
public :
+
/**
- * Update the childs local and global coordinates
- * based upon the parents global coordinates.
- * You must also handle the case when this node has no
- * parent (parent == NULL). Usually you should just
- * copy the local coordinates of the child to the
- * world coordinates.
- */
-
- virtual
- bool
- UpdateChildCoordinates(
- SG_Spatial * child,
- const SG_Spatial * parent,
- bool& parentUpdated
- ) = 0;
-
- virtual
- ~SG_ParentRelation(
- ) {};
+ * Update the child's local and global coordinates based upon the parents global coordinates.
+ * You must also handle the case when this node has no parent (parent == NULL).
+ * Usually you should just copy the local coordinates of the child to the world coordinates.
+ */
+ virtual bool UpdateChildCoordinates(SG_Spatial * child, const SG_Spatial * parent, bool& parentUpdated) = 0;
+
+ /* Destructor */
+ virtual ~SG_ParentRelation() {}
/**
* You must provide a way of duplicating an
@@ -85,55 +76,41 @@ public :
* on the heap. Responsibility for deleting the
* duplicate resides with the caller of this method.
*/
-
- virtual
- SG_ParentRelation *
- NewCopy(
- ) = 0;
+ virtual SG_ParentRelation* NewCopy() = 0;
/**
* Vertex Parent Relation are special: they don't propagate rotation
*/
- virtual
- bool
- IsVertexRelation(
- ) {
+ virtual bool IsVertexRelation()
+ {
return false;
}
-
+
/**
* Need this to see if we are able to adjust time-offset from the python api
*/
- virtual
- bool
- IsSlowRelation(
- ) {
+ virtual bool IsSlowRelation()
+ {
return false;
}
+
protected :
/**
- * Protected constructors
- * this class is not meant to be instantiated.
+ * Protected constructors this class is not meant to be instantiated.
*/
-
- SG_ParentRelation(
- ) {
- };
+ SG_ParentRelation() {}
/**
* Copy construction should not be implemented
*/
+ SG_ParentRelation(const SG_ParentRelation &);
+
- SG_ParentRelation(
- const SG_ParentRelation &
- );
-
-
#ifdef WITH_CXX_GUARDEDALLOC
MEM_CXX_CLASS_ALLOC_FUNCS("GE:SG_ParentRelation")
#endif
};
-#endif
+#endif /* __SG_PARENTRELATION_H__ */