]> git.mxchange.org Git - simgear.git/blob - simgear/scene/model/custtrans.hxx
Frederic Bouvier:
[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 class SGCustomTransform : public ssgBranch
9 {
10 public:
11     typedef void (*TransCallback)( sgMat4 r, sgFrustum *f, sgMat4 m, void *d );
12     virtual ssgBase *clone( int clone_flags = 0 );
13     SGCustomTransform();
14     virtual ~SGCustomTransform(void);
15
16     void setTransCallback( TransCallback c, void *d ) {
17         _callback = c;
18         _data = d;
19     }
20
21     virtual const char *getTypeName(void);
22     virtual void cull( sgFrustum *f, sgMat4 m, int test_needed );
23
24 protected:
25     virtual void copy_from( SGCustomTransform *src, int clone_flags );
26
27 private:
28     TransCallback _callback;
29     void *_data;
30 };
31
32 #endif // _SG_CUSTOM_TRANSFORM_HXX