doxygen: bge scenegraph and videotexture
[blender.git] / source / gameengine / SceneGraph / SG_ParentRelation.h
index 6507cb98519d245210555a2794edb8065f08b189..52e418031858039d21ee60e0a4d2ad73bfd4b439 100644 (file)
@@ -1,23 +1,4 @@
-/**
- * @mainpage SG_ParentRelation   
-
- * @section 
- * 
- * 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 
- * 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. 
- * 
- * There is exactly one SG_ParentRelation per SG_Node. Subclasses
- * should not be value types and should be allocated on the heap.
- *
+/*
  * $Id$
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
  * $Id$
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
@@ -34,7 +15,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
  * 
  */
 
  * 
  */
 
+/** \file SG_ParentRelation.h
+ *  \ingroup bgesg
+ * @page SG_ParentRelationPage SG_ParentRelation   
+
+ * @section 
+ * 
+ * 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 
+ * 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. 
+ * 
+ * There is exactly one SG_ParentRelation per SG_Node. Subclasses
+ * should not be value types and should be allocated on the heap.
+ *
+ */
 #ifndef __SG_ParentRelation_h
 #define __SG_ParentRelation_h
 
 #ifndef __SG_ParentRelation_h
 #define __SG_ParentRelation_h
 
@@ -55,7 +59,6 @@ class SG_Spatial;
 class SG_ParentRelation {
 
 public :
 class SG_ParentRelation {
 
 public :
-
        /**
         * Update the childs local and global coordinates
         * based upon the parents global coordinates. 
        /**
         * Update the childs local and global coordinates
         * based upon the parents global coordinates. 
@@ -69,7 +72,8 @@ public :
                bool
        UpdateChildCoordinates(
                SG_Spatial * child,
                bool
        UpdateChildCoordinates(
                SG_Spatial * child,
-               const SG_Spatial * parent
+               const SG_Spatial * parent,
+               bool& parentUpdated
        ) = 0;
 
        virtual 
        ) = 0;
 
        virtual 
@@ -127,6 +131,13 @@ protected :
        SG_ParentRelation(
                const SG_ParentRelation &
        ); 
        SG_ParentRelation(
                const SG_ParentRelation &
        ); 
+       
+       
+#ifdef WITH_CXX_GUARDEDALLOC
+public:
+       void *operator new(size_t num_bytes) { return MEM_mallocN(num_bytes, "GE:SG_ParentRelation"); }
+       void operator delete( void *mem ) { MEM_freeN(mem); }
+#endif
 };     
 
 #endif
 };     
 
 #endif