Update of /cvsroot/plib/plib/src/ssg
In directory sc8-pr-cvs1:/tmp/cvs-serv26502/plib/src/ssg
Modified Files:
ssg.h ssgEntity.cxx ssgTransform.cxx
Log Message:
Major rework of JS library.
Cleaned up OS type flags in conditional compilations.
Index: ssg.h
===================================================================
RCS file: /cvsroot/plib/plib/src/ssg/ssg.h,v
retrieving revision 1.157
retrieving revision 1.158
diff -u -d -r1.157 -r1.158
--- ssg.h 10 Nov 2002 17:12:13 -0000 1.157
+++ ssg.h 29 Nov 2002 19:39:48 -0000 1.158
@@ -1135,6 +1135,9 @@
int preTravTests ( int *test_needed, int which ) ;
void postTravTests ( int which ) ;
+ virtual void getNetTransform ( sgMat4 xform ) ;
+ virtual void getLastNetTransform ( sgMat4 xform ) ;
+
/* for backward compatibility */
virtual ssgCallback getCallback ( int cb_type ) ;
virtual void setCallback ( int cb_type, ssgCallback cb ) ;
@@ -1833,7 +1836,7 @@
double get_time() const
{
if (time_mode == SSG_ANIM_FRAME)
- return static_cast<float>( ssgGetFrameCounter() );
+ return (double) ssgGetFrameCounter() ;
else
return ck.update(), ck.getAbsTime();
}
@@ -1993,6 +1996,9 @@
virtual void setTransform ( sgCoord *xform ) ;
virtual void setTransform ( sgCoord *xform, float sx, float sy, float sz ) ;
virtual void setTransform ( sgMat4 xform ) ;
+
+ virtual void getNetTransform ( sgMat4 xform ) ;
+ virtual void getLastNetTransform ( sgMat4 xform ) ;
virtual const char *getTypeName(void) ;
virtual int load ( FILE *fd ) ;
Index: ssgEntity.cxx
===================================================================
RCS file: /cvsroot/plib/plib/src/ssg/ssgEntity.cxx,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- ssgEntity.cxx 9 Sep 2002 09:08:29 -0000 1.22
+++ ssgEntity.cxx 29 Nov 2002 19:39:48 -0000 1.23
@@ -379,3 +379,22 @@
}
+
+void ssgEntity::getNetTransform ( sgMat4 xform )
+{
+ if ( getNumParents () > 0 )
+ getParent ( 0 ) -> getNetTransform ( xform ) ;
+ else
+ sgMakeIdentMat4 ( xform ) ;
+}
+
+
+void ssgEntity::getLastNetTransform ( sgMat4 xform )
+{
+ if ( getNumParents () > 0 )
+ getParent ( 0 ) -> getLastNetTransform ( xform ) ;
+ else
+ sgMakeIdentMat4 ( xform ) ;
+}
+
+
Index: ssgTransform.cxx
===================================================================
RCS file: /cvsroot/plib/plib/src/ssg/ssgTransform.cxx,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- ssgTransform.cxx 2 Sep 2002 06:05:49 -0000 1.12
+++ ssgTransform.cxx 29 Nov 2002 19:39:48 -0000 1.13
@@ -199,6 +199,32 @@
}
+void ssgTransform::getNetTransform ( sgMat4 xform )
+{
+ if ( getNumParents () > 0 )
+ {
+ getParent ( 0 ) -> getNetTransform ( xform ) ;
+ sgPreMultMat4 ( xform, transform ) ;
+ }
+ else
+ sgCopyMat4 ( xform, transform ) ;
+}
+
+
+void ssgTransform::getLastNetTransform ( sgMat4 xform )
+{
+ sgMat4 last_xform ;
+ getLastTransform ( last_xform ) ;
+
+ if ( getNumParents () > 0 )
+ {
+ getParent ( 0 ) -> getLastNetTransform ( xform ) ;
+ sgPreMultMat4 ( xform, last_xform ) ;
+ }
+ else
+ sgCopyMat4 ( xform, last_xform ) ;
+}
+
int ssgTransform::load ( FILE *fd )
{
|