Line | |
---|
1 | #pragma once
|
---|
2 |
|
---|
3 | #include <vector>
|
---|
4 | #include "Vector.hpp"
|
---|
5 | #include "Radion.hpp"
|
---|
6 | #include "RenderStrategy.h"
|
---|
7 | #include "SubEntity.h"
|
---|
8 |
|
---|
9 | class Entity
|
---|
10 | {
|
---|
11 | friend class SubEntity;
|
---|
12 | friend class DepthRenderStrategy;
|
---|
13 | friend class FinalCompositionRenderStrategy;
|
---|
14 | D3DXMATRIX modelWorldTransform; //!< modeling transform
|
---|
15 | D3DXMATRIX inverseTransposedModelWorldTransform; //!< IT modeling transform for surface normal transformation
|
---|
16 |
|
---|
17 | char name[256];
|
---|
18 | char prmFileName[256];
|
---|
19 | Mesh* mesh;
|
---|
20 | unsigned int nNearClusters;
|
---|
21 |
|
---|
22 | std::vector<SubEntity*> subEntities;
|
---|
23 |
|
---|
24 | float surfaceArea;
|
---|
25 | public:
|
---|
26 | Entity(Mesh* baseMesh, const char* entityName, const char* prmFileName, const D3DXMATRIX& trafo, int nNearClusters);
|
---|
27 | ~Entity(void);
|
---|
28 |
|
---|
29 | void renderPRM( std::vector<Radion>& clusterRadions, unsigned int clusterId);
|
---|
30 | void normalizePRM();
|
---|
31 | void clearPRM();
|
---|
32 | void drawAllSubEntities(const RenderStrategy& renderStrategy);
|
---|
33 | float getSurfaceArea();
|
---|
34 |
|
---|
35 | void findNearClusters(const std::vector<Radion>& starters, unsigned int nClusters);
|
---|
36 |
|
---|
37 | void gatherRayTraceEntities(std::vector<Intersectable*>& rayTraceEntities);
|
---|
38 |
|
---|
39 | const Material* sampleSurface(Radion& sample);
|
---|
40 |
|
---|
41 | void loadPRM();
|
---|
42 | void savePRM();
|
---|
43 |
|
---|
44 | void saveSceneInfo(std::ofstream& psf);
|
---|
45 | };
|
---|
Note: See
TracBrowser
for help on using the repository browser.