TransformState
from panda3d.core import TransformState
- class TransformState
- Bases: - NodeCachedReferenceCount- Indicates a coordinate-system transform on vertices. TransformStates are the primary means for storing transformations on the scene graph. - Transforms may be specified in one of two ways: componentwise, with a pos- hpr-scale, or with an arbitrary transform matrix. If you specify a transform componentwise, it will remember its original components. - TransformState objects are managed very much like RenderState objects. They are immutable and reference-counted automatically. - You should not attempt to create or modify a TransformState object directly. Instead, call one of the make() functions to create one for you. And instead of modifying a TransformState object, create a new one. - Inheritance diagram - __init__(*args, **kwargs)
 - cacheRef()
- C++ Interface: cache_ref(TransformState self) - /**
- Overrides this method to update PStats appropriately. 
 - */ 
 
 - cacheUnref()
- C++ Interface: cache_unref(TransformState self) - /**
- Overrides this method to update PStats appropriately. 
 - */ 
 
 - cache_ref()
- C++ Interface: cache_ref(TransformState self) - /**
- Overrides this method to update PStats appropriately. 
 - */ 
 
 - cache_unref()
- C++ Interface: cache_unref(TransformState self) - /**
- Overrides this method to update PStats appropriately. 
 - */ 
 
 - clearCache()
- C++ Interface: clear_cache() - /**
- Empties the cache of composed TransformStates. This makes every 
- TransformState forget what results when it is composed with other 
- TransformStates. 
- This will eliminate any TransformState objects that have been allocated but 
- have no references outside of the internal TransformState map. It will not 
- eliminate TransformState objects that are still in use. 
- Nowadays, this method should not be necessary, as reference-count cycles in 
- the composition cache should be automatically detected and broken. 
- The return value is the number of TransformStates freed by this operation. 
 - */ 
 
 - clear_cache()
- C++ Interface: clear_cache() - /**
- Empties the cache of composed TransformStates. This makes every 
- TransformState forget what results when it is composed with other 
- TransformStates. 
- This will eliminate any TransformState objects that have been allocated but 
- have no references outside of the internal TransformState map. It will not 
- eliminate TransformState objects that are still in use. 
- Nowadays, this method should not be necessary, as reference-count cycles in 
- the composition cache should be automatically detected and broken. 
- The return value is the number of TransformStates freed by this operation. 
 - */ 
 
 - compareTo()
- C++ Interface: compare_to(TransformState self, const TransformState other) compare_to(TransformState self, const TransformState other, bool uniquify_matrix) - /**
- Provides an arbitrary ordering among all unique TransformStates, so we can 
- store the essentially different ones in a big set and throw away the rest. 
- Note that if this returns 0, it doesn’t necessarily imply that operator == 
- returns true; it uses a very slightly different comparison threshold. 
 - */ 
- /**
- Provides an arbitrary ordering among all unique TransformStates, so we can 
- store the essentially different ones in a big set and throw away the rest. 
- Note that if this returns 0, it doesn’t necessarily imply that operator == 
- returns true; it uses a very slightly different comparison threshold. 
- If uniquify_matrix is true, then matrix-defined TransformStates are also 
- uniqified. If uniquify_matrix is false, then only component-defined 
- TransformStates are uniquified, which is less expensive. 
 - */ 
 
 - compare_to()
- C++ Interface: compare_to(TransformState self, const TransformState other) compare_to(TransformState self, const TransformState other, bool uniquify_matrix) - /**
- Provides an arbitrary ordering among all unique TransformStates, so we can 
- store the essentially different ones in a big set and throw away the rest. 
- Note that if this returns 0, it doesn’t necessarily imply that operator == 
- returns true; it uses a very slightly different comparison threshold. 
 - */ 
- /**
- Provides an arbitrary ordering among all unique TransformStates, so we can 
- store the essentially different ones in a big set and throw away the rest. 
- Note that if this returns 0, it doesn’t necessarily imply that operator == 
- returns true; it uses a very slightly different comparison threshold. 
- If uniquify_matrix is true, then matrix-defined TransformStates are also 
- uniqified. If uniquify_matrix is false, then only component-defined 
- TransformStates are uniquified, which is less expensive. 
 - */ 
 
 - componentsGiven()
- C++ Interface: components_given(TransformState self) - /**
- Returns true if the transform was specified componentwise, or false if it 
- was specified with a general 4x4 matrix. If this is true, the components 
- returned by get_pos() and get_scale() will be exactly those that were set; 
- otherwise, these functions will return computed values. If this is true, 
- the rotation may have been set either with a hpr trio or with a quaternion; 
- hpr_given() or quat_given() can resolve the difference. 
 - */ 
 
 - components_given()
- C++ Interface: components_given(TransformState self) - /**
- Returns true if the transform was specified componentwise, or false if it 
- was specified with a general 4x4 matrix. If this is true, the components 
- returned by get_pos() and get_scale() will be exactly those that were set; 
- otherwise, these functions will return computed values. If this is true, 
- the rotation may have been set either with a hpr trio or with a quaternion; 
- hpr_given() or quat_given() can resolve the difference. 
 - */ 
 
 - compose()
- C++ Interface: compose(TransformState self, const TransformState other) - /**
- Returns a new TransformState object that represents the composition of this 
- state with the other state. 
- The result of this operation is cached, and will be retained as long as 
- both this TransformState object and the other TransformState object 
- continue to exist. Should one of them destruct, the cached entry will be 
- removed, and its pointer will be allowed to destruct as well. 
 - */ 
 
 - garbageCollect()
- C++ Interface: garbage_collect() - /**
- Performs a garbage-collection cycle. This must be called periodically if 
- garbage-collect-states is true to ensure that TransformStates get cleaned 
- up appropriately. It does no harm to call it even if this variable is not 
- true, but there is probably no advantage in that case. 
 - */ 
 
 - garbage_collect()
- C++ Interface: garbage_collect() - /**
- Performs a garbage-collection cycle. This must be called periodically if 
- garbage-collect-states is true to ensure that TransformStates get cleaned 
- up appropriately. It does no harm to call it even if this variable is not 
- true, but there is probably no advantage in that case. 
 - */ 
 
 - getClassType()
- C++ Interface: get_class_type() 
 - getCompositionCache()
- C++ Interface: get_composition_cache(TransformState self) 
 - getCompositionCacheNumEntries()
- C++ Interface: get_composition_cache_num_entries(TransformState self) - /**
- Returns the number of entries in the composition cache for this 
- TransformState. This is the number of other TransformStates whose 
- composition with this one has been cached. This number is not useful for 
- any practical reason other than performance analysis. 
 - */ 
 
 - getCompositionCacheResult()
- C++ Interface: get_composition_cache_result(TransformState self, int n) - /**
- Returns the result TransformState of the nth element in the composition 
- cache. Returns NULL if there doesn’t happen to be an entry in the nth 
- element. 
- In general, a->compose(a->get_composition_cache_source(n)) == 
- a->get_composition_cache_result(n). 
- This has no practical value other than for examining the cache for 
- performance analysis. 
 - */ 
 
 - getCompositionCacheSize()
- C++ Interface: get_composition_cache_size(TransformState self) - /**
- Returns the number of slots in the composition cache for this 
- TransformState. You may use this as an upper bound when walking through 
- all of the composition cache results via get_composition_cache_source() or 
- result(). 
- This has no practical value other than for examining the cache for 
- performance analysis. 
 - */ 
 
 - getCompositionCacheSource()
- C++ Interface: get_composition_cache_source(TransformState self, int n) - /**
- Returns the source TransformState of the nth element in the composition 
- cache. Returns NULL if there doesn’t happen to be an entry in the nth 
- element. See get_composition_cache_result(). 
- This has no practical value other than for examining the cache for 
- performance analysis. 
 - */ 
 
 - getGeomRendering()
- C++ Interface: get_geom_rendering(TransformState self, int geom_rendering) - /**
- Returns the union of the Geom::GeomRendering bits that will be required 
- once this TransformState is applied to a geom which includes the indicated 
- geom_rendering bits. The RenderState’s get_geom_rendering() should already 
- have been applied. 
 - */ 
 
 - getHash()
- C++ Interface: get_hash(TransformState self) - /**
- Returns a suitable hash value for phash_map. 
 - */ 
 
 - getHpr()
- C++ Interface: get_hpr(TransformState self) - /**
- Returns the rotation component of the transform as a trio of Euler angles. 
- It is an error to call this if has_components() returned false. 
 - */ 
 
 - getInverse()
- C++ Interface: get_inverse(TransformState self) - /**
- Returns the inverse of this transform. If you are going to immediately 
- compose this result with another TransformState, it is faster to do it in 
- one operation with invert_compose(). 
 - */ 
 
 - getInverseMat()
- C++ Interface: get_inverse_mat(TransformState self) - /**
- Returns the inverse of the matrix, or nullptr if it’s singular. 
 - */ 
 
 - getInvertCompositionCache()
- C++ Interface: get_invert_composition_cache(TransformState self) 
 - getInvertCompositionCacheNumEntries()
- C++ Interface: get_invert_composition_cache_num_entries(TransformState self) - /**
- Returns the number of entries in the invert_composition cache for this 
- TransformState. This is similar to the composition cache, but it records 
- cache entries for the invert_compose() operation. See 
- get_composition_cache_num_entries(). 
 - */ 
 
 - getInvertCompositionCacheResult()
- C++ Interface: get_invert_composition_cache_result(TransformState self, int n) - /**
- Returns the result TransformState of the nth element in the invert 
- composition cache. Returns NULL if there doesn’t happen to be an entry in 
- the nth element. 
- In general, a->invert_compose(a->get_invert_composition_cache_source(n)) == 
- a->get_invert_composition_cache_result(n). 
- This has no practical value other than for examining the cache for 
- performance analysis. 
 - */ 
 
 - getInvertCompositionCacheSize()
- C++ Interface: get_invert_composition_cache_size(TransformState self) - /**
- Returns the number of slots in the composition cache for this 
- TransformState. You may use this as an upper bound when walking through 
- all of the composition cache results via 
- get_invert_composition_cache_source() or result(). 
- This has no practical value other than for examining the cache for 
- performance analysis. 
 - */ 
 
 - getInvertCompositionCacheSource()
- C++ Interface: get_invert_composition_cache_source(TransformState self, int n) - /**
- Returns the source TransformState of the nth element in the invert 
- composition cache. Returns NULL if there doesn’t happen to be an entry in 
- the nth element. See get_invert_composition_cache_result(). 
- This has no practical value other than for examining the cache for 
- performance analysis. 
 - */ 
 
 - getMat()
- C++ Interface: get_mat(TransformState self) - /**
- Returns the matrix that describes the transform. 
 - */ 
 
 - getMat3()
- C++ Interface: get_mat3(TransformState self) - /**
- Returns the 3x3 matrix that describes the 2-d transform. It is an error to 
- call this if is_2d() returned false. 
 - */ 
 
 - getNormQuat()
- C++ Interface: get_norm_quat(TransformState self) - /**
- Returns the rotation component of the transform as a quaternion. Unlike 
- the result of get_quat(), the return value of this method is guaranteed to 
- be normalized. It is an error to call this if has_components() returned 
- false. 
 - */ 
 
 - getNumStates()
- C++ Interface: get_num_states() - /**
- Returns the total number of unique TransformState objects allocated in the 
- world. This will go up and down during normal operations. 
 - */ 
 
 - getNumUnusedStates()
- C++ Interface: get_num_unused_states() - /**
- Returns the total number of TransformState objects that have been allocated 
- but have no references outside of the internal TransformState cache. 
- A nonzero return value is not necessarily indicative of leaked references; 
- it is normal for two TransformState objects, both of which have references 
- held outside the cache, to have the result of their composition stored 
- within the cache. This result will be retained within the cache until one 
- of the base TransformStates is released. 
- Use list_cycles() to get an idea of the number of actual “leaked” 
- TransformState objects. 
 - */ 
 
 - getPos()
- C++ Interface: get_pos(TransformState self) - // Force interrogate to make a copy as a temporary solution for #1625. - // Force interrogate to make a copy as a temporary solution for #1625. - /**
- Returns the pos component of the transform. It is an error to call this if 
- has_pos() returned false. 
 - */ 
 
 - getPos2d()
- C++ Interface: get_pos2d(TransformState self) - /**
- Returns the pos component of the 2-d transform. It is an error to call 
- this if has_pos() or is_2d() returned false. 
 - */ 
 
 - getQuat()
- C++ Interface: get_quat(TransformState self) - /**
- Returns the rotation component of the transform as a quaternion. The 
- return value will be normalized if a normalized quaternion was given to the 
- constructor (or if the quaternion was computed implicitly); it will be non- 
- normalized if a non-normalized quaternion was given to the constructor. 
- See also get_norm_quat(). 
- It is an error to call this if has_components() returned false. 
 - */ 
 
 - getRotate2d()
- C++ Interface: get_rotate2d(TransformState self) - /**
- Returns the rotation component of the 2-d transform as an angle in degrees 
- clockwise about the origin. It is an error to call this if 
- has_components() or is_2d() returned false. 
 - */ 
 
 - getScale()
- C++ Interface: get_scale(TransformState self) - /**
- Returns the scale component of the transform. It is an error to call this 
- if has_components() returned false. 
 - */ 
 
 - getScale2d()
- C++ Interface: get_scale2d(TransformState self) - /**
- Returns the scale component of the 2-d transform. It is an error to call 
- this if has_components() or is_2d() returned false. 
 - */ 
 
 - getShear()
- C++ Interface: get_shear(TransformState self) - /**
- Returns the shear component of the transform. It is an error to call this 
- if has_components() returned false. 
 - */ 
 
 - getShear2d()
- C++ Interface: get_shear2d(TransformState self) - /**
- Returns the shear component of the 2-d transform. It is an error to call 
- this if has_components() or is_2d() returned false. 
 - */ 
 
 - getStates()
- C++ Interface: get_states() 
 - getUniformScale()
- C++ Interface: get_uniform_scale(TransformState self) - /**
- Returns the scale component of the transform, as a single number. It is an 
- error to call this if has_uniform_scale() returned false. 
 - */ 
 
 - getUnique()
- C++ Interface: get_unique(TransformState self) - /**
- Returns the pointer to the unique TransformState in the cache that is 
- equivalent to this one. This may be the same pointer as this object, or it 
- may be a different pointer; but it will be an equivalent object, and it 
- will be a shared pointer. This may be called from time to time to improve 
- cache benefits. 
 - */ 
 
 - getUnusedStates()
- C++ Interface: get_unused_states() 
 - get_class_type()
- C++ Interface: get_class_type() 
 - get_composition_cache()
- C++ Interface: get_composition_cache(TransformState self) 
 - get_composition_cache_num_entries()
- C++ Interface: get_composition_cache_num_entries(TransformState self) - /**
- Returns the number of entries in the composition cache for this 
- TransformState. This is the number of other TransformStates whose 
- composition with this one has been cached. This number is not useful for 
- any practical reason other than performance analysis. 
 - */ 
 
 - get_composition_cache_result()
- C++ Interface: get_composition_cache_result(TransformState self, int n) - /**
- Returns the result TransformState of the nth element in the composition 
- cache. Returns NULL if there doesn’t happen to be an entry in the nth 
- element. 
- In general, a->compose(a->get_composition_cache_source(n)) == 
- a->get_composition_cache_result(n). 
- This has no practical value other than for examining the cache for 
- performance analysis. 
 - */ 
 
 - get_composition_cache_size()
- C++ Interface: get_composition_cache_size(TransformState self) - /**
- Returns the number of slots in the composition cache for this 
- TransformState. You may use this as an upper bound when walking through 
- all of the composition cache results via get_composition_cache_source() or 
- result(). 
- This has no practical value other than for examining the cache for 
- performance analysis. 
 - */ 
 
 - get_composition_cache_source()
- C++ Interface: get_composition_cache_source(TransformState self, int n) - /**
- Returns the source TransformState of the nth element in the composition 
- cache. Returns NULL if there doesn’t happen to be an entry in the nth 
- element. See get_composition_cache_result(). 
- This has no practical value other than for examining the cache for 
- performance analysis. 
 - */ 
 
 - get_geom_rendering()
- C++ Interface: get_geom_rendering(TransformState self, int geom_rendering) - /**
- Returns the union of the Geom::GeomRendering bits that will be required 
- once this TransformState is applied to a geom which includes the indicated 
- geom_rendering bits. The RenderState’s get_geom_rendering() should already 
- have been applied. 
 - */ 
 
 - get_hash()
- C++ Interface: get_hash(TransformState self) - /**
- Returns a suitable hash value for phash_map. 
 - */ 
 
 - get_hpr()
- C++ Interface: get_hpr(TransformState self) - /**
- Returns the rotation component of the transform as a trio of Euler angles. 
- It is an error to call this if has_components() returned false. 
 - */ 
 
 - get_inverse()
- C++ Interface: get_inverse(TransformState self) - /**
- Returns the inverse of this transform. If you are going to immediately 
- compose this result with another TransformState, it is faster to do it in 
- one operation with invert_compose(). 
 - */ 
 
 - get_inverse_mat()
- C++ Interface: get_inverse_mat(TransformState self) - /**
- Returns the inverse of the matrix, or nullptr if it’s singular. 
 - */ 
 
 - get_invert_composition_cache()
- C++ Interface: get_invert_composition_cache(TransformState self) 
 - get_invert_composition_cache_num_entries()
- C++ Interface: get_invert_composition_cache_num_entries(TransformState self) - /**
- Returns the number of entries in the invert_composition cache for this 
- TransformState. This is similar to the composition cache, but it records 
- cache entries for the invert_compose() operation. See 
- get_composition_cache_num_entries(). 
 - */ 
 
 - get_invert_composition_cache_result()
- C++ Interface: get_invert_composition_cache_result(TransformState self, int n) - /**
- Returns the result TransformState of the nth element in the invert 
- composition cache. Returns NULL if there doesn’t happen to be an entry in 
- the nth element. 
- In general, a->invert_compose(a->get_invert_composition_cache_source(n)) == 
- a->get_invert_composition_cache_result(n). 
- This has no practical value other than for examining the cache for 
- performance analysis. 
 - */ 
 
 - get_invert_composition_cache_size()
- C++ Interface: get_invert_composition_cache_size(TransformState self) - /**
- Returns the number of slots in the composition cache for this 
- TransformState. You may use this as an upper bound when walking through 
- all of the composition cache results via 
- get_invert_composition_cache_source() or result(). 
- This has no practical value other than for examining the cache for 
- performance analysis. 
 - */ 
 
 - get_invert_composition_cache_source()
- C++ Interface: get_invert_composition_cache_source(TransformState self, int n) - /**
- Returns the source TransformState of the nth element in the invert 
- composition cache. Returns NULL if there doesn’t happen to be an entry in 
- the nth element. See get_invert_composition_cache_result(). 
- This has no practical value other than for examining the cache for 
- performance analysis. 
 - */ 
 
 - get_mat()
- C++ Interface: get_mat(TransformState self) - /**
- Returns the matrix that describes the transform. 
 - */ 
 
 - get_mat3()
- C++ Interface: get_mat3(TransformState self) - /**
- Returns the 3x3 matrix that describes the 2-d transform. It is an error to 
- call this if is_2d() returned false. 
 - */ 
 
 - get_norm_quat()
- C++ Interface: get_norm_quat(TransformState self) - /**
- Returns the rotation component of the transform as a quaternion. Unlike 
- the result of get_quat(), the return value of this method is guaranteed to 
- be normalized. It is an error to call this if has_components() returned 
- false. 
 - */ 
 
 - get_num_states()
- C++ Interface: get_num_states() - /**
- Returns the total number of unique TransformState objects allocated in the 
- world. This will go up and down during normal operations. 
 - */ 
 
 - get_num_unused_states()
- C++ Interface: get_num_unused_states() - /**
- Returns the total number of TransformState objects that have been allocated 
- but have no references outside of the internal TransformState cache. 
- A nonzero return value is not necessarily indicative of leaked references; 
- it is normal for two TransformState objects, both of which have references 
- held outside the cache, to have the result of their composition stored 
- within the cache. This result will be retained within the cache until one 
- of the base TransformStates is released. 
- Use list_cycles() to get an idea of the number of actual “leaked” 
- TransformState objects. 
 - */ 
 
 - get_pos()
- C++ Interface: get_pos(TransformState self) - // Force interrogate to make a copy as a temporary solution for #1625. - // Force interrogate to make a copy as a temporary solution for #1625. - /**
- Returns the pos component of the transform. It is an error to call this if 
- has_pos() returned false. 
 - */ 
 
 - get_pos2d()
- C++ Interface: get_pos2d(TransformState self) - /**
- Returns the pos component of the 2-d transform. It is an error to call 
- this if has_pos() or is_2d() returned false. 
 - */ 
 
 - get_quat()
- C++ Interface: get_quat(TransformState self) - /**
- Returns the rotation component of the transform as a quaternion. The 
- return value will be normalized if a normalized quaternion was given to the 
- constructor (or if the quaternion was computed implicitly); it will be non- 
- normalized if a non-normalized quaternion was given to the constructor. 
- See also get_norm_quat(). 
- It is an error to call this if has_components() returned false. 
 - */ 
 
 - get_rotate2d()
- C++ Interface: get_rotate2d(TransformState self) - /**
- Returns the rotation component of the 2-d transform as an angle in degrees 
- clockwise about the origin. It is an error to call this if 
- has_components() or is_2d() returned false. 
 - */ 
 
 - get_scale()
- C++ Interface: get_scale(TransformState self) - /**
- Returns the scale component of the transform. It is an error to call this 
- if has_components() returned false. 
 - */ 
 
 - get_scale2d()
- C++ Interface: get_scale2d(TransformState self) - /**
- Returns the scale component of the 2-d transform. It is an error to call 
- this if has_components() or is_2d() returned false. 
 - */ 
 
 - get_shear()
- C++ Interface: get_shear(TransformState self) - /**
- Returns the shear component of the transform. It is an error to call this 
- if has_components() returned false. 
 - */ 
 
 - get_shear2d()
- C++ Interface: get_shear2d(TransformState self) - /**
- Returns the shear component of the 2-d transform. It is an error to call 
- this if has_components() or is_2d() returned false. 
 - */ 
 
 - get_states()
- C++ Interface: get_states() 
 - get_uniform_scale()
- C++ Interface: get_uniform_scale(TransformState self) - /**
- Returns the scale component of the transform, as a single number. It is an 
- error to call this if has_uniform_scale() returned false. 
 - */ 
 
 - get_unique()
- C++ Interface: get_unique(TransformState self) - /**
- Returns the pointer to the unique TransformState in the cache that is 
- equivalent to this one. This may be the same pointer as this object, or it 
- may be a different pointer; but it will be an equivalent object, and it 
- will be a shared pointer. This may be called from time to time to improve 
- cache benefits. 
 - */ 
 
 - get_unused_states()
- C++ Interface: get_unused_states() 
 - hasComponents()
- C++ Interface: has_components(TransformState self) - /**
- Returns true if the transform can be described by separate pos, hpr, and 
- scale components. Most transforms we use in everyday life can be so 
- described, but some kinds of transforms (for instance, those involving a 
- skew) cannot. 
- This is not related to whether the transform was originally described 
- componentwise. Even a transform that was constructed with a 4x4 may return 
- true here if the matrix is a simple affine matrix with no skew. 
- If this returns true, you may safely call get_hpr() and get_scale() to 
- retrieve the components. (You may always safely call get_pos() whether 
- this returns true or false.) 
 - */ 
 
 - hasHpr()
- C++ Interface: has_hpr(TransformState self) - /**
- Returns true if the transform’s rotation component can be extracted out 
- separately and described as a set of Euler angles. This is generally true 
- only when has_components() is true. 
 - */ 
 
 - hasIdentityScale()
- C++ Interface: has_identity_scale(TransformState self) - /**
- Returns true if the scale is uniform 1.0, or false if the scale has some 
- real value. 
 - */ 
 
 - hasMat()
- C++ Interface: has_mat(TransformState self) - /**
- Returns true if the transform can be described as a matrix. This is 
- generally always true, unless is_invalid() is true. 
 - */ 
 
 - hasNonzeroShear()
- C++ Interface: has_nonzero_shear(TransformState self) - /**
- Returns true if the shear component is non-zero, false if it is zero or if 
- the matrix cannot be decomposed. 
 - */ 
 
 - hasPos()
- C++ Interface: has_pos(TransformState self) - /**
- Returns true if the transform’s pos component can be extracted out 
- separately. This is generally always true, unless the transform is invalid 
- (i.e. is_invalid() returns true). 
 - */ 
 
 - hasQuat()
- C++ Interface: has_quat(TransformState self) - /**
- Returns true if the transform’s rotation component can be extracted out 
- separately and described as a quaternion. This is generally true only when 
- has_components() is true. 
 - */ 
 
 - hasScale()
- C++ Interface: has_scale(TransformState self) - /**
- Returns true if the transform’s scale component can be extracted out 
- separately. This is generally true only when has_components() is true. 
 - */ 
 
 - hasShear()
- C++ Interface: has_shear(TransformState self) - /**
- Returns true if the transform’s shear component can be extracted out 
- separately. This is generally true only when has_components() is true. 
 - */ 
 
 - hasUniformScale()
- C++ Interface: has_uniform_scale(TransformState self) - /**
- Returns true if the scale is uniform across all three axes (and therefore 
- can be expressed as a single number), or false if the transform has a 
- different scale in different dimensions. 
 - */ 
 
 - has_components()
- C++ Interface: has_components(TransformState self) - /**
- Returns true if the transform can be described by separate pos, hpr, and 
- scale components. Most transforms we use in everyday life can be so 
- described, but some kinds of transforms (for instance, those involving a 
- skew) cannot. 
- This is not related to whether the transform was originally described 
- componentwise. Even a transform that was constructed with a 4x4 may return 
- true here if the matrix is a simple affine matrix with no skew. 
- If this returns true, you may safely call get_hpr() and get_scale() to 
- retrieve the components. (You may always safely call get_pos() whether 
- this returns true or false.) 
 - */ 
 
 - has_hpr()
- C++ Interface: has_hpr(TransformState self) - /**
- Returns true if the transform’s rotation component can be extracted out 
- separately and described as a set of Euler angles. This is generally true 
- only when has_components() is true. 
 - */ 
 
 - has_identity_scale()
- C++ Interface: has_identity_scale(TransformState self) - /**
- Returns true if the scale is uniform 1.0, or false if the scale has some 
- real value. 
 - */ 
 
 - has_mat()
- C++ Interface: has_mat(TransformState self) - /**
- Returns true if the transform can be described as a matrix. This is 
- generally always true, unless is_invalid() is true. 
 - */ 
 
 - has_nonzero_shear()
- C++ Interface: has_nonzero_shear(TransformState self) - /**
- Returns true if the shear component is non-zero, false if it is zero or if 
- the matrix cannot be decomposed. 
 - */ 
 
 - has_pos()
- C++ Interface: has_pos(TransformState self) - /**
- Returns true if the transform’s pos component can be extracted out 
- separately. This is generally always true, unless the transform is invalid 
- (i.e. is_invalid() returns true). 
 - */ 
 
 - has_quat()
- C++ Interface: has_quat(TransformState self) - /**
- Returns true if the transform’s rotation component can be extracted out 
- separately and described as a quaternion. This is generally true only when 
- has_components() is true. 
 - */ 
 
 - has_scale()
- C++ Interface: has_scale(TransformState self) - /**
- Returns true if the transform’s scale component can be extracted out 
- separately. This is generally true only when has_components() is true. 
 - */ 
 
 - has_shear()
- C++ Interface: has_shear(TransformState self) - /**
- Returns true if the transform’s shear component can be extracted out 
- separately. This is generally true only when has_components() is true. 
 - */ 
 
 - has_uniform_scale()
- C++ Interface: has_uniform_scale(TransformState self) - /**
- Returns true if the scale is uniform across all three axes (and therefore 
- can be expressed as a single number), or false if the transform has a 
- different scale in different dimensions. 
 - */ 
 
 - hpr
 - hprGiven()
- C++ Interface: hpr_given(TransformState self) - /**
- Returns true if the rotation was specified via a trio of Euler angles, 
- false otherwise. If this is true, get_hpr() will be exactly as set; 
- otherwise, it will return a computed value. 
 - */ 
 
 - hpr_given()
- C++ Interface: hpr_given(TransformState self) - /**
- Returns true if the rotation was specified via a trio of Euler angles, 
- false otherwise. If this is true, get_hpr() will be exactly as set; 
- otherwise, it will return a computed value. 
 - */ 
 
 - invertCompose()
- C++ Interface: invert_compose(TransformState self, const TransformState other) - /**
- Returns a new TransformState object that represents the composition of this 
- state’s inverse with the other state. 
- This is similar to compose(), but is particularly useful for computing the 
- relative state of a node as viewed from some other node. 
 - */ 
 
 - invert_compose()
- C++ Interface: invert_compose(TransformState self, const TransformState other) - /**
- Returns a new TransformState object that represents the composition of this 
- state’s inverse with the other state. 
- This is similar to compose(), but is particularly useful for computing the 
- relative state of a node as viewed from some other node. 
 - */ 
 
 - is2d()
- C++ Interface: is_2d(TransformState self) - /**
- Returns true if the transform has been constructed entirely using the 2-d 
- transform operations, e.g. make_pos2d(), and therefore operates strictly 
- in two-dimensional space on X and Y only. 
 - */ 
 
 - isIdentity()
- C++ Interface: is_identity(TransformState self) - /**
- Returns true if the transform represents the identity matrix, false 
- otherwise. 
 - */ 
 
 - isInvalid()
- C++ Interface: is_invalid(TransformState self) - /**
- Returns true if the transform represents an invalid matrix, for instance 
- the result of inverting a singular matrix, or false if the transform is 
- valid. 
 - */ 
 
 - isSingular()
- C++ Interface: is_singular(TransformState self) - /**
- Returns true if the transform represents a singular transform (that is, it 
- has a zero scale, and it cannot be inverted), or false otherwise. 
 - */ 
 
 - is_2d()
- C++ Interface: is_2d(TransformState self) - /**
- Returns true if the transform has been constructed entirely using the 2-d 
- transform operations, e.g. make_pos2d(), and therefore operates strictly 
- in two-dimensional space on X and Y only. 
 - */ 
 
 - is_identity()
- C++ Interface: is_identity(TransformState self) - /**
- Returns true if the transform represents the identity matrix, false 
- otherwise. 
 - */ 
 
 - is_invalid()
- C++ Interface: is_invalid(TransformState self) - /**
- Returns true if the transform represents an invalid matrix, for instance 
- the result of inverting a singular matrix, or false if the transform is 
- valid. 
 - */ 
 
 - is_singular()
- C++ Interface: is_singular(TransformState self) - /**
- Returns true if the transform represents a singular transform (that is, it 
- has a zero scale, and it cannot be inverted), or false otherwise. 
 - */ 
 
 - listCycles()
- C++ Interface: list_cycles(ostream out) - /**
- Detects all of the reference-count cycles in the cache and reports them to 
- standard output. 
- These cycles may be inadvertently created when state compositions cycle 
- back to a starting point. Nowadays, these cycles should be automatically 
- detected and broken, so this method should never list any cycles unless 
- there is a bug in that detection logic. 
- The cycles listed here are not leaks in the strictest sense of the word, 
- since they can be reclaimed by a call to clear_cache(); but they will not 
- be reclaimed automatically. 
 - */ 
 
 - listStates()
- C++ Interface: list_states(ostream out) - /**
- Lists all of the TransformStates in the cache to the output stream, one per 
- line. This can be quite a lot of output if the cache is large, so be 
- prepared. 
 - */ 
 
 - list_cycles()
- C++ Interface: list_cycles(ostream out) - /**
- Detects all of the reference-count cycles in the cache and reports them to 
- standard output. 
- These cycles may be inadvertently created when state compositions cycle 
- back to a starting point. Nowadays, these cycles should be automatically 
- detected and broken, so this method should never list any cycles unless 
- there is a bug in that detection logic. 
- The cycles listed here are not leaks in the strictest sense of the word, 
- since they can be reclaimed by a call to clear_cache(); but they will not 
- be reclaimed automatically. 
 - */ 
 
 - list_states()
- C++ Interface: list_states(ostream out) - /**
- Lists all of the TransformStates in the cache to the output stream, one per 
- line. This can be quite a lot of output if the cache is large, so be 
- prepared. 
 - */ 
 
 - makeHpr()
- C++ Interface: make_hpr(const LVecBase3f hpr) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - makeInvalid()
- C++ Interface: make_invalid() - /**
- Constructs an invalid transform; for instance, the result of inverting a 
- singular matrix. 
 - */ 
 
 - makeMat()
- C++ Interface: make_mat(const LMatrix4f mat) - /**
- Makes a new TransformState with the specified transformation matrix. 
 - */ 
 
 - makeMat3()
- C++ Interface: make_mat3(const LMatrix3f mat) - /**
- Makes a new two-dimensional TransformState with the specified 3x3 
- transformation matrix. 
 - */ 
 
 - makePos()
- C++ Interface: make_pos(const LVecBase3f pos) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - makePos2d()
- C++ Interface: make_pos2d(const LVecBase2f pos) - /**
- Makes a new 2-d TransformState with the specified components. 
 - */ 
 
 - makePosHpr()
- C++ Interface: make_pos_hpr(const LVecBase3f pos, const LVecBase3f hpr) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - makePosHprScale()
- C++ Interface: make_pos_hpr_scale(const LVecBase3f pos, const LVecBase3f hpr, const LVecBase3f scale) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - makePosHprScaleShear()
- C++ Interface: make_pos_hpr_scale_shear(const LVecBase3f pos, const LVecBase3f hpr, const LVecBase3f scale, const LVecBase3f shear) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - makePosQuat()
- C++ Interface: make_pos_quat(const LVecBase3f pos, const LQuaternionf quat) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - makePosQuatScale()
- C++ Interface: make_pos_quat_scale(const LVecBase3f pos, const LQuaternionf quat, const LVecBase3f scale) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - makePosQuatScaleShear()
- C++ Interface: make_pos_quat_scale_shear(const LVecBase3f pos, const LQuaternionf quat, const LVecBase3f scale, const LVecBase3f shear) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - makePosRotate2d()
- C++ Interface: make_pos_rotate2d(const LVecBase2f pos, float rotate) - /**
- Makes a new 2-d TransformState with the specified components. 
 - */ 
 
 - makePosRotateScale2d()
- C++ Interface: make_pos_rotate_scale2d(const LVecBase2f pos, float rotate, const LVecBase2f scale) - /**
- Makes a new 2-d TransformState with the specified components. 
 - */ 
 
 - makePosRotateScaleShear2d()
- C++ Interface: make_pos_rotate_scale_shear2d(const LVecBase2f pos, float rotate, const LVecBase2f scale, float shear) - /**
- Makes a new two-dimensional TransformState with the specified components. 
 - */ 
 
 - makeQuat()
- C++ Interface: make_quat(const LQuaternionf quat) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - makeRotate2d()
- C++ Interface: make_rotate2d(float rotate) - /**
- Makes a new 2-d TransformState with the specified components. 
 - */ 
 
 - makeScale()
- C++ Interface: make_scale(const LVecBase3f scale) make_scale(float scale) 
 - makeScale2d()
- C++ Interface: make_scale2d(const LVecBase2f scale) make_scale2d(float scale) 
 - makeShear()
- C++ Interface: make_shear(const LVecBase3f shear) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - makeShear2d()
- C++ Interface: make_shear2d(float shear) - /**
- Makes a new 2-d TransformState with the specified components. 
 - */ 
 
 - make_hpr()
- C++ Interface: make_hpr(const LVecBase3f hpr) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - make_invalid()
- C++ Interface: make_invalid() - /**
- Constructs an invalid transform; for instance, the result of inverting a 
- singular matrix. 
 - */ 
 
 - make_mat()
- C++ Interface: make_mat(const LMatrix4f mat) - /**
- Makes a new TransformState with the specified transformation matrix. 
 - */ 
 
 - make_mat3()
- C++ Interface: make_mat3(const LMatrix3f mat) - /**
- Makes a new two-dimensional TransformState with the specified 3x3 
- transformation matrix. 
 - */ 
 
 - make_pos()
- C++ Interface: make_pos(const LVecBase3f pos) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - make_pos2d()
- C++ Interface: make_pos2d(const LVecBase2f pos) - /**
- Makes a new 2-d TransformState with the specified components. 
 - */ 
 
 - make_pos_hpr()
- C++ Interface: make_pos_hpr(const LVecBase3f pos, const LVecBase3f hpr) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - make_pos_hpr_scale()
- C++ Interface: make_pos_hpr_scale(const LVecBase3f pos, const LVecBase3f hpr, const LVecBase3f scale) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - make_pos_hpr_scale_shear()
- C++ Interface: make_pos_hpr_scale_shear(const LVecBase3f pos, const LVecBase3f hpr, const LVecBase3f scale, const LVecBase3f shear) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - make_pos_quat()
- C++ Interface: make_pos_quat(const LVecBase3f pos, const LQuaternionf quat) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - make_pos_quat_scale()
- C++ Interface: make_pos_quat_scale(const LVecBase3f pos, const LQuaternionf quat, const LVecBase3f scale) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - make_pos_quat_scale_shear()
- C++ Interface: make_pos_quat_scale_shear(const LVecBase3f pos, const LQuaternionf quat, const LVecBase3f scale, const LVecBase3f shear) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - make_pos_rotate2d()
- C++ Interface: make_pos_rotate2d(const LVecBase2f pos, float rotate) - /**
- Makes a new 2-d TransformState with the specified components. 
 - */ 
 
 - make_pos_rotate_scale2d()
- C++ Interface: make_pos_rotate_scale2d(const LVecBase2f pos, float rotate, const LVecBase2f scale) - /**
- Makes a new 2-d TransformState with the specified components. 
 - */ 
 
 - make_pos_rotate_scale_shear2d()
- C++ Interface: make_pos_rotate_scale_shear2d(const LVecBase2f pos, float rotate, const LVecBase2f scale, float shear) - /**
- Makes a new two-dimensional TransformState with the specified components. 
 - */ 
 
 - make_quat()
- C++ Interface: make_quat(const LQuaternionf quat) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - make_rotate2d()
- C++ Interface: make_rotate2d(float rotate) - /**
- Makes a new 2-d TransformState with the specified components. 
 - */ 
 
 - make_scale()
- C++ Interface: make_scale(const LVecBase3f scale) make_scale(float scale) 
 - make_scale2d()
- C++ Interface: make_scale2d(const LVecBase2f scale) make_scale2d(float scale) 
 - make_shear()
- C++ Interface: make_shear(const LVecBase3f shear) - /**
- Makes a new TransformState with the specified components. 
 - */ 
 
 - make_shear2d()
- C++ Interface: make_shear2d(float shear) - /**
- Makes a new 2-d TransformState with the specified components. 
 - */ 
 
 - mat
 - nodeRef()
- C++ Interface: node_ref(TransformState self) - /**
- Overrides this method to update PStats appropriately. 
 - */ 
 
 - nodeUnref()
- C++ Interface: node_unref(TransformState self) - /**
- Overrides this method to update PStats appropriately. 
 - */ 
 
 - node_ref()
- C++ Interface: node_ref(TransformState self) - /**
- Overrides this method to update PStats appropriately. 
 - */ 
 
 - node_unref()
- C++ Interface: node_unref(TransformState self) - /**
- Overrides this method to update PStats appropriately. 
 - */ 
 
 - norm_quat
 - pos
- Force interrogate to make a copy as a temporary solution for #1625. 
 - quat
 - quatGiven()
- C++ Interface: quat_given(TransformState self) - /**
- Returns true if the rotation was specified via a quaternion, false 
- otherwise. If this is true, get_quat() will be exactly as set; otherwise, 
- it will return a computed value. 
 - */ 
 
 - quat_given()
- C++ Interface: quat_given(TransformState self) - /**
- Returns true if the rotation was specified via a quaternion, false 
- otherwise. If this is true, get_quat() will be exactly as set; otherwise, 
- it will return a computed value. 
 - */ 
 
 - scale
 - setHpr()
- C++ Interface: set_hpr(TransformState self, const LVecBase3f hpr) - /**
- Returns a new TransformState object that represents the original 
- TransformState with its rotation component replaced with the indicated 
- value, if possible. 
 - */ 
 
 - setPos()
- C++ Interface: set_pos(TransformState self, const LVecBase3f pos) - /**
- Returns a new TransformState object that represents the original 
- TransformState with its pos component replaced with the indicated value. 
 - */ 
 
 - setPos2d()
- C++ Interface: set_pos2d(TransformState self, const LVecBase2f pos) - /**
- Returns a new TransformState object that represents the original 2-d 
- TransformState with its pos component replaced with the indicated value. 
 - */ 
 
 - setQuat()
- C++ Interface: set_quat(TransformState self, const LQuaternionf quat) - /**
- Returns a new TransformState object that represents the original 
- TransformState with its rotation component replaced with the indicated 
- value, if possible. 
 - */ 
 
 - setRotate2d()
- C++ Interface: set_rotate2d(TransformState self, float rotate) - /**
- Returns a new TransformState object that represents the original 2-d 
- TransformState with its rotation component replaced with the indicated 
- value, if possible. 
 - */ 
 
 - setScale()
- C++ Interface: set_scale(TransformState self, const LVecBase3f scale) - /**
- Returns a new TransformState object that represents the original 
- TransformState with its scale component replaced with the indicated value, 
- if possible. 
 - */ 
 
 - setScale2d()
- C++ Interface: set_scale2d(TransformState self, const LVecBase2f scale) - /**
- Returns a new TransformState object that represents the original 2-d 
- TransformState with its scale component replaced with the indicated value, 
- if possible. 
 - */ 
 
 - setShear()
- C++ Interface: set_shear(TransformState self, const LVecBase3f shear) - /**
- Returns a new TransformState object that represents the original 
- TransformState with its shear component replaced with the indicated value, 
- if possible. 
 - */ 
 
 - setShear2d()
- C++ Interface: set_shear2d(TransformState self, float shear) - /**
- Returns a new TransformState object that represents the original 2-d 
- TransformState with its shear component replaced with the indicated value, 
- if possible. 
 - */ 
 
 - set_hpr()
- C++ Interface: set_hpr(TransformState self, const LVecBase3f hpr) - /**
- Returns a new TransformState object that represents the original 
- TransformState with its rotation component replaced with the indicated 
- value, if possible. 
 - */ 
 
 - set_pos()
- C++ Interface: set_pos(TransformState self, const LVecBase3f pos) - /**
- Returns a new TransformState object that represents the original 
- TransformState with its pos component replaced with the indicated value. 
 - */ 
 
 - set_pos2d()
- C++ Interface: set_pos2d(TransformState self, const LVecBase2f pos) - /**
- Returns a new TransformState object that represents the original 2-d 
- TransformState with its pos component replaced with the indicated value. 
 - */ 
 
 - set_quat()
- C++ Interface: set_quat(TransformState self, const LQuaternionf quat) - /**
- Returns a new TransformState object that represents the original 
- TransformState with its rotation component replaced with the indicated 
- value, if possible. 
 - */ 
 
 - set_rotate2d()
- C++ Interface: set_rotate2d(TransformState self, float rotate) - /**
- Returns a new TransformState object that represents the original 2-d 
- TransformState with its rotation component replaced with the indicated 
- value, if possible. 
 - */ 
 
 - set_scale()
- C++ Interface: set_scale(TransformState self, const LVecBase3f scale) - /**
- Returns a new TransformState object that represents the original 
- TransformState with its scale component replaced with the indicated value, 
- if possible. 
 - */ 
 
 - set_scale2d()
- C++ Interface: set_scale2d(TransformState self, const LVecBase2f scale) - /**
- Returns a new TransformState object that represents the original 2-d 
- TransformState with its scale component replaced with the indicated value, 
- if possible. 
 - */ 
 
 - set_shear()
- C++ Interface: set_shear(TransformState self, const LVecBase3f shear) - /**
- Returns a new TransformState object that represents the original 
- TransformState with its shear component replaced with the indicated value, 
- if possible. 
 - */ 
 
 - set_shear2d()
- C++ Interface: set_shear2d(TransformState self, float shear) - /**
- Returns a new TransformState object that represents the original 2-d 
- TransformState with its shear component replaced with the indicated value, 
- if possible. 
 - */ 
 
 - shear
 - validateCompositionCache()
- C++ Interface: validate_composition_cache(TransformState self) - /**
- Returns true if the composition cache and invert composition cache for this 
- particular TransformState are self-consistent and valid, false otherwise. 
 - */ 
 
 - validateStates()
- C++ Interface: validate_states() - /**
- Ensures that the cache is still stored in sorted order, and that none of 
- the cache elements have been inadvertently deleted. Returns true if so, 
- false if there is a problem (which implies someone has modified one of the 
- supposedly-const TransformState objects). 
 - */ 
 
 - validate_composition_cache()
- C++ Interface: validate_composition_cache(TransformState self) - /**
- Returns true if the composition cache and invert composition cache for this 
- particular TransformState are self-consistent and valid, false otherwise. 
 - */ 
 
 - validate_states()
- C++ Interface: validate_states() - /**
- Ensures that the cache is still stored in sorted order, and that none of 
- the cache elements have been inadvertently deleted. Returns true if so, 
- false if there is a problem (which implies someone has modified one of the 
- supposedly-const TransformState objects). 
 - */ 
 
 - writeCompositionCache()
- C++ Interface: write_composition_cache(TransformState self, ostream out, int indent_level) - /**
- Writes a brief description of the composition cache and invert composition 
- cache to the indicated ostream. This is not useful except for performance 
- analysis, to examine the cache structure. 
 - */ 
 
 - write_composition_cache()
- C++ Interface: write_composition_cache(TransformState self, ostream out, int indent_level) - /**
- Writes a brief description of the composition cache and invert composition 
- cache to the indicated ostream. This is not useful except for performance 
- analysis, to examine the cache structure. 
 - */ 
 
 
