12#ifndef TT_INCLUDE__VISTABLECLASS_H
13#define TT_INCLUDE__VISTABLECLASS_H
17#include "engine_vector.h"
21class CompressedVisTableClass;
24 public MultiListObjectClass
39 VisTableClass(uint,
int);
40 VisTableClass(CompressedVisTableClass*,
int,
int);
41 VisTableClass(
const VisTableClass& that);
43 const VisTableClass& operator =(
const VisTableClass& that);
45 void Alloc_Buffer(
int);
46 byte* Get_Bytes()
const {
return bytes; }
47 int Get_Byte_Count()
const {
return 4 * Get_Long_Count(); }
48 uint32* Get_Longs()
const {
return longs; }
49 int Get_Long_Count()
const;
53 void Merge(
const VisTableClass &that);
55 bool Is_Equal_To(
const VisTableClass &that)
const;
56 int Count_Differences(
const VisTableClass &that)
const;
57 int Count_True_Bits()
const;
58 float Match_Fraction(
const VisTableClass &that)
const;
59 int Get_Bit_Count()
const {
return bitCount; }
60 void Set_Vis_Sector_ID(
int _visSectorId) { visSectorId = _visSectorId; }
61 int Get_Vis_Sector_ID()
const {
return visSectorId; }
62 void Set_Time_Stamp(
int _timeStamp) { timeStamp = _timeStamp; }
63 int Get_Time_Stamp()
const {
return timeStamp; }
64 bool Get_Bit(
int)
const;
65 void Set_Bit(
int,
bool);
69class CompressedVisTableClass
72 CompressedVisTableClass() : BufferSize(0), Buffer(0)
75 CompressedVisTableClass(VisTableClass *bits) : BufferSize(0), Buffer(0)
77 Compress(bits->Get_Bytes(),bits->Get_Byte_Count());
79 CompressedVisTableClass(CompressedVisTableClass &that) : BufferSize(0), Buffer(0)
83 ~CompressedVisTableClass()
90 CompressedVisTableClass& operator=(
const CompressedVisTableClass& that)
96 BufferSize = that.BufferSize;
97 Buffer =
new unsigned char[BufferSize];
98 memcpy(Buffer,that.Buffer,BufferSize);
101 unsigned char *Get_Bytes()
109 void Load(ChunkLoadClass &cload);
110 void Save(ChunkSaveClass &csave);
111 void Compress(
unsigned char *bytes,
int src_size);
112 void Decompress(
unsigned char *bytes,
int src_size);
115 unsigned char *Buffer;