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

# Content
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
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 public:
24 Object() {
25 k = new double [NDIMS];
26 for (int i = NDIMS; i--; )
27 k[i] = 0.;
28 }
29
30 Object(double *pkey);
31
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