Alphabetical Class Index   Class Hierarchy   Compound Members   File Members   File List  

TK_Image Class Reference

Handles the TKE_Image opcode. More...

#include <BOpcodeHandler.h>

Public Member Functions

TK_Status Clone (BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const
 
TK_Status compress_image_ascii (BStreamFileToolkit &tk)
 
char const * GetBytes () const
 
char * GetBytes ()
 
int GetCompression () const
 
double const * GetDPosition () const
 
int GetFormat () const
 
char const * GetName () const
 
char * GetName ()
 
int GetOptions () const
 
float const * GetPosition () const
 
char const * GetReference () const
 
char * GetReference ()
 
int const * GetSize () const
 
TK_Status Read (BStreamFileToolkit &tk)
 
TK_Status ReadAscii (BStreamFileToolkit &tk)
 Deprecated.
 
void Reset ()
 
void SetBytes (int size, char const *bytes=0, unsigned char data_format=TKO_Compression_None)
 
void SetCompression (int c)
 
void SetDPosition (double x, double y, double z)
 
void SetDPosition (double const *p)
 
void SetFormat (int f)
 
void SetName (char const *string)
 
void SetName (int length)
 
void SetOptions (int f)
 
void SetPosition (float x, float y, float z)
 
void SetPosition (float const *p)
 
void SetReference (char const *string)
 
void SetReference (int length)
 
void SetSize (int w, int h)
 
void SetSize (int const *s)
 
 TK_Image ()
 
TK_Status Write (BStreamFileToolkit &tk)
 
TK_Status WriteAscii (BStreamFileToolkit &tk)
 Deprecated.
 
- Public Member Functions inherited from BBaseOpcodeHandler
 BBaseOpcodeHandler (int op)
 
virtual TK_Status Execute (BStreamFileToolkit &tk)
 
unsigned char General_Flags () const
 
char const * GetLoggingString () const
 
char * GetLoggingString ()
 
virtual TK_Status Interpret (BStreamFileToolkit &tk, ID_Key key, int variant=0)
 
virtual TK_Status Interpret (BStreamFileToolkit &tk, ID_Key key, char const *special)
 
void LogDebug (BStreamFileToolkit &tk, char const *string=0)
 
virtual bool Match_Instance (BStreamFileToolkit const &tk, Recorded_Instance *instance)
 
virtual bool NeedsContext (BStreamFileToolkit &tk) const
 
bool NeedsTag () const
 
unsigned char Opcode () const
 
int Pass (BStreamFileToolkit &tk) const
 
void Set_General_Flags (int f)
 
void SetLoggingString (char const *segment)
 
void SetLoggingString (int length)
 
void SetNeedsTag (bool n)
 
TK_Status Tag (BStreamFileToolkit &tk, int variant=-1) const
 
bool Tagging (BStreamFileToolkit &tk) const
 
- Public Member Functions inherited from BControlledMemoryObject
void operator delete (void *p)
 force deallocation to happen in the stream toolkit's scope
 
void * operator new (size_t size)
 force allocation to happen in the stream toolkit's scope
 

Protected Member Functions

TK_Status compress_image (BStreamFileToolkit &tk, int active_work_area=0)
 internal use
 
TK_Status decompress_image (BStreamFileToolkit &tk, int active_work_area=0)
 internal use
 
TK_Status read_jpeg_header ()
 internal use
 
void set_data (int size, char const *bytes=0, unsigned char data_format=TKO_Compression_None)
 internal use
 
void set_name (char const *string)
 internal use
 
void set_name (int length)
 internal use
 
- Protected Member Functions inherited from BBaseOpcodeHandler
void add_segment (BStreamFileToolkit &tk, ID_Key key)
 for internal use only
 
void adjust_written (BStreamFileToolkit &tk, int count)
 for internal use only
 
void bytes_to_floats (unsigned char const *in, float *out, int count) const
 for internal use only
 
void decrease_nesting (BStreamFileToolkit &tk, int amount=1)
 for internal use only
 
bool Find_Instance (BStreamFileToolkit &tk, int val1, int val2, int val3)
 
bool Find_Item (BStreamFileToolkit &tk, ID_Key key) const
 
void fix (int *i, int n)
 for internal use only
 
void fix (short *s, int n)
 for internal use only
 
void fix_in (float *f, int n)
 for internal use only
 
void fix_in (double *d, int n)
 for internal use only
 
void fix_out (float *f, int n)
 for internal use only
 
void fix_out (double *d, int n)
 for internal use only
 
short flip (short s)
 for internal use only
 
int flip (int i)
 for internal use only
 
void floats_to_bytes (float const *in, unsigned char *out, int count) const
 for internal use only
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, int *rInts, unsigned int n)
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, const char *tag, unsigned char &value)
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, const char *tag, char &value)
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, const char *tag, unsigned short &value)
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, const char *tag, short &value)
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, const char *tag, int &value)
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, const char *tag, float &value)
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, const char *tag, float *rFloats, unsigned int n)
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, const char *tag, char *m_string, unsigned int n)
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, const char *tag, unsigned char *m_string, unsigned int n)
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, const char *tag, int *rInts, unsigned int n)
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, const char *tag, short *rShorts, unsigned int n)
 
TK_Status GetAsciiData (BStreamFileToolkit &tk, const char *tag, unsigned short *rShorts, unsigned int n)
 
TK_Status GetAsciiHex (BStreamFileToolkit &tk, const char *tag, unsigned char &value)
 
TK_Status GetAsciiHex (BStreamFileToolkit &tk, const char *tag, int &value)
 
TK_Status GetAsciiHex (BStreamFileToolkit &tk, const char *tag, char &value)
 
TK_Status GetAsciiHex (BStreamFileToolkit &tk, const char *tag, unsigned short &value)
 
TK_Status GetAsciiImageData (BStreamFileToolkit &tk, const char *tag, unsigned char *rValues, unsigned int n)
 
TK_Status GetData (BStreamFileToolkit &tk, char *b, int n)
 
TK_Status GetData (BStreamFileToolkit &tk, short *s, int n)
 
TK_Status GetData (BStreamFileToolkit &tk, int *i, int n)
 
TK_Status GetData (BStreamFileToolkit &tk, float *f, int n)
 
TK_Status GetData (BStreamFileToolkit &tk, double *d, int n)
 
TK_Status GetData (BStreamFileToolkit &tk, unsigned char *b, int n)
 
TK_Status GetData (BStreamFileToolkit &tk, unsigned short *s, int n)
 
TK_Status GetData (BStreamFileToolkit &tk, unsigned int *i, int n)
 
TK_Status GetData (BStreamFileToolkit &tk, char &c)
 
TK_Status GetData (BStreamFileToolkit &tk, short &s)
 
TK_Status GetData (BStreamFileToolkit &tk, int &i)
 
TK_Status GetData (BStreamFileToolkit &tk, unsigned char &b)
 
TK_Status GetData (BStreamFileToolkit &tk, unsigned short &s)
 
TK_Status GetData (BStreamFileToolkit &tk, unsigned int &i)
 
TK_Status GetData (BStreamFileToolkit &tk, float &f)
 
TK_Status GetData (BStreamFileToolkit &tk, double &d)
 
TK_Status GetGeneral (BStreamFileToolkit &tk)
 
void increase_nesting (BStreamFileToolkit &tk, int amount=1)
 for internal use only
 
ID_Key last_key (BStreamFileToolkit &tk) const
 obsolete
 
void log_opcode (BStreamFileToolkit &tk, unsigned int sequence, unsigned char opcode)
 for internal use only
 
TK_Status LookatData (BStreamFileToolkit &tk, unsigned char &b)
 
BBaseOpcodeHandlerOpcode_Handler (BStreamFileToolkit &tk, unsigned char op) const
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, char const *b, int n)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, short const *s, int n)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, int const *i, int n)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, float const *f, int n)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, unsigned char const *b, int n)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, unsigned short const *s, int n)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, unsigned int const *i, int n)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, char const &c)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, short const &s)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, int const &i)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, unsigned char const &b)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, unsigned short const &s)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, unsigned int const &i)
 
TK_Status PutAsciiData (BStreamFileToolkit &tk, char const *tag, float const &f)
 
TK_Status PutAsciiFlag (BStreamFileToolkit &tk, char const *tag, int const &i)
 
TK_Status PutAsciiHex (BStreamFileToolkit &tk, char const *tag, int const &i)
 
TK_Status PutAsciiMask (BStreamFileToolkit &tk, char const *tag, int const &i)
 
TK_Status PutAsciiOpcode (BStreamFileToolkit &tk, int adjust=1, bool is_end=false, bool want_newline=true)
 
TK_Status PutData (BStreamFileToolkit &tk, char const *b, int n)
 
TK_Status PutData (BStreamFileToolkit &tk, short const *s, int n)
 
TK_Status PutData (BStreamFileToolkit &tk, int const *i, int n)
 
TK_Status PutData (BStreamFileToolkit &tk, float const *f, int n)
 
TK_Status PutData (BStreamFileToolkit &tk, double const *d, int n)
 
TK_Status PutData (BStreamFileToolkit &tk, unsigned char const *b, int n)
 
TK_Status PutData (BStreamFileToolkit &tk, unsigned short const *s, int n)
 
TK_Status PutData (BStreamFileToolkit &tk, unsigned int const *i, int n)
 
TK_Status PutData (BStreamFileToolkit &tk, char const &c)
 
TK_Status PutData (BStreamFileToolkit &tk, short const &s)
 
TK_Status PutData (BStreamFileToolkit &tk, int const &i)
 
TK_Status PutData (BStreamFileToolkit &tk, unsigned char const &b)
 
TK_Status PutData (BStreamFileToolkit &tk, unsigned short const &s)
 
TK_Status PutData (BStreamFileToolkit &tk, unsigned int const &i)
 
TK_Status PutData (BStreamFileToolkit &tk, float const &f)
 
TK_Status PutData (BStreamFileToolkit &tk, double const &d)
 
TK_Status PutEndXMLTag (BStreamFileToolkit &tk, char const *tag)
 
TK_Status PutGeneral (BStreamFileToolkit &tk)
 
TK_Status PutOpcode (BStreamFileToolkit &tk, int adjust=1)
 
TK_Status PutStartXMLTag (BStreamFileToolkit &tk, char const *tag)
 
TK_Status Read_Referenced_Segment (BStreamFileToolkit &tk, int &i_progress)
 
TK_Status ReadAsciiLine (BStreamFileToolkit &tk, unsigned int *readSize=0)
 
TK_Status ReadAsciiWord (BStreamFileToolkit &tk, unsigned int *readSize=0)
 
TK_Status ReadEndOpcode (BStreamFileToolkit &tk)
 
void Record_Instance (BStreamFileToolkit &tk, ID_Key key, int variant, int val1, int val2, int val3) const
 
void Remember_Item (BStreamFileToolkit &tk, ID_Key key) const
 
ID_Key remove_segment (BStreamFileToolkit &tk)
 for internal use only
 
bool RemoveAngularBrackets (char *string)
 
bool RemoveQuotes (char *string)
 
void Revisit (BStreamFileToolkit &tk, float priority=0.0f, int variant=0) const
 
void set_last_key (BStreamFileToolkit &tk, ID_Key key)
 sets the given key as "most recent" on the toolkit for the purposes of associating keys with indices
 
TK_Status SkipNewlineAndTabs (BStreamFileToolkit &tk, unsigned int *readSize=0)
 
bool validate_count (int count, int limit=1<< 24) const
 

Protected Attributes

char * m_bytes
 
unsigned char m_bytes_format
 
unsigned char m_compression
 
float m_compression_quality
 
int m_data_size
 
double m_dposition [3]
 
float m_explicit_size [2]
 
unsigned char m_explicit_units [2]
 
unsigned char m_format
 
bool m_jpeg_native
 
char * m_name
 
int m_name_length
 
unsigned int m_options
 
float m_position [3]
 
char * m_reference
 
int m_reference_length
 
int m_size [2]
 
TK_Image_Data_Buffer m_work_area [2]
 
- Protected Attributes inherited from BBaseOpcodeHandler
char * m_ascii_buffer
 
int m_ascii_length
 
int m_ascii_progress
 Tracks the amount of data that has been read/written so far by GetAscii functions.
 
int m_ascii_size
 
int m_ascii_stage
 
unsigned char m_byte
 temporary
 
char m_char
 temporary
 
int m_debug_allocated
 
int m_debug_length
 
char * m_debug_string
 
unsigned char m_general_flags
 Basic flags common to many handlers.
 
int m_int
 temporary
 
bool m_needs_tag
 Indicate if this object explicitly needs tagging.
 
unsigned char m_opcode
 The opcode being handled by this particular object.
 
int m_progress
 Tracks the amount of data that has been read/written so far.
 
int m_stage
 The writing stage.
 
unsigned short m_unsigned_short
 temporary
 

Additional Inherited Members

- Static Protected Member Functions inherited from BBaseOpcodeHandler
static float read_float (char const *cp, char const **newcpp=0)
 
static float read_float (char const *cp, char **newcpp)
 for internal use only
 
static char * write_float (char *buffer, double f)
 for internal use only
 

Detailed Description

Handles the TKE_Image opcode.

TK_Image provides support for writing/reading the TKE_Image opcode object to/from an HSF file.

The HOOPS/3dGS scene-graph supports 'image' primitives which are defined by a position, size (width and height), and an array of bytes which is interpretted according to the specified format.

Constructor & Destructor Documentation

TK_Image::TK_Image ( )

constructor

Member Function Documentation

TK_Status TK_Image::Clone ( BStreamFileToolkit tk,
BBaseOpcodeHandler **  handler 
) const
virtual

Copies the opcode handler

Parameters
tkA reference to the BStreamFileToolkit object.
handlerA pointer to the opcode handler object. Passed by reference.
Returns
The result of the function call.

Reimplemented from BBaseOpcodeHandler.

char const* TK_Image::GetBytes ( ) const
inline

Returns the address of the data buffer

char* TK_Image::GetBytes ( )
inline

Returns the address of the data buffer, which may be modified directly

int TK_Image::GetCompression ( ) const
inline

Returns how the image data is compressed. Compression types are specified in TKO_Compression.

double const* TK_Image::GetDPosition ( ) const
inline

Returns the text position as the address of a float triplet

int TK_Image::GetFormat ( ) const
inline

Returns the format of the image. Formats are specified in TKO_Image_Formats.

char const* TK_Image::GetName ( ) const
inline

Returns the image name string

char* TK_Image::GetName ( )
inline

Returns the image name string buffer, which may be modified directly

int TK_Image::GetOptions ( ) const
inline

Returns the options of the image. Options are specified in TKO_Image_Formats.

float const* TK_Image::GetPosition ( ) const
inline

Returns the text position as the address of a float triplet

char const* TK_Image::GetReference ( ) const
inline

Returns the reference string

char* TK_Image::GetReference ( )
inline

Returns the reference string buffer, which may be modified directly

int const* TK_Image::GetSize ( ) const
inline

Returns the size of the image as the address of a pair of integers

TK_Status TK_Image::Read ( BStreamFileToolkit tk)
virtual

Reads data from the toolkit buffer, decodes/decompresses it, and maps it to the opcode handlers data members. User-defined classes which need to write out custom data should utilize one of the available GetData() methods.

Parameters
tkA reference to the BStreamFileToolkit object.
Returns
The result of the function call.

Implements BBaseOpcodeHandler.

void TK_Image::Reset ( )
virtual

Resets the current opcode handler. This is called by the toolkit when it is done processing an opcode. This method reinitializes any opcode handler variables and frees up temporary data.

Reimplemented from BBaseOpcodeHandler.

void TK_Image::SetBytes ( int  size,
char const *  bytes = 0,
unsigned char  data_format = TKO_Compression_None 
)
inline

Sets the image data. Allocates a buffer which can hold 'size' bytes, and if specified, copies the data from 'bytes' to the buffer

void TK_Image::SetCompression ( int  c)
inline

Sets how the image data is compressed. Compression types are specified in TKO_Compression.

void TK_Image::SetDPosition ( double  x,
double  y,
double  z 
)
inline

Sets the text position using discrete double values

void TK_Image::SetDPosition ( double const *  p)
inline

Sets the text position using a float triplet

References SetDPosition().

Referenced by SetDPosition().

void TK_Image::SetFormat ( int  f)
inline

Sets the format of the image. Formats are specified in TKO_Image_Formats.

References TKO_Image_Format_Mask.

void TK_Image::SetName ( char const *  string)
inline

Sets the name of the image. Allocates the buffer and copies the string

void TK_Image::SetName ( int  length)
inline

Sets the name buffer. Allocates a buffer large enough to hold a string of 'length' characters

void TK_Image::SetOptions ( int  f)
inline

Sets the options of the image. Options are specified in TKO_Image_Formats.

References TKO_Image_Options_Mask.

void TK_Image::SetPosition ( float  x,
float  y,
float  z 
)
inline

Sets the text position using discrete float values

void TK_Image::SetPosition ( float const *  p)
inline

Sets the text position using a float triplet

References SetPosition().

Referenced by SetPosition().

void TK_Image::SetReference ( char const *  string)

Sets the reference to the image data. Allocates the buffer and copies the string

void TK_Image::SetReference ( int  length)

Sets the reference buffer. Allocates a buffer large enough to hold a string of 'length' characters

void TK_Image::SetSize ( int  w,
int  h 
)
inline

Sets the size of the image using discrete integer values

void TK_Image::SetSize ( int const *  s)
inline

Sets the size of the image using an array of integer values

TK_Status TK_Image::Write ( BStreamFileToolkit tk)
virtual

Encodes/compresses data and writes data to the toolkit buffer. User-defined classes which need to write out custom data should utilize one of the available PutData() methods, and first write out the opcode associated with the group of binary data followed by the data itself.

Parameters
tkA reference to the BStreamFileToolkit object.
Returns
The result of the function call.

Implements BBaseOpcodeHandler.

Member Data Documentation

char* TK_Image::m_bytes
protected

internal use; Image data

unsigned char TK_Image::m_bytes_format
protected

internal use; Indicates if input data is already compressed

unsigned char TK_Image::m_compression
protected

internal use; How (or if) data is compressed in stream

float TK_Image::m_compression_quality
protected

internal use; Hint to the graphics system on how much to compress.

int TK_Image::m_data_size
protected

internal use; Explicit length of data block used only for precompressed images (dxt or jpeg) passed straight through.

double TK_Image::m_dposition[3]
protected

internal use; Insertion point

float TK_Image::m_explicit_size[2]
protected

internal use; non-pixel sizing

unsigned char TK_Image::m_explicit_units[2]
protected

internal use; non-pixel units

unsigned char TK_Image::m_format
protected

internal use; Format of data

bool TK_Image::m_jpeg_native
protected

TK_Image subclasses which talk to graphics systems that are able to insert jpeg directly should set this to true

char* TK_Image::m_name
protected

internal use; name applied to image (if any)

int TK_Image::m_name_length
protected

internal use; Length of name

unsigned int TK_Image::m_options
protected

internal use; Extra options (named, explicit size)

float TK_Image::m_position[3]
protected

internal use; Insertion point

char* TK_Image::m_reference
protected

internal use; external reference to image data (if any)

int TK_Image::m_reference_length
protected

internal use; Length of reference

int TK_Image::m_size[2]
protected

internal use; Width & Height

TK_Image_Data_Buffer TK_Image::m_work_area[2]
protected

internal use; Buffers for compression data


The documentation for this class was generated from the following file: