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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines