Surface




A surface is defined by its position, its axes and its size. One can distinguish between base Surface's (i.e. Plane), which have no boundaries, and finite Surface's (Rectangle, Cylinder, Ring) which extend the base class by incorporating a well defined size. The data members are:

// type of the surface. NOTE: this key will be used by the SurfaceIntersector. Be sure that it matches an intersector name
std::string name;
// other names
std::string< std::string, std::string > names;

// the map of axes defining the surface orientation
std::string< std::string, EVector > axes;
// the map of parameters to define the surface size
std::map< std::string, double > parameters;
// the position of the surface and its error (the error is used for surfaces in which residuals are computed)
HyperVector position;
// the normal (if unique) of the surface
EVector normal;

The name and the map of names are inherited from the base class NamedObject. Example on how to create a Surface.