This class is for plib only

This commit is contained in:
fredb
2006-11-07 07:22:48 +00:00
parent 11ecbb6ca7
commit e947bac4a3
2 changed files with 0 additions and 89 deletions

View File

@@ -1,57 +0,0 @@
/*
$Id$
*/
#include "custtrans.hxx"
void _ssgPushMatrix ( sgMat4 m );
void _ssgPopMatrix ();
void SGCustomTransform::copy_from( SGCustomTransform *src, int clone_flags )
{
ssgBranch::copy_from( src, clone_flags );
_callback = src->_callback;
_data = src->_data;
}
ssgBase *SGCustomTransform::clone( int clone_flags )
{
SGCustomTransform *b = new SGCustomTransform;
b -> copy_from( this, clone_flags );
return b;
}
SGCustomTransform::SGCustomTransform()
: _callback(0),_data(0)
{
type = ssgTypeBranch();
}
SGCustomTransform::~SGCustomTransform()
{
}
void SGCustomTransform::cull( sgFrustum *f, sgMat4 m, int test_needed )
{
if ( ! preTravTests( &test_needed, SSGTRAV_CULL ) )
return;
if ( _callback ) {
sgMat4 tmp;
_callback( tmp, f, m, _data );
_ssgPushMatrix( tmp );
glPushMatrix();
glLoadMatrixf( (float *) tmp );
for ( ssgEntity *e = getKid ( 0 ); e != NULL; e = getNextKid() )
e -> cull( f, tmp, test_needed );
glPopMatrix();
_ssgPopMatrix();
}
postTravTests( SSGTRAV_CULL );
}
const char *SGCustomTransform::getTypeName (void) { return "SGCustomTransform"; }

View File

@@ -1,32 +0,0 @@
/**
* $Id$
*/
#ifndef _SG_CUSTOM_TRANSFORM_HXX
#define _SG_CUSTOM_TRANSFORM_HXX 1
class SGCustomTransform : public ssgBranch
{
public:
typedef void (*TransCallback)( sgMat4 r, sgFrustum *f, sgMat4 m, void *d );
virtual ssgBase *clone( int clone_flags = 0 );
SGCustomTransform();
virtual ~SGCustomTransform(void);
void setTransCallback( TransCallback c, void *d ) {
_callback = c;
_data = d;
}
virtual const char *getTypeName(void);
virtual void cull( sgFrustum *f, sgMat4 m, int test_needed );
protected:
virtual void copy_from( SGCustomTransform *src, int clone_flags );
private:
TransCallback _callback;
void *_data;
};
#endif // _SG_CUSTOM_TRANSFORM_HXX