source: trunk/packages/vizservers/nanovis/Unirect.h @ 1381

Last change on this file since 1381 was 1381, checked in by gah, 16 years ago
File size: 3.8 KB
Line 
1
2#ifndef _UNIRECT_H
3#define _UNIRECT_H
4#include <rappture.h>
5
6namespace Rappture {
7
8class Unirect3d {
9    size_t xNum_, yNum_, zNum_;
10    size_t nValues_;
11    int extents_;
12
13    float xMin_, xMax_;
14    float yMin_, yMax_;
15    float zMin_, zMax_;
16    float vMin_, vMax_;
17
18    char *xUnits_;
19    char *yUnits_;
20    char *zUnits_;
21    char *vUnits_;
22
23    float *values_;
24    bool initialized_;
25
26public:
27    Unirect3d(float xMin, float xMax, size_t xNum,
28              float yMin, float yMax, size_t yNum,
29              float zMin, float zMax, size_t zNum,
30              size_t nValues, float *values) {
31        xMax_ = xMax;
32        xMin_ = xMin;
33        xNum_ = xNum;
34        yMax_ = yMax;
35        yMin_ = yMin;
36        yNum_ = yNum;
37        zMax_ = zMax;
38        zMin_ = zMin;
39        zNum_ = zNum;
40        nValues_ = nValues;
41        values_ = values;
42        initialized_ = true;
43    }
44
45    Unirect3d(void) {
46        values_ = NULL;
47        initialized_ = false;
48        xNum_ = yNum_ = zNum_ = 0;
49        nValues_ = 0;
50        xUnits_ = yUnits_ = zUnits_ = vUnits_ = NULL;
51    }
52    ~Unirect3d(void) {
53        if (values_ != NULL) {
54            delete [] values_;
55        }
56        if (xUnits_ != NULL) {
57            free(xUnits_);
58        }
59        if (yUnits_ != NULL) {
60            free(yUnits_);
61        }
62        if (zUnits_ != NULL) {
63            free(zUnits_);
64        }
65        if (vUnits_ != NULL) {
66            free(vUnits_);
67        }
68    }
69    size_t xNum(void) {
70        return xNum_;
71    }
72    size_t yNum(void) {
73        return yNum_;
74    }
75    size_t zNum(void) {
76        return zNum_;
77    }
78    float xMin(void) {
79        return xMin_;
80    }
81    float yMin(void) {
82        return yMin_;
83    }
84    float zMin(void) {
85        return zMin_;
86    }
87    float xMax(void) {
88        return xMax_;
89    }
90    float yMax(void) {
91        return yMax_;
92    }
93    float zMax(void) {
94        return zMax_;
95    }
96    const char *xUnits(void) {
97        return xUnits_;
98    }
99    const char *yUnits(void) {
100        return yUnits_;
101    }
102    const char *zUnits(void) {
103        return zUnits_;
104    }
105    const char *vUnits(void) {
106        return vUnits_;
107    }
108    float *values(void) {
109        return values_;
110    }
111    float *SaveValues(void) {
112        float *values;
113        values = values_;
114        values_ = NULL;
115        nValues_ = 0;
116        return values;
117    }
118    size_t nValues(void) {
119        return nValues_;
120    }
121    size_t extents(void) {
122        return extents_;
123    }
124    void extents(size_t extents) {
125        extents_ = extents;
126    }
127    int LoadData(Tcl_Interp *interp, int objc, Tcl_Obj *const *objv);
128    bool isInitialized(void) {
129        return initialized_;
130    }
131};
132
133class Unirect2d {
134    size_t xNum_, yNum_;
135    size_t nValues_;
136    size_t extents_;
137
138    float xMin_, xMax_;
139    float yMin_, yMax_;
140    float vMin_, vMax_;
141
142    char *xUnits_;
143    char *yUnits_;
144    char *vUnits_;
145
146    float *values_;
147    bool initialized_;
148
149public:
150    Unirect2d(void) {
151        values_ = NULL;
152        initialized_ = false;
153        xNum_ = yNum_ = 0;
154        nValues_ = 0;
155        xUnits_ = yUnits_ = vUnits_ = NULL;
156    }
157    ~Unirect2d(void) {
158        if (values_ != NULL) {
159            delete [] values_;
160        }
161        if (xUnits_ != NULL) {
162            free(xUnits_);
163        }
164        if (yUnits_ != NULL) {
165            free(yUnits_);
166        }
167        if (vUnits_ != NULL) {
168            free(vUnits_);
169        }
170    }
171    size_t xNum(void) {
172        return xNum_;
173    }
174    size_t yNum(void) {
175        return yNum_;
176    }
177    float xMin(void) {
178        return xMin_;
179    }
180    float yMin(void) {
181        return yMin_;
182    }
183    float xMax(void) {
184        return xMax_;
185    }
186    float yMax(void) {
187        return yMax_;
188    }
189    const char *xUnits(void) {
190        return xUnits_;
191    }
192    const char *yUnits(void) {
193        return yUnits_;
194    }
195    const char *vUnits(void) {
196        return vUnits_;
197    }
198    float *values(void) {
199        return values_;
200    }
201    float *acceptValues(void) {
202        float *values;
203        values = values_;
204        values_ = NULL;
205        nValues_ = 0;
206        return values;
207    }
208    size_t nValues(void) {
209        return nValues_;
210    }
211    size_t extents(void) {
212        return extents_;
213    }
214    void extents(size_t extents) {
215        extents_ = extents;
216    }
217    int LoadData(Tcl_Interp *interp, int objc, Tcl_Obj *const *objv);
218    bool isInitialized(void) {
219        return initialized_;
220    }
221};
222
223}
224
225#endif /*_UNIRECT_H*/
226
Note: See TracBrowser for help on using the repository browser.