Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

FFTCompressor Class Reference

#include <fftCompressor.h>

List of all members.

Public Member Functions

 FFTCompressor ()
void set_quality (int quality)
int get_quality () const
void set_transpose_quats (bool flag)
bool get_transpose_quats () const
void write_header (Datagram &datagram)
void write_reals (Datagram &datagram, const float *array, int length)
void write_hprs (Datagram &datagram, const LVecBase3f *array, int length)
bool read_header (DatagramIterator &di)
bool read_reals (DatagramIterator &di, vector_float &array)
bool read_hprs (DatagramIterator &di, vector_LVecBase3f &array)

Static Public Member Functions

bool is_compression_available ()
void free_storage ()

Private Types

enum  RunWidth {
  RW_width_mask = 0xc0, RW_length_mask = 0x3f, RW_0 = 0x00, RW_8 = 0x40,
  RW_16 = 0x80, RW_32 = 0xc0, RW_double = 0xff, RW_invalid = 0x01
}

Private Member Functions

int write_run (Datagram &datagram, RunWidth run_width, const vector_double &run)
int read_run (DatagramIterator &di, vector_double &run)
double get_scale_factor (int i, int length) const

Static Private Member Functions

double interpolate (double t, double a, double b)

Private Attributes

int _quality
double _fft_offset
double _fft_factor
double _fft_exponent
bool _transpose_quats


Member Enumeration Documentation

enum FFTCompressor::RunWidth [private]
 

Enumeration values:
RW_width_mask 
RW_length_mask 
RW_0 
RW_8 
RW_16 
RW_32 
RW_double 
RW_invalid 

Definition at line 71 of file fftCompressor.h.

Referenced by read_run(), and write_reals().


Constructor & Destructor Documentation

FFTCompressor::FFTCompressor  ) 
 

Definition at line 49 of file fftCompressor.cxx.

References _transpose_quats, and set_quality().


Member Function Documentation

void FFTCompressor::free_storage  )  [static]
 

Definition at line 719 of file fftCompressor.cxx.

int FFTCompressor::get_quality  )  const
 

Definition at line 160 of file fftCompressor.cxx.

References _quality.

double FFTCompressor::get_scale_factor int  i,
int  length
const [private]
 

Definition at line 902 of file fftCompressor.cxx.

References _fft_exponent, _fft_factor, _fft_offset, length, and pow().

Referenced by read_reals(), and write_reals().

bool FFTCompressor::get_transpose_quats  )  const
 

Definition at line 184 of file fftCompressor.cxx.

References _transpose_quats.

double FFTCompressor::interpolate double  t,
double  a,
double  b
[static, private]
 

Definition at line 919 of file fftCompressor.cxx.

References a, b, and t.

Referenced by set_quality().

bool FFTCompressor::is_compression_available  )  [static]
 

Definition at line 66 of file fftCompressor.cxx.

Referenced by AnimChannelScalarTable::write_datagram(), and AnimChannelMatrixXfmTable::write_datagram().

bool FFTCompressor::read_header DatagramIterator di  ) 
 

Definition at line 479 of file fftCompressor.cxx.

References _fft_exponent, _fft_factor, _fft_offset, _quality, DatagramIterator::get_float64(), DatagramIterator::get_int8(), and set_quality().

Referenced by AnimChannelScalarTable::fillin(), and AnimChannelMatrixXfmTable::fillin().

bool FFTCompressor::read_hprs DatagramIterator di,
vector_LVecBase3f &  array
 

Definition at line 586 of file fftCompressor.cxx.

References _quality, decompose_matrix(), IS_THRESHOLD_EQUAL, p, r, read_reals(), and scale.

Referenced by AnimChannelMatrixXfmTable::fillin().

bool FFTCompressor::read_reals DatagramIterator di,
vector_float &  array
 

Definition at line 517 of file fftCompressor.cxx.

References _quality, data, DatagramIterator::get_float32(), DatagramIterator::get_int32(), get_scale_factor(), length, read_run(), and scale.

Referenced by AnimChannelScalarTable::fillin(), AnimChannelMatrixXfmTable::fillin(), and read_hprs().

int FFTCompressor::read_run DatagramIterator di,
vector_double &  run
[private]
 

Definition at line 831 of file fftCompressor.cxx.

References DatagramIterator::get_float64(), DatagramIterator::get_int16(), DatagramIterator::get_int32(), DatagramIterator::get_int8(), DatagramIterator::get_uint16(), DatagramIterator::get_uint8(), length, PN_uint8, RunWidth, RW_0, RW_16, RW_32, RW_8, RW_double, RW_length_mask, RW_width_mask, and start.

Referenced by read_reals().

void FFTCompressor::set_quality int  quality  ) 
 

Definition at line 98 of file fftCompressor.cxx.

References _fft_exponent, _fft_factor, _fft_offset, _quality, fft_exponent, fft_factor, fft_offset, interpolate(), and t.

Referenced by FFTCompressor(), read_header(), AnimChannelScalarTable::write_datagram(), and AnimChannelMatrixXfmTable::write_datagram().

void FFTCompressor::set_transpose_quats bool  flag  ) 
 

Definition at line 173 of file fftCompressor.cxx.

References _transpose_quats.

void FFTCompressor::write_header Datagram datagram  ) 
 

Definition at line 198 of file fftCompressor.cxx.

References _fft_exponent, _fft_factor, _fft_offset, _quality, Datagram::add_float64(), and Datagram::add_int8().

Referenced by AnimChannelScalarTable::write_datagram(), and AnimChannelMatrixXfmTable::write_datagram().

void FFTCompressor::write_hprs Datagram datagram,
const LVecBase3f *  array,
int  length
 

Definition at line 320 of file fftCompressor.cxx.

References _quality, compose_matrix(), decompose_matrix(), length, p, r, scale, and write_reals().

Referenced by AnimChannelMatrixXfmTable::write_datagram().

void FFTCompressor::write_reals Datagram datagram,
const float *  array,
int  length
 

Definition at line 214 of file fftCompressor.cxx.

References _quality, a, Datagram::add_float32(), Datagram::add_int32(), cfloor(), data, get_scale_factor(), length, RunWidth, RW_0, RW_16, RW_32, RW_8, RW_double, RW_invalid, scale_factor, and write_run().

Referenced by AnimChannelScalarTable::write_datagram(), AnimChannelMatrixXfmTable::write_datagram(), and write_hprs().

int FFTCompressor::write_run Datagram datagram,
RunWidth  run_width,
const vector_double &  run
[private]
 

Definition at line 746 of file fftCompressor.cxx.

References Datagram::add_float64(), Datagram::add_int16(), Datagram::add_int32(), Datagram::add_int8(), Datagram::add_uint16(), Datagram::add_uint8(), PN_int8, RW_0, RW_16, RW_32, RW_8, RW_double, RW_invalid, and RW_length_mask.

Referenced by write_reals().


Member Data Documentation

double FFTCompressor::_fft_exponent [private]
 

Definition at line 95 of file fftCompressor.h.

Referenced by get_scale_factor(), read_header(), set_quality(), and write_header().

double FFTCompressor::_fft_factor [private]
 

Definition at line 94 of file fftCompressor.h.

Referenced by get_scale_factor(), read_header(), set_quality(), and write_header().

double FFTCompressor::_fft_offset [private]
 

Definition at line 93 of file fftCompressor.h.

Referenced by get_scale_factor(), read_header(), set_quality(), and write_header().

int FFTCompressor::_quality [private]
 

Definition at line 92 of file fftCompressor.h.

Referenced by get_quality(), read_header(), read_hprs(), read_reals(), set_quality(), write_header(), write_hprs(), and write_reals().

bool FFTCompressor::_transpose_quats [private]
 

Definition at line 96 of file fftCompressor.h.

Referenced by FFTCompressor(), get_transpose_quats(), and set_transpose_quats().


The documentation for this class was generated from the following files:
Generated on Fri Apr 18 00:12:16 2003 for Panda by doxygen1.3