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

Revision 870, 1.3 KB checked in by mattausch, 19 years ago (diff)

added pvs

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
28        //-- inherited functions from Intersectable
29
30        /** Returns the mail of this box.
31        */
32        GtpVisibilityPreprocessor::AxisAlignedBox3 GetBox();
33       
34        int CastRay(GtpVisibilityPreprocessor::Ray &ray);
35       
36        bool IsConvex();
37        bool IsWatertight();
38        float IntersectionComplexity();
39 
40        int NumberOfFaces() const;
41        int Type() const;
42
43        int GetRandomSurfacePoint(GtpVisibilityPreprocessor::Vector3 &point, GtpVisibilityPreprocessor::Vector3 &normal);
44
45        int GetRandomVisibleSurfacePoint(GtpVisibilityPreprocessor::Vector3 &point,
46                                                                         GtpVisibilityPreprocessor::Vector3 &normal,
47                                                                         const GtpVisibilityPreprocessor::Vector3 &viewpoint,
48                                                                         const int maxTries);
49 
50        ostream &Describe(ostream &s);
51       
52
53protected:
54       
55        Entity *mMesh;
56        //AxisAlignedBox3
57};
58
59} // namespace Ogre
60
61#endif // OgreMeshIntance
Note: See TracBrowser for help on using the repository browser.