[Plib-cvs] plib/src/ssg ssg.h,1.157,1.158 ssgEntity.cxx,1.22,1.23 ssgTransform.cxx,1.12,1.13
Brought to you by:
sjbaker
From: Steve B. <sj...@us...> - 2002-11-29 19:39:51
|
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 ) { |