mirror of
https://github.com/thestk/stk
synced 2026-01-16 14:21:53 +00:00
Version 4.1
This commit is contained in:
committed by
Stephen Sinclair
parent
81475b04c5
commit
2f09fcd019
70
include/Sphere.h
Normal file
70
include/Sphere.h
Normal file
@@ -0,0 +1,70 @@
|
||||
/***************************************************/
|
||||
/*! \class Sphere
|
||||
\brief STK sphere class.
|
||||
|
||||
This class implements a spherical ball with
|
||||
radius, mass, position, and velocity parameters.
|
||||
|
||||
by Perry R. Cook, 1995 - 2002.
|
||||
*/
|
||||
/***************************************************/
|
||||
|
||||
#if !defined(__SPHERE_H)
|
||||
#define __SPHERE_H
|
||||
|
||||
#include "Vector3D.h"
|
||||
|
||||
class Sphere
|
||||
{
|
||||
public:
|
||||
//! Constructor taking an initial radius value.
|
||||
Sphere(double initRadius);
|
||||
|
||||
//! Class destructor.
|
||||
~Sphere();
|
||||
|
||||
//! Set the 3D center position of the sphere.
|
||||
void setPosition(double anX, double aY, double aZ);
|
||||
|
||||
//! Set the 3D velocity of the sphere.
|
||||
void setVelocity(double anX, double aY, double aZ);
|
||||
|
||||
//! Set the radius of the sphere.
|
||||
void setRadius(double aRadius);
|
||||
|
||||
//! Set the mass of the sphere.
|
||||
void setMass(double aMass);
|
||||
|
||||
//! Get the current position of the sphere as a 3D vector.
|
||||
Vector3D* getPosition();
|
||||
|
||||
//! Get the relative position of the given point to the sphere as a 3D vector.
|
||||
Vector3D* getRelativePosition(Vector3D *aPosition);
|
||||
|
||||
//! Set the velcoity of the sphere as a 3D vector.
|
||||
double getVelocity(Vector3D* aVelocity);
|
||||
|
||||
//! Returns the distance from the sphere boundary to the given position (< 0 if inside).
|
||||
double isInside(Vector3D *aPosition);
|
||||
|
||||
//! Get the current sphere radius.
|
||||
double getRadius();
|
||||
|
||||
//! Get the current sphere mass.
|
||||
double getMass();
|
||||
|
||||
//! Increase the current sphere velocity by the given 3D components.
|
||||
void addVelocity(double anX, double aY, double aZ);
|
||||
|
||||
//! Move the sphere for the given time increment.
|
||||
void tick(double timeIncrement);
|
||||
|
||||
private:
|
||||
Vector3D *myPosition;
|
||||
Vector3D *myVelocity;
|
||||
Vector3D workingVector;
|
||||
double myRadius;
|
||||
double myMass;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user