source: GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/include/OgreMeshInstance.h @ 1028

Revision 1028, 1.3 KB checked in by mattausch, 18 years ago (diff)
Line 
1#ifndef _OgreMeshIntance_H__
2#define _OgreMeshIntance_H__
3
4#include <OgreEntity.h>
5#include "Intersectable.h"
6
7namespace Ogre {
8 
9/**
10        Wrapper for Ogre object intances for use with the preprocessed view cells.
11*/
12class __declspec(dllexport) OgreMeshInstance: public GtpVisibilityPreprocessor::Intersectable
13{
14public:
15
16        OgreMeshInstance(Entity *ent);
17
18        /** Returns 'mesh' associated with this instance.
19        */
20        Entity *GetMesh() const;
21
22        /** See get.
23        */
24        void SetMesh(Entity *mesh);
25
26
27        //-- inherited functions from Intersectable
28
29        GtpVisibilityPreprocessor::AxisAlignedBox3 GetBox() const;
30       
31        int CastRay(GtpVisibilityPreprocessor::Ray &ray);
32       
33        bool IsConvex() const;
34        bool IsWatertight() const;
35        float IntersectionComplexity();
36 
37        int NumberOfFaces() const;
38        int Type() const;
39
40        int GetRandomSurfacePoint(GtpVisibilityPreprocessor::Vector3 &point,
41                                                          GtpVisibilityPreprocessor::Vector3 &normal);
42
43        int GetRandomVisibleSurfacePoint(GtpVisibilityPreprocessor::Vector3 &point,
44                                                                         GtpVisibilityPreprocessor::Vector3 &normal,
45                                                                         const GtpVisibilityPreprocessor::Vector3 &viewpoint,
46                                                                         const int maxTries);
47 
48        ostream &Describe(ostream &s);
49       
50
51protected:
52       
53        Entity *mMesh;
54};
55
56} // namespace Ogre
57
58#endif // OgreMeshIntance
Note: See TracBrowser for help on using the repository browser.