]> git.mxchange.org Git - simgear.git/blob - simgear/scene/model/custtrans.hxx
Better encapsulation for personality
[simgear.git] / simgear / scene / model / custtrans.hxx
1 /**
2  * $Id$
3  */
4
5 #ifndef _SG_CUSTOM_TRANSFORM_HXX
6 #define _SG_CUSTOM_TRANSFORM_HXX 1
7
8 #include "plib/ssg.h"
9
10 class SGCustomTransform : public ssgBranch
11 {
12 public:
13     typedef void (*TransCallback)( sgMat4 r, sgFrustum *f, sgMat4 m, void *d );
14     virtual ssgBase *clone( int clone_flags = 0 );
15     SGCustomTransform();
16     virtual ~SGCustomTransform(void);
17
18     void setTransCallback( TransCallback c, void *d ) {
19         _callback = c;
20         _data = d;
21     }
22
23     virtual const char *getTypeName(void);
24     virtual void cull( sgFrustum *f, sgMat4 m, int test_needed );
25
26 protected:
27     virtual void copy_from( SGCustomTransform *src, int clone_flags );
28
29 private:
30     TransCallback _callback;
31     void *_data;
32 };
33
34 #endif // _SG_CUSTOM_TRANSFORM_HXX