mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
assert not nan
This commit is contained in:
parent
a24337f7b0
commit
c71fd12dc7
@ -262,6 +262,7 @@ make_invalid() {
|
|||||||
CPT(TransformState) TransformState::
|
CPT(TransformState) TransformState::
|
||||||
make_pos_hpr_scale_shear(const LVecBase3f &pos, const LVecBase3f &hpr,
|
make_pos_hpr_scale_shear(const LVecBase3f &pos, const LVecBase3f &hpr,
|
||||||
const LVecBase3f &scale, const LVecBase3f &shear) {
|
const LVecBase3f &scale, const LVecBase3f &shear) {
|
||||||
|
nassertr(!(pos.is_nan() || hpr.is_nan() || scale.is_nan() || shear.is_nan()) , make_invalid());
|
||||||
// Make a special-case check for the identity transform.
|
// Make a special-case check for the identity transform.
|
||||||
if (pos == LVecBase3f(0.0f, 0.0f, 0.0f) &&
|
if (pos == LVecBase3f(0.0f, 0.0f, 0.0f) &&
|
||||||
hpr == LVecBase3f(0.0f, 0.0f, 0.0f) &&
|
hpr == LVecBase3f(0.0f, 0.0f, 0.0f) &&
|
||||||
@ -289,6 +290,7 @@ make_pos_hpr_scale_shear(const LVecBase3f &pos, const LVecBase3f &hpr,
|
|||||||
CPT(TransformState) TransformState::
|
CPT(TransformState) TransformState::
|
||||||
make_pos_quat_scale_shear(const LVecBase3f &pos, const LQuaternionf &quat,
|
make_pos_quat_scale_shear(const LVecBase3f &pos, const LQuaternionf &quat,
|
||||||
const LVecBase3f &scale, const LVecBase3f &shear) {
|
const LVecBase3f &scale, const LVecBase3f &shear) {
|
||||||
|
nassertr(!(pos.is_nan() || quat.is_nan() || scale.is_nan() || shear.is_nan()) , make_invalid());
|
||||||
// Make a special-case check for the identity transform.
|
// Make a special-case check for the identity transform.
|
||||||
if (pos == LVecBase3f(0.0f, 0.0f, 0.0f) &&
|
if (pos == LVecBase3f(0.0f, 0.0f, 0.0f) &&
|
||||||
quat == LQuaternionf::ident_quat() &&
|
quat == LQuaternionf::ident_quat() &&
|
||||||
@ -315,6 +317,7 @@ make_pos_quat_scale_shear(const LVecBase3f &pos, const LQuaternionf &quat,
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
CPT(TransformState) TransformState::
|
CPT(TransformState) TransformState::
|
||||||
make_mat(const LMatrix4f &mat) {
|
make_mat(const LMatrix4f &mat) {
|
||||||
|
nassertr(!mat.is_nan(), make_invalid());
|
||||||
// Make a special-case check for the identity matrix.
|
// Make a special-case check for the identity matrix.
|
||||||
if (mat == LMatrix4f::ident_mat()) {
|
if (mat == LMatrix4f::ident_mat()) {
|
||||||
return make_identity();
|
return make_identity();
|
||||||
@ -335,6 +338,7 @@ make_mat(const LMatrix4f &mat) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
CPT(TransformState) TransformState::
|
CPT(TransformState) TransformState::
|
||||||
set_pos(const LVecBase3f &pos) const {
|
set_pos(const LVecBase3f &pos) const {
|
||||||
|
nassertr(!pos.is_nan(), this);
|
||||||
nassertr(!is_invalid(), this);
|
nassertr(!is_invalid(), this);
|
||||||
if (is_identity() || components_given()) {
|
if (is_identity() || components_given()) {
|
||||||
// If we started with a componentwise transform, we keep it that
|
// If we started with a componentwise transform, we keep it that
|
||||||
@ -362,6 +366,7 @@ set_pos(const LVecBase3f &pos) const {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
CPT(TransformState) TransformState::
|
CPT(TransformState) TransformState::
|
||||||
set_hpr(const LVecBase3f &hpr) const {
|
set_hpr(const LVecBase3f &hpr) const {
|
||||||
|
nassertr(!hpr.is_nan(), this);
|
||||||
nassertr(!is_invalid(), this);
|
nassertr(!is_invalid(), this);
|
||||||
// nassertr(has_components(), this);
|
// nassertr(has_components(), this);
|
||||||
return make_pos_hpr_scale_shear(get_pos(), hpr, get_scale(), get_shear());
|
return make_pos_hpr_scale_shear(get_pos(), hpr, get_scale(), get_shear());
|
||||||
@ -376,6 +381,7 @@ set_hpr(const LVecBase3f &hpr) const {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
CPT(TransformState) TransformState::
|
CPT(TransformState) TransformState::
|
||||||
set_quat(const LQuaternionf &quat) const {
|
set_quat(const LQuaternionf &quat) const {
|
||||||
|
nassertr(!quat.is_nan(), this);
|
||||||
nassertr(!is_invalid(), this);
|
nassertr(!is_invalid(), this);
|
||||||
// nassertr(has_components(), this);
|
// nassertr(has_components(), this);
|
||||||
return make_pos_quat_scale_shear(get_pos(), quat, get_scale(), get_shear());
|
return make_pos_quat_scale_shear(get_pos(), quat, get_scale(), get_shear());
|
||||||
@ -390,6 +396,7 @@ set_quat(const LQuaternionf &quat) const {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
CPT(TransformState) TransformState::
|
CPT(TransformState) TransformState::
|
||||||
set_scale(const LVecBase3f &scale) const {
|
set_scale(const LVecBase3f &scale) const {
|
||||||
|
nassertr(!scale.is_nan(), this);
|
||||||
nassertr(!is_invalid(), this);
|
nassertr(!is_invalid(), this);
|
||||||
// nassertr(has_components(), this);
|
// nassertr(has_components(), this);
|
||||||
if (quat_given()) {
|
if (quat_given()) {
|
||||||
@ -408,6 +415,7 @@ set_scale(const LVecBase3f &scale) const {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
CPT(TransformState) TransformState::
|
CPT(TransformState) TransformState::
|
||||||
set_shear(const LVecBase3f &shear) const {
|
set_shear(const LVecBase3f &shear) const {
|
||||||
|
nassertr(!shear.is_nan(), this);
|
||||||
nassertr(!is_invalid(), this);
|
nassertr(!is_invalid(), this);
|
||||||
// nassertr(has_components(), this);
|
// nassertr(has_components(), this);
|
||||||
if (quat_given()) {
|
if (quat_given()) {
|
||||||
|
@ -32,7 +32,8 @@ set_mass(float m) {
|
|||||||
// Description : Vector position assignment
|
// Description : Vector position assignment
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE void PhysicsObject::
|
INLINE void PhysicsObject::
|
||||||
set_position(const LPoint3f& pos) {
|
set_position(const LPoint3f &pos) {
|
||||||
|
nassertv(!pos.is_nan());
|
||||||
_position = pos;
|
_position = pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,6 +44,7 @@ set_position(const LPoint3f& pos) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE void PhysicsObject::
|
INLINE void PhysicsObject::
|
||||||
set_position(float x, float y, float z) {
|
set_position(float x, float y, float z) {
|
||||||
|
nassertv(!LPoint3f(x, y, z).is_nan());
|
||||||
_position.set(x, y, z);
|
_position.set(x, y, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,6 +57,7 @@ set_position(float x, float y, float z) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE void PhysicsObject::
|
INLINE void PhysicsObject::
|
||||||
reset_position(const LPoint3f &pos) {
|
reset_position(const LPoint3f &pos) {
|
||||||
|
nassertv(!pos.is_nan());
|
||||||
_position = pos;
|
_position = pos;
|
||||||
_last_position = pos;
|
_last_position = pos;
|
||||||
_velocity.set(0.0f, 0.0f, 0.0f);
|
_velocity.set(0.0f, 0.0f, 0.0f);
|
||||||
@ -68,6 +71,7 @@ reset_position(const LPoint3f &pos) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE void PhysicsObject::
|
INLINE void PhysicsObject::
|
||||||
reset_orientation(const LOrientationf &orientation) {
|
reset_orientation(const LOrientationf &orientation) {
|
||||||
|
nassertv(!orientation.is_nan());
|
||||||
_orientation = orientation;
|
_orientation = orientation;
|
||||||
_rotation.set(0.0f, 0.0f, 0.0f);
|
_rotation.set(0.0f, 0.0f, 0.0f);
|
||||||
}
|
}
|
||||||
@ -78,7 +82,7 @@ reset_orientation(const LOrientationf &orientation) {
|
|||||||
// Description : Last position assignment
|
// Description : Last position assignment
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE void PhysicsObject::
|
INLINE void PhysicsObject::
|
||||||
set_last_position(const LPoint3f& pos) {
|
set_last_position(const LPoint3f &pos) {
|
||||||
_last_position = pos;
|
_last_position = pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,7 +92,8 @@ set_last_position(const LPoint3f& pos) {
|
|||||||
// Description : Vector velocity assignment
|
// Description : Vector velocity assignment
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE void PhysicsObject::
|
INLINE void PhysicsObject::
|
||||||
set_velocity(const LVector3f& vel) {
|
set_velocity(const LVector3f &vel) {
|
||||||
|
nassertv(!vel.is_nan());
|
||||||
_velocity = vel;
|
_velocity = vel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,6 +104,7 @@ set_velocity(const LVector3f& vel) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE void PhysicsObject::
|
INLINE void PhysicsObject::
|
||||||
set_velocity(float x, float y, float z) {
|
set_velocity(float x, float y, float z) {
|
||||||
|
nassertv(!LVector3f(x, y, z).is_nan());
|
||||||
_velocity.set(x, y, z);
|
_velocity.set(x, y, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,6 +219,7 @@ get_terminal_velocity() const {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE void PhysicsObject::
|
INLINE void PhysicsObject::
|
||||||
set_orientation(const LOrientationf &orientation) {
|
set_orientation(const LOrientationf &orientation) {
|
||||||
|
nassertv(!orientation.is_nan());
|
||||||
_orientation = orientation;
|
_orientation = orientation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -223,6 +230,7 @@ set_orientation(const LOrientationf &orientation) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE void PhysicsObject::
|
INLINE void PhysicsObject::
|
||||||
set_rotation(const LVector3f &rotation) {
|
set_rotation(const LVector3f &rotation) {
|
||||||
|
nassertv(!rotation.is_nan());
|
||||||
_rotation = rotation;
|
_rotation = rotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,6 +103,7 @@ get_lcs() const {
|
|||||||
if (_oriented) {
|
if (_oriented) {
|
||||||
m=m*_orientation;
|
m=m*_orientation;
|
||||||
}
|
}
|
||||||
|
nassertr(!m.is_nan(), m);
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user