ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Tree-M/object.h
(Generate patch)

Comparing Tree-M/object.h (file contents):
Revision 1.1 by root, Sun May 6 00:45:51 2001 UTC vs.
Revision 1.3 by root, Wed May 23 02:11:14 2001 UTC

9inline double maxDist() { return ACC->maxDist; } 9inline double maxDist() { return ACC->maxDist; }
10inline int sizeofObject() { return ACC->ndims * ACC->elemsize; } 10inline int sizeofObject() { return ACC->ndims * ACC->elemsize; }
11 11
12class Object : public GiSTobject // the DB object class 12class Object : public GiSTobject // the DB object class
13{ 13{
14 double *k; 14 velem *k;
15
16 static double int2double(velem i) {
17 return i * ACC->max / ACC->steps + ACC->min;
18 }
19 static velem double2int(double d) {
20 return (velem)floor ((d - ACC->min) * ACC->steps / ACC->max);
21 }
22
15public: 23public:
16 Object() { 24 Object() {
17 k = new double [NDIMS]; 25 k = new velem [NDIMS];
26
18 for (int i = NDIMS; i--; ) 27 for (int i = NDIMS; i--; )
19 k[i] = 0.; 28 k[i] = ACC->vzero;
20 } 29 }
21 30
22 Object(double *pkey) 31 Object(double *pkey);
23 {
24 k = pkey;
25 }
26
27 Object(const Object& obj) {
28 k = new double [NDIMS];
29 memcpy (k, obj.k, NDIMS * sizeof (double));
30 }
31 32
32 ~Object() { 33 ~Object() {
33 delete [] k; 34 delete [] k;
34 } 35 }
35 36
37 Object(const Object& obj) {
38 k = new velem [NDIMS];
39 memcpy (k, obj.k, NDIMS * sizeof (velem));
40 }
41
36 Object& operator=(const Object& obj) { 42 Object& operator=(const Object& obj) {
37 delete [] k; 43 delete [] k;
38 44
39 k = new double [NDIMS]; 45 k = new velem [NDIMS];
40 memcpy (k, obj.k, NDIMS * sizeof (double)); 46 memcpy (k, obj.k, NDIMS * sizeof (velem));
41 } 47 }
42 48
43 double area(double r) { 49 double area(double r) const {
44 return 0; 50 return 0;
45 } 51 }
46 52
47 double *data() { 53 double *data() const;
48 return k;
49 }
50 54
51 double distance(const Object& other) const; // distance method (needed) 55 double distance(const Object& other) const; // distance method (needed)
52 56
53 int operator==(const Object& obj) 57 int operator ==(const Object& obj) const
54 { 58 {
55 return !memcmp (k, obj.k, NDIMS * sizeof (double)); 59 return !memcmp (k, obj.k, NDIMS * sizeof (velem));
56 } 60 }
57 61
58 int operator!=(const Object& obj) { return !(*this==obj); }; // inequality operator (needed) 62 int operator !=(const Object& obj) const
63 {
64 return !(*this==obj);
65 }
59 66
60 int CompressedLength() const { 67 int CompressedLength() const {
61 return sizeofObject(); 68 return sizeofObject();
62 } 69 }
63 70

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines