|
EGSnrc C++ class library
Report PIRS-898 (2021)
Iwan Kawrakow, Ernesto Mainegra-Hing, Frederic Tessier, Reid Townson and Blake Walters
|
A sphere shape. More...
#include <egs_shapes.h>
Public Member Functions | |
| EGS_SphereShape (const string &Name="", EGS_ObjectFactory *f=0) | |
| Construct a sphere of unit radius about the origin. | |
| EGS_SphereShape (EGS_Float r, const EGS_Vector &Xo=EGS_Vector(0, 0, 0), const string &Name="", EGS_ObjectFactory *f=0) | |
| Construct a sphere of radius r with midpoint Xo. | |
| ~EGS_SphereShape () | |
| EGS_Vector | getPoint (EGS_RandomGenerator *rndm) |
| Returns a random point within the sphere. | |
| EGS_Object * | createObject (EGS_Input *inp) |
| bool | supportsDirectionMethod () const |
Returns true. (It is easy to implement the getPointSourceDirection() method for a sphere.) | |
| void | getPointSourceDirection (const EGS_Vector &Xo, EGS_RandomGenerator *rndm, EGS_Vector &u, EGS_Float &wt) |
| Sets the direction u by picking a random point uniformly on the sphere surface. More... | |
| EGS_Float | area () const |
| Returns the sphere surface area. | |
Public Member Functions inherited from EGS_BaseShape | |
| EGS_BaseShape (const string &Name="", EGS_ObjectFactory *f=0) | |
| Construct a shape named Name. | |
| virtual | ~EGS_BaseShape () |
Destructor. Deletes T if it is not null. | |
| virtual EGS_Vector | getRandomPoint (EGS_RandomGenerator *rndm) |
| Returns a random 3D vector. More... | |
| void | setTransformation (EGS_Input *inp) |
| Set the transformation attached to this shape. More... | |
| void | setTransformation (EGS_AffineTransform *t) |
| Set the transformation attached to this shape. More... | |
| const EGS_AffineTransform * | getTransform () const |
| Get a pointer to the affine transformation attached to this shape. | |
| virtual void | getNextShapePosition (EGS_RandomGenerator *rndm) |
| virtual void | updatePosition (EGS_Float time) |
| Update the position of the shape if it is in motion. | |
Public Member Functions inherited from EGS_Object | |
| EGS_Object (const string &Name="", EGS_ObjectFactory *f=0) | |
| Create an EGS_Object named Name belonging to the object factory f. More... | |
| EGS_Object (EGS_Input *inp, EGS_ObjectFactory *f=0) | |
| Create an EGS_Object from the information pointed to by inp that belongs to object factory f. More... | |
| const string & | getObjectName () const |
| Get the object name. | |
| void | setObjectName (const string &Name) |
| Set the object name to Name. | |
| const string & | getObjectType () const |
| Get the object type. | |
| void | setName (EGS_Input *inp) |
| Set the name of the object from the information provided by inp. More... | |
| int | ref () |
| Increase the reference count to this object. | |
| int | deref () |
| Decrease the reference count to this object. | |
| void | setFactory (EGS_ObjectFactory *f) |
| Set the factory to which the object belongs. More... | |
Protected Attributes | |
| EGS_Float | R |
| The sphere radius. | |
| EGS_Vector | xo |
| The sphere midpoint. | |
Protected Attributes inherited from EGS_BaseShape | |
| EGS_AffineTransform * | T |
| The affine transformation attached to the shape. | |
Protected Attributes inherited from EGS_Object | |
| string | name |
| The object name. | |
| string | otype |
| The object type. | |
| int | nref |
| Number of references to the object. | |
| EGS_ObjectFactory * | factory |
| The factory this object belongs to. | |
Additional Inherited Members | |
Static Public Member Functions inherited from EGS_BaseShape | |
| static EGS_BaseShape * | createShape (EGS_Input *inp) |
| Create a shape from the information pointed to by inp. More... | |
| static EGS_BaseShape * | getShape (const string &Name) |
| Get a pointer to the shape named Name. More... | |
Static Public Member Functions inherited from EGS_Object | |
| static string | getUniqueName (const EGS_Object *o=0) |
| Create and return a unique object name. More... | |
| static void | deleteObject (EGS_Object *o) |
| Delete an object. More... | |
A sphere shape.
Samples random points within a sphere or on the spherical surfcace. Specified in the input file via
:start shape:
type = sphere
midpoint = Ox, Oy, Oz
radius = the sphere radius
:stop shape:
Definition at line 502 of file egs_shapes.h.
| EGS_SphereShape::~EGS_SphereShape | ( | ) |
Destructor. Does nothing.
Definition at line 523 of file egs_shapes.h.
|
virtual |
Create a sphere shape from the information pointed to by inp, or null if the information is insufficient.
Reimplemented from EGS_Object.
Definition at line 132 of file egs_shapes.cpp.
References egsWarning, EGS_Input::getInput(), and EGS_Object::setName().
|
virtual |
Sets the direction u by picking a random point uniformly on the sphere surface.
Reimplemented from EGS_BaseShape.
Definition at line 559 of file egs_shapes.h.
References epsilon, EGS_RandomGenerator::getAzimuth(), EGS_RandomGenerator::getUniform(), EGS_Vector::x, EGS_Vector::y, and EGS_Vector::z.
1.9.1