A combination rotation and scale. More...
#include "fltTransformRotateScale.h"
Public Member Functions | |
FltTransformRotateScale (FltHeader *header) | |
virtual TypeHandle | force_init_type () |
PN_stdfloat | get_angle () const |
Returns the angle of rotation in degrees. More... | |
PN_stdfloat | get_axis_scale () const |
Returns the scale factor in the direction of the axis. More... | |
const LPoint3d & | get_center () const |
PN_stdfloat | get_overall_scale () const |
Returns the overall scale factor. More... | |
const LPoint3d & | get_reference_point () const |
const LPoint3d & | get_to_point () const |
virtual TypeHandle | get_type () const |
void | set (const LPoint3d ¢er, const LPoint3d &reference_point, const LPoint3d &to_point, bool axis_scale) |
Defines the transform explicitly. More... | |
Public Member Functions inherited from FltTransformRecord | |
FltTransformRecord (FltHeader *header) | |
const LMatrix4d & | get_matrix () const |
Returns the transform matrix represented by this particular component of the transform. More... | |
Public Member Functions inherited from FltRecord | |
FltRecord (FltHeader *header) | |
void | add_ancillary (FltRecord *ancillary) |
Adds a new unsupported ancillary record to the end of the list of ancillary records for this record. More... | |
void | add_child (FltRecord *child) |
Adds a new child to the end of the list of children for this record. More... | |
void | add_extension (FltRecord *extension) |
Adds a new extension to the end of the list of extensions for this record. More... | |
void | add_subface (FltRecord *subface) |
Adds a new subface to the end of the list of subfaces for this record. More... | |
virtual void | apply_converted_filenames () |
Walks the hierarchy at this record and below and copies the _converted_filename record into the _orig_filename record, so the flt file will be written out with the converted filename instead of what was originally read in. More... | |
void | check_remaining_size (const DatagramIterator &di, const std::string &name=std::string()) const |
Checks that the iterator has no bytes left, as it should at the end of a successfully read record. More... | |
void | clear_ancillary () |
Removes all unsupported ancillary records from this record. More... | |
void | clear_children () |
Removes all children from this record. More... | |
void | clear_comment () |
Removes the comment for this record. More... | |
void | clear_extensions () |
Removes all extensions from this record. More... | |
void | clear_subfaces () |
Removes all subfaces from this record. More... | |
FltRecord * | get_ancillary (int n) const |
Returns the nth unsupported ancillary record of this record. More... | |
FltRecord * | get_child (int n) const |
Returns the nth child of this record. More... | |
const std::string & | get_comment () const |
Retrieves the comment for this record, or empty string if the record has no comment. More... | |
FltRecord * | get_extension (int n) const |
Returns the nth extension of this record. More... | |
int | get_num_ancillary () const |
Returns the number of unsupported ancillary records of this record. More... | |
int | get_num_children () const |
Returns the number of child records of this record. More... | |
int | get_num_extensions () const |
Returns the number of extension attribute records for this object. More... | |
int | get_num_subfaces () const |
Returns the number of subface records of this record. More... | |
FltRecord * | get_subface (int n) const |
Returns the nth subface of this record. More... | |
bool | has_comment () const |
Returns true if this record has a nonempty comment, false otherwise. More... | |
virtual void | output (std::ostream &out) const |
Writes a quick one-line description of the record, but not its children. More... | |
void | set_comment (const std::string &comment) |
Changes the comment for this record. More... | |
virtual void | write (std::ostream &out, int indent_level=0) const |
Writes a multiple-line description of the record and all of its children. More... | |
Public Member Functions inherited from TypedReferenceCount | |
TypedReferenceCount (const TypedReferenceCount ©) | |
void | operator= (const TypedReferenceCount ©) |
Public Member Functions inherited from TypedObject | |
TypedObject (const TypedObject ©)=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 ©)=default |
Public Member Functions inherited from ReferenceCount | |
int | get_ref_count () const |
WeakReferenceList * | get_weak_list () const |
Returns the WeakReferenceList associated with this ReferenceCount object. More... | |
bool | has_weak_list () const |
Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More... | |
void | local_object () |
This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More... | |
void | ref () const |
Explicitly increments the reference count. More... | |
bool | ref_if_nonzero () const |
Atomically increases the reference count of this object if it is not zero. More... | |
bool | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
bool | test_ref_count_nonzero () const |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
virtual bool | unref () const |
Explicitly decrements the reference count. More... | |
WeakReferenceList * | weak_ref () |
Adds the indicated PointerToVoid as a weak reference to this object. More... | |
void | weak_unref () |
Removes the indicated PointerToVoid as a weak reference to this object. More... | |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static void | init_type () |
Static Public Member Functions inherited from FltTransformRecord | |
static TypeHandle | get_class_type () |
static void | init_type () |
Static Public Member Functions inherited from FltRecord | |
static TypeHandle | get_class_type () |
static void | init_type () |
Static Public Member Functions inherited from TypedReferenceCount | |
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... | |
Static Public Member Functions inherited from ReferenceCount | |
static TypeHandle | get_class_type () |
static void | init_type () |
Additional Inherited Members | |
Public Attributes inherited from TypedObject | |
get_type | |
Public Attributes inherited from ReferenceCount | |
get_ref_count | |
Returns the current reference count. More... | |
A combination rotation and scale.
This is sometimes called "Rotate To Point" within MultiGen.
Definition at line 25 of file fltTransformRotateScale.h.
PN_stdfloat FltTransformRotateScale::get_angle | ( | ) | const |
Returns the angle of rotation in degrees.
Definition at line 111 of file fltTransformRotateScale.cxx.
PN_stdfloat FltTransformRotateScale::get_axis_scale | ( | ) | const |
Returns the scale factor in the direction of the axis.
Definition at line 103 of file fltTransformRotateScale.cxx.
PN_stdfloat FltTransformRotateScale::get_overall_scale | ( | ) | const |
Returns the overall scale factor.
Definition at line 95 of file fltTransformRotateScale.cxx.
void FltTransformRotateScale::set | ( | const LPoint3d & | center, |
const LPoint3d & | reference_point, | ||
const LPoint3d & | to_point, | ||
bool | axis_scale | ||
) |
Defines the transform explicitly.
The angle of rotation is determined by the angle between the reference point and the to point (relative to the center), and the scale factor is determined by the distance between the reference point and the center point. If axis_scale is true, the scale is along reference point axis only; otherwise, it is a uniform scale.
Definition at line 44 of file fltTransformRotateScale.cxx.