gft_scene.h
Go to the documentation of this file.
1 
2 #ifndef _GFT_SCENE_H_
3 #define _GFT_SCENE_H_
4 
5 #include "gft_common.h"
6 #include "gft_scene8.h"
7 #include "gft_scene16.h"
8 #include "gft_scene32.h"
9 #include "gft_scene32f.h"
10 #include "gft_scene64f.h"
11 
12 typedef enum {integer, reals} gft_SceneType;
13 
14 namespace gft{
15  namespace Scene{
16 
17  typedef struct _scene {
20  union{
26  } ptr;
27  } Scene;
28 
29 
33  Scene *Create(int xsize,int ysize,int zsize, int nbits, gft_SceneType type);
37  Scene *Create(int xsize,int ysize,int zsize, int nbits);
41  Scene *Create(Scene *scn);
45  void Destroy(Scene **scn);
46  void Copy(Scene *dest, Scene *src);
47  void Copy(Scene *dest, Scene *src, Voxel v);
51  Scene *Clone(Scene *scn);
52  Scene *SubScene(Scene *scn, Voxel l, Voxel h);
53  Scene *SubScene(Scene *scn,
54  int xl, int yl, int zl,
55  int xh, int yh, int zh);
56  void Fill(Scene *scn, int value);
57 
58  Scene *Read(char *filename);
59  void Write(Scene *scn, char *filename);
60 
61  void SetValue(Scene *scn, int p, int value);
62 
63  int GetValue(Scene *scn, Voxel v);
64  int GetValue(Scene *scn, int p);
65  int GetValue(Scene *scn, int x, int y, int z);
66  int GetValue_nn(Scene *scn, float x, float y, float z);
67 
68  double GetValue64f(Scene *scn, Voxel v);
69  double GetValue64f(Scene *scn, int p);
70  double GetValue64f(Scene *scn, int x, int y, int z);
71  double GetValue64f_nn(Scene *scn, float x, float y, float z);
72 
73  int GetNumberOfVoxels(Scene *scn);
74 
75  int GetAddressX(Scene *scn, int p);
76  int GetAddressY(Scene *scn, int p);
77  int GetAddressZ(Scene *scn, int p);
78  int GetVoxelAddress(Scene *scn, Voxel v);
79  int GetVoxelAddress(Scene *scn, int x, int y, int z);
80 
81  bool IsValidVoxel(Scene *scn, int x, int y, int z);
82  bool IsValidVoxel(Scene *scn, Voxel v);
83 
84  int GetMaximumValue(Scene *scn);
85  int GetMinimumValue(Scene *scn);
86 
87  Scene *MBB(Scene *scn);
88  void MBB(Scene *scn, Voxel *l, Voxel *h);
89 
90  Scene *AddFrame(Scene *scn, int sz, int value);
91  Scene *RemFrame(Scene *fscn, int sz);
92 
93  } //end Scene namespace
94 } //end gft namespace
95 
96 #endif
97 
gft_SceneType
Definition: gft_scene.h:12
Definition: gft_scene.h:17
Definition: gft_scene64f.h:15
int GetAddressY(Scene *scn, int p)
Definition: gft_scene.cpp:459
int GetMinimumValue(Scene *scn)
Definition: gft_scene.cpp:543
Scene * Read(char *filename)
Definition: gft_scene.cpp:290
int GetAddressZ(Scene *scn, int p)
Definition: gft_scene.cpp:471
Scene32::Scene32 * scn32
Definition: gft_scene.h:23
Definition: gft_scene.h:12
Definition: gft_common.h:106
void Write(Scene *scn, char *filename)
Definition: gft_scene.cpp:295
bool IsValidVoxel(Scene *scn, int x, int y, int z)
Definition: gft_scene.cpp:507
Scene16::Scene16 * scn16
Definition: gft_scene.h:22
int GetAddressX(Scene *scn, int p)
Definition: gft_scene.cpp:447
Scene32f::Scene32f * scn32f
Definition: gft_scene.h:24
void Fill(Scene *scn, int value)
Definition: gft_scene.cpp:275
Definition: gft_scene8.h:15
Definition: gft_scene32f.h:15
int GetValue_nn(Scene *scn, float x, float y, float z)
Definition: gft_scene.cpp:401
void SetValue(Scene *scn, int p, int value)
Definition: gft_scene.cpp:310
Definition: gft_scene32.h:19
gft_SceneType type
Definition: gft_scene.h:19
Definition: gft_scene16.h:15
double GetValue64f_nn(Scene *scn, float x, float y, float z)
Definition: gft_scene.cpp:413
void Destroy(Scene **scn)
A destructor.
Definition: gft_scene.cpp:101
int GetNumberOfVoxels(Scene *scn)
Definition: gft_scene.cpp:423
void Copy(Scene *dest, Scene *src)
Definition: gft_scene.cpp:134
Header file for common definitions and function prototypes.
unsigned char uchar
Definition: gft_common.h:40
Scene * Clone(Scene *scn)
A copy constructor.
Definition: gft_scene.cpp:215
Scene * Create(int xsize, int ysize, int zsize, int nbits, gft_SceneType type)
A constructor.
Definition: gft_scene.cpp:7
Scene * MBB(Scene *scn)
Definition: gft_scene.cpp:556
Scene * SubScene(Scene *scn, Voxel l, Voxel h)
Definition: gft_scene.cpp:238
Definition: gft_scene.h:12
Scene * RemFrame(Scene *fscn, int sz)
Definition: gft_scene.cpp:615
double GetValue64f(Scene *scn, Voxel v)
Definition: gft_scene.cpp:347
uchar nbits
Definition: gft_scene.h:18
union gft::Scene::_scene::@3 ptr
struct gft::Scene::_scene Scene
int GetValue(Scene *scn, Voxel v)
Definition: gft_scene.cpp:335
Scene8::Scene8 * scn8
Definition: gft_scene.h:21
int GetMaximumValue(Scene *scn)
Definition: gft_scene.cpp:531
Scene64f::Scene64f * scn64f
Definition: gft_scene.h:25
int GetVoxelAddress(Scene *scn, Voxel v)
Definition: gft_scene.cpp:483
Scene * AddFrame(Scene *scn, int sz, int value)
Definition: gft_scene.cpp:593