Panda3D
|
A transformation that applies a (possibly nonuniform) scale. More...
#include "fltTransformScale.h"
Public Member Functions | |
FltTransformScale (FltHeader *header) | |
virtual TypeHandle | force_init_type () |
const LPoint3d & | get_center () const |
const LVecBase3 & | get_scale () const |
virtual TypeHandle | get_type () const |
bool | has_center () const |
Returns true if the center is specified, false if it is not. | |
void | set (const LPoint3d ¢er, const LVecBase3 &scale) |
Defines the scale. | |
Static Public Member Functions | |
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. | |
Protected Member Functions | |
virtual bool | build_record (FltRecordWriter &writer) const |
Fills up the current record on the FltRecordWriter with data for this record, but does not advance the writer. | |
virtual bool | extract_record (FltRecordReader &reader) |
Fills in the information in this record based on the information given in the indicated datagram, whose opcode has already been read. |
A transformation that applies a (possibly nonuniform) scale.
Definition at line 27 of file fltTransformScale.h.
bool FltTransformScale::build_record | ( | FltRecordWriter & | writer | ) | const [protected, virtual] |
Fills up the current record on the FltRecordWriter with data for this record, but does not advance the writer.
Returns true on success, false if there is some error.
Reimplemented from FltRecord.
Definition at line 143 of file fltTransformScale.cxx.
References Datagram::add_be_float32(), Datagram::add_be_float64(), FltRecord::build_record(), Datagram::pad_bytes(), FltRecordWriter::set_opcode(), and FltRecordWriter::update_datagram().
bool FltTransformScale::extract_record | ( | FltRecordReader & | reader | ) | [protected, virtual] |
Fills in the information in this record based on the information given in the indicated datagram, whose opcode has already been read.
Returns true on success, false if the datagram is invalid.
Reimplemented from FltRecord.
Definition at line 109 of file fltTransformScale.cxx.
References FltRecord::check_remaining_size(), FltRecord::extract_record(), FltRecordReader::get_iterator(), FltRecordReader::get_opcode(), and DatagramIterator::skip_bytes().
bool FltTransformScale::has_center | ( | ) | const |
Returns true if the center is specified, false if it is not.
For some reason, MultiGen stores large negative numbers in for the center if it is not specified. It is unclear what the purpose of this is.
Definition at line 55 of file fltTransformScale.cxx.
Referenced by FltToEggLevelState::set_transform().
static void FltTransformScale::init_type | ( | ) | [inline, static] |
This function is declared non-inline to work around a compiler bug in g++ 2.96.
Making it inline seems to cause problems in the optimizer.
Reimplemented from FltTransformRecord.
Definition at line 55 of file fltTransformScale.h.
Defines the scale.
Definition at line 38 of file fltTransformScale.cxx.