1 #ifndef SimTK_SIMMATH_GEO_SPHERE_H_ 2 #define SimTK_SIMMATH_GEO_SPHERE_H_ 49 typedef Vec<3,P> Vec3P;
50 typedef Vec<4,P> Vec4P;
56 Sphere_(
const Vec3P& center, RealP radius)
57 : cr(center[0], center[1], center[2], radius) {assert(radius>=0);}
60 { assert(radius>=0); cr[3]=radius;
return *
this; }
79 const RealP tol = Geo::getDefaultTol<P>();
125 #endif // SimTK_SIMMATH_GEO_SPHERE_H_ RealP & updRadius()
Get a writable reference to the sphere's radius.
Definition: Geo_Sphere.h:113
Sphere_ & stretchBoundary()
Stretch this sphere in place by a small amount to ensure that there will be no roundoff problems if t...
Definition: Geo_Sphere.h:78
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
static Vec & updAs(P *p)
Recast a writable ordinary C++ array E[] to a writable Vec<M,E,S>; assumes compatible length...
Definition: Vec.h:908
Sphere_(const Vec3P ¢er, RealP radius)
Construct a sphere from its center location and radius.
Definition: Geo_Sphere.h:56
bool isPointOutside(const Vec3P &p, RealP tol) const
Return true if a given point is more than a given tolerance outside the sphere.
Definition: Geo_Sphere.h:101
Sphere_ & scaleBy(RealP f)
Modify this sphere to scale its radius by a fractional amount f, that is we set radius to f*radius...
Definition: Geo_Sphere.h:68
Sphere_()
Construct an uninitialized Sphere object; the center point and radius will be garbage.
Definition: Geo_Sphere.h:54
unsigned char square(unsigned char u)
Definition: Scalar.h:349
Includes internal headers providing declarations for the basic SimTK Core classes, including Simmatrix.
Vec3P & updCenter()
Get a writable reference to the sphere's center point.
Definition: Geo_Sphere.h:109
RealP findVolume() const
Return the volume of this sphere (4/3 pi r^3).
Definition: Geo_Sphere.h:87
ELEM max(const VectorBase< ELEM > &v)
Definition: VectorMath.h:251
Defines geometric primitive shapes and algorthms.
Sphere_ & setRadius(RealP radius)
Change the radius of this sphere.
Definition: Geo_Sphere.h:59
bool isPointOutside(const Vec3P &p) const
Return true if a given point is strictly outside this sphere.
Definition: Geo_Sphere.h:95
RowVectorBase< typename CNT< ELEM >::TAbs > abs(const RowVectorBase< ELEM > &v)
Definition: VectorMath.h:120
RealP findDistanceSqr(const Vec3P &p2) const
Find the square of the distance between this point and another one whose location is expressed in the...
Definition: Geo_Point.h:75
This is the header file that every Simmath compilation unit should include first. ...
A geometric primitive representing a sphere by its radius and center point, and a collection of spher...
Definition: Geo.h:56
RealP findArea() const
Return the surface area of this sphere (4 pi r^2).
Definition: Geo_Sphere.h:90
Sphere_ & setCenter(const Vec3P ¢er)
Change the center location of this sphere.
Definition: Geo_Sphere.h:62
RealP getRadius() const
Get the sphere's radius.
Definition: Geo_Sphere.h:111
unsigned char cube(unsigned char u)
Definition: Scalar.h:420
const Vec3P & getCenter() const
Get the location of the sphere's center point.
Definition: Geo_Sphere.h:107
static const Vec & getAs(const P *p)
Recast an ordinary C++ array E[] to a const Vec<M,E,S>; assumes compatible length, stride, and packing.
Definition: Vec.h:904