[Plib-cvs] plib/src/ssg ssg.cxx,1.65,1.66 ssg.h,1.170,1.171 ssgLocal.h,1.23,1.24 ssgVTable.cxx,1.20,
Brought to you by:
sjbaker
From: Steve B. <sj...@us...> - 2004-06-24 16:31:07
|
Update of /cvsroot/plib/plib/src/ssg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20954/plib/src/ssg Modified Files: ssg.cxx ssg.h ssgLocal.h ssgVTable.cxx ssgVtxTable.cxx Log Message: Added ability to have isect tests check for backfacing polygons. Index: ssg.cxx =================================================================== RCS file: /cvsroot/plib/plib/src/ssg/ssg.cxx,v retrieving revision 1.65 retrieving revision 1.66 diff -u -d -r1.65 -r1.66 --- ssg.cxx 12 Dec 2003 17:23:51 -0000 1.65 +++ ssg.cxx 24 Jun 2004 16:30:54 -0000 1.66 @@ -63,6 +63,9 @@ sgVec3 _ssgNormalUp = { 0.0f, 0.0f, 1.0f } ; sgVec2 _ssgTexCoord00 = { 0.0f, 0.0f } ; short _ssgIndex0 = 0; +bool _ssgBackFaceCollisions = false ; + +void ssgSetBackFaceCollisions ( bool b ) { _ssgBackFaceCollisions = b ; } static ssgLight _ssgLights [ 8 ] ; static int _ssgFrameCounter = 0 ; Index: ssg.h =================================================================== RCS file: /cvsroot/plib/plib/src/ssg/ssg.h,v retrieving revision 1.170 retrieving revision 1.171 diff -u -d -r1.170 -r1.171 --- ssg.h 6 Apr 2004 12:53:17 -0000 1.170 +++ ssg.h 24 Jun 2004 16:30:54 -0000 1.171 @@ -2819,7 +2819,6 @@ void ssgFlatten ( ssgEntity *ent ) ; void ssgStripify ( ssgEntity *ent ) ; - void ssgArrayTool ( ssgEntity *ent, float* vtol = 0, bool make_normals = false ) ; void ssgTransTool ( ssgEntity *ent, const sgMat4 trans ) ; @@ -2834,5 +2833,8 @@ void ssgRegisterType ( int type, ssgBase * ( *create_func ) () ) ; ssgBase *ssgCreateOfType ( int type ) ; +#define SSG_BACKFACE_COLLISIONS_SUPPORTED 1 +void ssgSetBackFaceCollisions ( bool b ) ; + #endif Index: ssgLocal.h =================================================================== RCS file: /cvsroot/plib/plib/src/ssg/ssgLocal.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- ssgLocal.h 2 Feb 2004 01:35:15 -0000 1.23 +++ ssgLocal.h 24 Jun 2004 16:30:54 -0000 1.24 @@ -130,5 +130,6 @@ int _ssgLoadObject ( FILE * , ssgBase ** , int type_mask = 0 ) ; extern ssgStatistics _ssgCurrStatistics ; +extern bool _ssgBackFaceCollisions ; Index: ssgVTable.cxx =================================================================== RCS file: /cvsroot/plib/plib/src/ssg/ssgVTable.cxx,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- ssgVTable.cxx 2 Feb 2004 01:35:15 -0000 1.20 +++ ssgVTable.cxx 24 Jun 2004 16:30:54 -0000 1.21 @@ -427,7 +427,10 @@ sgVec3 vv1, vv2, vv3 ; sgVec4 plane ; - getTriangle ( i, &v1, &v2, &v3 ) ; + if ( _ssgBackFaceCollisions ) + getTriangle ( i, &v1, &v3, &v2 ) ; + else + getTriangle ( i, &v1, &v2, &v3 ) ; sgXformPnt3 ( vv1, getVertex(v1), m ) ; sgXformPnt3 ( vv2, getVertex(v2), m ) ; @@ -512,7 +515,10 @@ SGfloat det,inv_det; SGfloat /*t,*/u,v; - getTriangle ( i, &v1, &v2, &v3 ) ; + if ( _ssgBackFaceCollisions ) + getTriangle ( i, &v1, &v3, &v2 ) ; + else + getTriangle ( i, &v1, &v2, &v3 ) ; sgXformPnt3 ( vv1, getVertex(v1), m ) ; sgXformPnt3 ( vv2, getVertex(v2), m ) ; @@ -574,7 +580,10 @@ sgVec3 vv1, vv2, vv3 ; sgVec4 plane ; - getTriangle ( i, &v1, &v2, &v3 ) ; + if ( _ssgBackFaceCollisions ) + getTriangle ( i, &v1, &v3, &v2 ) ; + else + getTriangle ( i, &v1, &v2, &v3 ) ; sgXformPnt3 ( vv1, getVertex(v1), m ) ; sgXformPnt3 ( vv2, getVertex(v2), m ) ; Index: ssgVtxTable.cxx =================================================================== RCS file: /cvsroot/plib/plib/src/ssg/ssgVtxTable.cxx,v retrieving revision 1.35 retrieving revision 1.36 diff -u -d -r1.35 -r1.36 --- ssgVtxTable.cxx 8 May 2004 15:49:27 -0000 1.35 +++ ssgVtxTable.cxx 24 Jun 2004 16:30:55 -0000 1.36 @@ -648,7 +648,10 @@ sgVec3 vv1, vv2, vv3 ; sgVec4 plane ; - getTriangle ( i, &v1, &v2, &v3 ) ; + if ( _ssgBackFaceCollisions ) + getTriangle ( i, &v1, &v3, &v2 ) ; + else + getTriangle ( i, &v1, &v2, &v3 ) ; sgXformPnt3 ( vv1, getVertex(v1), m ) ; sgXformPnt3 ( vv2, getVertex(v2), m ) ; @@ -733,7 +736,10 @@ SGfloat det,inv_det; SGfloat /*t,*/u,v; - getTriangle ( i, &v1, &v2, &v3 ) ; + if ( _ssgBackFaceCollisions ) + getTriangle ( i, &v1, &v3, &v2 ) ; + else + getTriangle ( i, &v1, &v2, &v3 ) ; sgXformPnt3 ( vv1, getVertex(v1), m ) ; sgXformPnt3 ( vv2, getVertex(v2), m ) ; @@ -826,7 +832,10 @@ sgVec3 vv1, vv2, vv3 ; sgVec4 plane ; - getTriangle ( i, &v1, &v2, &v3 ) ; + if ( _ssgBackFaceCollisions ) + getTriangle ( i, &v1, &v3, &v2 ) ; + else + getTriangle ( i, &v1, &v2, &v3 ) ; sgXformPnt3 ( vv1, getVertex(v1), m ) ; sgXformPnt3 ( vv2, getVertex(v2), m ) ; |