ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Tree-M/object.h
Revision: 1.2
Committed: Sun May 6 17:28:24 2001 UTC (23 years ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.1: +9 -4 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 #ifndef OBJECT_H
2     #define OBJECT_H
3    
4     #include <cstdlib>
5     #include <stdio.h>
6    
7     #include "PMT.h"
8    
9     inline double maxDist() { return ACC->maxDist; }
10     inline int sizeofObject() { return ACC->ndims * ACC->elemsize; }
11    
12     class Object : public GiSTobject // the DB object class
13     {
14     double *k;
15 root 1.2
16     static double int2double(unsigned long i) {
17     return i * ACC->max / ACC->steps + ACC->min;
18     }
19     static unsigned long double2int(double d) {
20     return (unsigned long)floor ((d - ACC->min) * ACC->steps / ACC->max);
21     }
22    
23 root 1.1 public:
24     Object() {
25     k = new double [NDIMS];
26     for (int i = NDIMS; i--; )
27     k[i] = 0.;
28     }
29    
30 root 1.2 Object(double *pkey);
31 root 1.1
32     Object(const Object& obj) {
33     k = new double [NDIMS];
34     memcpy (k, obj.k, NDIMS * sizeof (double));
35     }
36    
37     ~Object() {
38     delete [] k;
39     }
40    
41     Object& operator=(const Object& obj) {
42     delete [] k;
43    
44     k = new double [NDIMS];
45     memcpy (k, obj.k, NDIMS * sizeof (double));
46     }
47    
48     double area(double r) {
49     return 0;
50     }
51    
52     double *data() {
53     return k;
54     }
55    
56     double distance(const Object& other) const; // distance method (needed)
57    
58     int operator==(const Object& obj)
59     {
60     return !memcmp (k, obj.k, NDIMS * sizeof (double));
61     }
62    
63     int operator!=(const Object& obj) { return !(*this==obj); }; // inequality operator (needed)
64    
65     int CompressedLength() const {
66     return sizeofObject();
67     }
68    
69     Object(char *key);
70     void Compress(char *key);
71     };
72    
73     #endif