21 PhysxSegment(
const LPoint3f &p0,
const LPoint3f &p1) {
42 nassertv_always(!p.is_nan());
62 nassertv_always(!p.is_nan());
83 nassertv(!dir.is_nan());
86 _segment.computeDirection(nDir);
87 PhysxManager::update_point3_from_nxVec3(dir, nDir);
96 return _segment.computeLength();
105 nassertv(!p.is_nan());
108 _segment.computePoint(nP, t);
109 PhysxManager::update_point3_from_nxVec3(p, nP);
119 return _segment.computeSquareLength();
128 nassertv_always(!origin.is_nan());
129 nassertv_always(!direction.is_nan());
static NxVec3 point3_to_nxVec3(const LPoint3f &p)
Converts from LPoint3f to NxVec3.
LPoint3f get_p0() const
Returns the start point of the segment.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
float compute_square_length() const
Returns the square distance from the segment's start point to it's end point.
LPoint3f get_origin() const
Returns the start point of the segment.
float compute_length() const
Returns the distance from the segment's start point to it's end point.
void set_p0(LPoint3f p)
Sets the start point of the segment.
static NxVec3 vec3_to_nxVec3(const LVector3f &v)
Converts from LVector3f to NxVec3.
static LVector3f nxVec3_to_vec3(const NxVec3 &v)
Converts from NxVec3 to LVector3f.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
LPoint3f get_p1() const
Returns the end point of the segment.
void set_p1(LPoint3f p)
Sets the end point of the segment.
void compute_point(LPoint3f &p, float t) const
Computes a point on the segment.
void compute_direction(LPoint3f &dir) const
Returns the direction vector from the segment's start point to it's end point.
static LPoint3f nxVec3_to_point3(const NxVec3 &p)
Converts from NxVec3 to LPoint3f.
void set_origin_direction(const LPoint3f &origin, const LVector3f &direction)
Setup this segment from origin (start point) and direction vector.