gft_adjregion3.h
Go to the documentation of this file.
1 
2 #ifndef _GFT_ADJREGION3_H_
3 #define _GFT_ADJREGION3_H_
4 
5 #include "gft_common.h"
6 #include "gft_scene.h"
7 #include "gft_adjrel3.h"
8 
9 namespace gft{
10  namespace AdjRegion3{
11 
12  typedef union _displacement3 {
14  int data[4];
15  struct{ int x,y,z; } axis;
16  } Displacement3;
17 
18  typedef struct _adjregion3 {
20  int n;
21  int *dp;
22 
23  //private:
24  int xsize;
25  int xysize;
26  int max[3];
27  int min[3];
28  } AdjRegion3;
29 
30 
31  AdjRegion3 *Create(int n);
34  void Destroy(AdjRegion3 **adjreg);
35  AdjRegion3 *Clone(AdjRegion3 *adjreg);
37 
39 
40  void Draw(AdjRegion3 *adjreg,
41  Scene8::Scene8 *scn,
42  Voxel u,
43  uchar val);
44  void Draw(AdjRegion3 *adjreg,
45  Scene16::Scene16 *scn,
46  Voxel u,
47  ushort val);
48  void Draw(AdjRegion3 *adjreg,
49  Scene32::Scene32 *scn,
50  Voxel u,
51  int val);
52  /*
53  void MT_Draw(AdjRegion3 *adjreg,
54  Scene8::Scene8 *scn,
55  Voxel u,
56  uchar val);
57  */
58  void DrawOpt(AdjRegion3 *adjreg,
59  Scene8::Scene8 *scn,
60  int p, uchar val);
61  void DrawOpt(AdjRegion3 *adjreg,
62  Scene16::Scene16 *scn,
63  int p, ushort val);
64  void DrawOpt(AdjRegion3 *adjreg,
65  Scene32::Scene32 *scn,
66  int p, int val);
67  /*
68  void MT_DrawOpt(AdjRegion3 *adjreg,
69  Scene8::Scene8 *scn,
70  int p, uchar val);
71  */
72  void Optimize(AdjRegion3 *adjreg,
73  int xsize, int ysize);
74  void Optimize(AdjRegion3 *adjreg,
75  Scene8::Scene8 *scn);
76  void Optimize(AdjRegion3 *adjreg,
77  Scene16::Scene16 *scn);
78  void Optimize(AdjRegion3 *adjreg,
79  Scene32::Scene32 *scn);
80 
81  void RefreshLimits(AdjRegion3 *adjreg);
82  void GetLimits(AdjRegion3 *adjreg,
83  int *dx_min, int *dy_min, int *dz_min,
84  int *dx_max, int *dy_max, int *dz_max);
85 
86  bool FitInside(AdjRegion3 *adjreg, Voxel vx,
87  int xsize, int ysize, int zsize, int sz);
88  bool FitInside(AdjRegion3 *adjreg, Voxel vx,
89  Scene8::Scene8 *scn, int sz);
90  bool FitInside(AdjRegion3 *adjreg, Voxel vx,
91  Scene16::Scene16 *scn, int sz);
92  bool FitInside(AdjRegion3 *adjreg, Voxel vx,
93  Scene32::Scene32 *scn, int sz);
94 
95  float InnerMean(AdjRegion3 *adjreg,
96  Voxel vx,
97  Scene16::Scene16 *scn);
98 
99  float InnerSum(AdjRegion3 *adjreg,
100  Voxel vx,
101  Scene16::Scene16 *scn);
102 
103 
104  } //end AdjRegion3 namespace
105 } //end gft namespace
106 
107 #endif
108 
union gft::AdjRegion3::_displacement3 Displacement3
void GetLimits(AdjRegion3 *adjreg, int *dx_min, int *dy_min, int *dz_min, int *dx_max, int *dy_max, int *dz_max)
Definition: gft_adjregion3.cpp:300
bool FitInside(AdjRegion3 *adjreg, Voxel vx, int xsize, int ysize, int zsize, int sz)
Definition: gft_adjregion3.cpp:315
Definition: gft_adjregion3.h:18
int min[3]
Definition: gft_adjregion3.h:27
Definition: gft_adjrel3.h:16
Definition: gft_common.h:106
int y
Definition: gft_adjregion3.h:15
int * dp
Definition: gft_adjregion3.h:21
AdjRegion3 * Clone(AdjRegion3 *adjreg)
Definition: gft_adjregion3.cpp:91
Scene8::Scene8 * Export2Mask(AdjRegion3 *adjreg)
Definition: gft_adjregion3.cpp:134
int xysize
Definition: gft_adjregion3.h:25
int xsize
Definition: gft_adjregion3.h:24
Definition: gft_scene8.h:15
void Optimize(AdjRegion3 *adjreg, int xsize, int ysize)
Definition: gft_adjregion3.cpp:236
Definition: gft_adjregion3.h:12
Definition: gft_scene32.h:19
AdjRegion3 * Create(int n)
Definition: gft_adjregion3.cpp:7
Definition: gft_scene16.h:15
Header file for common definitions and function prototypes.
unsigned char uchar
Definition: gft_common.h:40
int max[3]
Definition: gft_adjregion3.h:26
int data[4]
Definition: gft_adjregion3.h:14
int v4si
Vector of four single integers.
Definition: gft_common.h:88
int x
Definition: gft_adjregion3.h:15
struct gft::AdjRegion3::_adjregion3 AdjRegion3
void Destroy(AdjRegion3 **adjreg)
Definition: gft_adjregion3.cpp:79
void Draw(AdjRegion3 *adjreg, Scene8::Scene8 *scn, Voxel u, uchar val)
Definition: gft_adjregion3.cpp:158
void RefreshLimits(AdjRegion3 *adjreg)
Definition: gft_adjregion3.cpp:273
unsigned short ushort
Definition: gft_common.h:38
float InnerSum(AdjRegion3 *adjreg, Voxel vx, Scene16::Scene16 *scn)
Definition: gft_adjregion3.cpp:375
struct gft::AdjRegion3::_displacement3::@0 axis
void DrawOpt(AdjRegion3 *adjreg, Scene8::Scene8 *scn, int p, uchar val)
Definition: gft_adjregion3.cpp:200
int z
Definition: gft_adjregion3.h:15
v4si v
Definition: gft_adjregion3.h:13
int n
Definition: gft_adjregion3.h:20
Displacement3 * d
Definition: gft_adjregion3.h:19
float InnerMean(AdjRegion3 *adjreg, Voxel vx, Scene16::Scene16 *scn)
Definition: gft_adjregion3.cpp:357
AdjRegion3 * Merge(AdjRegion3 *r1, AdjRegion3 *r2)
Definition: gft_adjregion3.cpp:103