Panda3D

Public Member Functions | Static Public Member Functions | Friends | List of all members
IffInputFile Class Reference

A wrapper around an istream used for reading an IFF file. More...

`#include "iffInputFile.h"`

Inheritance diagram for IffInputFile:

## Public Member Functions
void | align ()
| If the current file pointer is not positioned on an even-byte boundary, reads and discards one byte so that it is. More...
virtual TypeHandle | force_init_type ()
PN_stdfloat | get_be_float32 ()
| Extracts a 32-bit big-endian single-precision floating-point number. More...
int16_t | get_be_int16 ()
| Extracts a signed 16-bit big-endian integer. More...
int32_t | get_be_int32 ()
| Extracts a signed 32-bit big-endian integer. More...
uint16_t | get_be_uint16 ()
| Extracts an unsigned 16-bit big-endian integer. More...
uint32_t | get_be_uint32 ()
| Extracts an unsigned 32-bit big-endian integer. More...
size_t | get_bytes_read () const
| Returns the number of bytes read so far from the input file. More...
const Filename & | get_filename () const
| Returns the filename that the InputFile is currently opened on, if available. More...
IffId | get_id ()
| Extracts a 4-character IFF ID. More...
int8_t | get_int8 ()
| Extracts a signed 8-bit integer. More...
std::string | get_string ()
| Extracts a null-terminated string. More...
virtual TypeHandle | get_type () const
uint8_t | get_uint8 ()
| Extracts an unsigned 8-bit integer. More...
bool | is_eof () const
| Returns true if the last read operation failed because of reaching EOF, false otherwise. More...
bool | open_read (Filename filename)
| Attempts to open the indicated filename for reading. More...
| PT (IffChunk) get_chunk()
| PT (IffChunk) get_subchunk(IffChunk *context)
bool | read_byte (char &byte)
| Reads a single byte. More...
bool | read_bytes (Datagram &datagram, int length)
| Reads a series of bytes, and stores them in the indicated Datagram. More...
void | set_filename (const Filename &filename)
| Indicates the filename that the InputFile is currently opened on. More...
void | set_input (std::istream *input, bool owns_istream)
| Sets up the input to use an arbitrary istream. More...
bool | skip_bytes (int length)
| Reads a series of bytes, but does not store them. More...
Public Member Functions inherited from TypedObject
| TypedObject (const TypedObject &copy)=default
TypedObject * | as_typed_object ()
| Returns the object, upcast (if necessary) to a TypedObject pointer. More...
const TypedObject * | as_typed_object () const
| Returns the object, upcast (if necessary) to a TypedObject pointer. More...
int | get_best_parent_from_Set (const std::set< int > &) const
int | get_type_index () const
| Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More...
bool | is_exact_type (TypeHandle handle) const
| Returns true if the current object is the indicated type exactly. More...
bool | is_of_type (TypeHandle handle) const
| Returns true if the current object is or derives from the indicated type. More...
TypedObject & | operator= (const TypedObject &copy)=default
Public Member Functions inherited from MemoryBase
void | operator delete (void *, void *)
void | operator delete (void *ptr)
void | operator delete[] (void *, void *)
void | operator delete[] (void *ptr)
void * | operator new (size_t size)
void * | operator new (size_t size, void *ptr)
void * | operator new[] (size_t size)
void * | operator new[] (size_t size, void *ptr)

## Static Public Member Functions
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from TypedObject
static TypeHandle | get_class_type ()
static void | init_type ()
| This function is declared non-inline to work around a compiler bug in g++ 2.96. More...

## Friends
class | IffChunk

## Additional Inherited Members
Public Attributes inherited from TypedObject
| get_type

## Detailed Description

A wrapper around an istream used for reading an IFF file.

Definition at line 30 of file iffInputFile.h.

## Member Function Documentation

## ◆ align()

void IffInputFile::align | ( |  | ) |
| inline

If the current file pointer is not positioned on an even-byte boundary, reads and discards one byte so that it is.

Definition at line 52 of file iffInputFile.I.

Referenced by get_string(), and IffGenericChunk::read_iff().

## ◆ get_be_float32()

PN_stdfloat IffInputFile::get_be_float32 | ( |  | ) |

Extracts a 32-bit big-endian single-precision floating-point number.

Definition at line 164 of file iffInputFile.cxx.

References DatagramIterator::get_be_float32(), and read_bytes().

Referenced by LwoInputFile::get_vec3().

## ◆ get_be_int16()

int16_t IffInputFile::get_be_int16 | ( |  | ) |

Extracts a signed 16-bit big-endian integer.

Definition at line 112 of file iffInputFile.cxx.

References DatagramIterator::get_be_int16(), and read_bytes().

## ◆ get_be_int32()

int32_t IffInputFile::get_be_int32 | ( |  | ) |

Extracts a signed 32-bit big-endian integer.

Definition at line 125 of file iffInputFile.cxx.

References DatagramIterator::get_be_int32(), and read_bytes().

Referenced by LwoClip::read_iff().

## ◆ get_be_uint16()

uint16_t IffInputFile::get_be_uint16 | ( |  | ) |

Extracts an unsigned 16-bit big-endian integer.

Definition at line 138 of file iffInputFile.cxx.

References DatagramIterator::get_be_uint16(), and read_bytes().

Referenced by LwoInputFile::get_vx().

## ◆ get_be_uint32()

uint32_t IffInputFile::get_be_uint32 | ( |  | ) |

Extracts an unsigned 32-bit big-endian integer.

Definition at line 151 of file iffInputFile.cxx.

References DatagramIterator::get_be_uint32(), and read_bytes().

Referenced by PT().

## ◆ get_bytes_read()

size_t IffInputFile::get_bytes_read | ( |  | ) | const
| inline

Returns the number of bytes read so far from the input file.

Definition at line 43 of file iffInputFile.I.

Referenced by PT(), and IffGenericChunk::read_iff().

## ◆ get_filename()

const Filename & IffInputFile::get_filename | ( |  | ) | const
| inline

Returns the filename that the InputFile is currently opened on, if available.

Definition at line 26 of file iffInputFile.I.

## ◆ get_id()

IffId IffInputFile::get_id | ( |  | ) |

Extracts a 4-character IFF ID.

Definition at line 195 of file iffInputFile.cxx.

References Datagram::get_data(), and read_bytes().

Referenced by PT().

## ◆ get_int8()

int8_t IffInputFile::get_int8 | ( |  | ) |

Extracts a signed 8-bit integer.

Definition at line 86 of file iffInputFile.cxx.

References DatagramIterator::get_int8(), and read_bytes().

## ◆ get_string()

std::string IffInputFile::get_string | ( |  | ) |

Extracts a null-terminated string.

Definition at line 177 of file iffInputFile.cxx.

References align(), and read_byte().

Referenced by LwoInputFile::get_filename(), and LwoSurface::read_iff().

## ◆ get_uint8()

uint8_t IffInputFile::get_uint8 | ( |  | ) |

Extracts an unsigned 8-bit integer.

Definition at line 99 of file iffInputFile.cxx.

References DatagramIterator::get_int8(), and read_bytes().

## ◆ is_eof()

bool IffInputFile::is_eof | ( |  | ) | const
| inline

Returns true if the last read operation failed because of reaching EOF, false otherwise.

Definition at line 35 of file iffInputFile.I.

Referenced by PT(), read_byte(), read_bytes(), and skip_bytes().

## ◆ open_read()

bool IffInputFile::open_read | ( | Filename | filename | ) |

Attempts to open the indicated filename for reading.

Returns true if successful, false otherwise.

Definition at line 49 of file iffInputFile.cxx.

References Filename::set_binary().

## ◆ read_byte()

bool IffInputFile::read_byte | ( | char & | byte | ) |

Reads a single byte.

Returns true if successful, false otherwise.

Definition at line 308 of file iffInputFile.cxx.

References is_eof().

Referenced by get_string(), and skip_bytes().

## ◆ read_bytes()

bool IffInputFile::read_bytes | ( | Datagram & | datagram,
|  | int | length
| ) |  |

Reads a series of bytes, and stores them in the indicated Datagram.

Returns true if successful, false otherwise.

Definition at line 324 of file iffInputFile.cxx.

References is_eof().

Referenced by get_be_float32(), get_be_int16(), get_be_int32(), get_be_uint16(), get_be_uint32(), get_id(), get_int8(), get_uint8(), and IffGenericChunk::read_iff().

## ◆ set_filename()

void IffInputFile::set_filename | ( | const Filename & | filename | ) |
| inline

Indicates the filename that the InputFile is currently opened on.

Definition at line 17 of file iffInputFile.I.

## ◆ set_input()

void IffInputFile::set_input | ( | std::istream * | input,
|  | bool | owns_istream
| ) |  |

Sets up the input to use an arbitrary istream.

If owns_istream is true, the istream will be deleted (via vfs->close_read_file()) when the IffInputFile destructs.

Definition at line 70 of file iffInputFile.cxx.

## ◆ skip_bytes()

bool IffInputFile::skip_bytes | ( | int | length | ) |

Reads a series of bytes, but does not store them.

Returns true if successful, false otherwise.

Definition at line 347 of file iffInputFile.cxx.

References is_eof(), and read_byte().

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

- pandatool/src/lwo/iffInputFile.h
- pandatool/src/lwo/iffInputFile.cxx
- pandatool/src/lwo/iffInputFile.I