Panda3D
Public Member Functions | Static Public Member Functions | Protected Member Functions
FltTransformScale Class Reference

A transformation that applies a (possibly nonuniform) scale. More...

#include "fltTransformScale.h"

Inheritance diagram for FltTransformScale:
FltTransformRecord FltRecord TypedReferenceCount TypedObject ReferenceCount MemoryBase MemoryBase

List of all members.

Public Member Functions

 FltTransformScale (FltHeader *header)
virtual TypeHandle force_init_type ()
const LPoint3dget_center () const
const LVecBase3get_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 &center, 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.

Detailed Description

A transformation that applies a (possibly nonuniform) scale.

Definition at line 27 of file fltTransformScale.h.


Member Function Documentation

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().

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.

void FltTransformScale::set ( const LPoint3d center,
const LVecBase3 scale 
)

Defines the scale.

Definition at line 38 of file fltTransformScale.cxx.


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations