#include <LatheIF.H>
In 3D, if one function is given, then it is restricted to x >= 0 in the x-y plane (z = 0), revolved around the y axis, and the y axis is rotated to the z axis. In 2D, the function is restricted to x >= 0 and the x axis (y = 0) and revolved around the origin.
In 3D, if two functions are given then the first is restricted to x >= 0 in the x-y plane (z = 0), revolved around the y axis, and the y axis is rotated to the z axis. At each angle between 0 and 2*Pi, the second function restricted to the x axis (y = z = 0) is used to get an angle to rotate the first function in the x-y plane with respect to a given point before it is rotated about the y axis. In 2D, the first function is used as above and the second function is ignored.
Note: the second function (if given) should have the same value at x = 0 and x = 2*Pi (y = z = 0) or a values that differs by some integer multiple of 2*Pi.
Public Member Functions | |
LatheIF (const BaseIF &a_impFunc1, const bool &a_inside) | |
LatheIF (const BaseIF &a_impFunc1, const BaseIF &a_impFunc2, const RealVect &a_point, const bool &a_inside) | |
LatheIF (const LatheIF &a_inputIF) | |
Copy constructor. | |
virtual | ~LatheIF () |
Destructor. | |
virtual Real | value (const RealVect &a_point) const |
virtual BaseIF * | newImplicitFunction () const |
virtual bool | fastIntersection (const RealVect &a_low, const RealVect &a_high) const |
virtual GeometryService::InOut | InsideOutside (const RealVect &a_low, const RealVect &a_high) const |
virtual void | boxLayoutChanged (const DisjointBoxLayout &a_newBoxLayout, const RealVect &a_dx) |
Protected Attributes | |
BaseIF * | m_impFunc1 |
BaseIF * | m_impFunc2 |
RealVect | m_point |
bool | m_inside |
Private Member Functions | |
LatheIF () | |
void | operator= (const LatheIF &a_inputIF) |
LatheIF::LatheIF | ( | const BaseIF & | a_impFunc1, | |
const bool & | a_inside | |||
) |
Constructor specifying one implicit function to be rotated and whether the domain is on the inside (a_inside), i.e. where the function is negative.
LatheIF::LatheIF | ( | const BaseIF & | a_impFunc1, | |
const BaseIF & | a_impFunc2, | |||
const RealVect & | a_point, | |||
const bool & | a_inside | |||
) |
Constructor specifying two implicit functions, one to be rotated and the other to cause an additional rotation about a_point, and whether the domain is on the inside (a_inside), i.e. where the function is negative.
LatheIF::LatheIF | ( | const LatheIF & | a_inputIF | ) |
Copy constructor.
virtual LatheIF::~LatheIF | ( | ) | [virtual] |
Destructor.
LatheIF::LatheIF | ( | ) | [inline, private] |
References MayDay::Abort().
Return the value of the function at a_point.
Implements BaseIF.
virtual BaseIF* LatheIF::newImplicitFunction | ( | ) | const [virtual] |
Return a newly allocated derived class. The responsibility for deleting the memory is left to the calling function.
Implements BaseIF.
virtual bool LatheIF::fastIntersection | ( | const RealVect & | a_low, | |
const RealVect & | a_high | |||
) | const [inline, virtual] |
Reimplemented from BaseIF.
virtual GeometryService::InOut LatheIF::InsideOutside | ( | const RealVect & | a_low, | |
const RealVect & | a_high | |||
) | const [virtual] |
Reimplemented from BaseIF.
virtual void LatheIF::boxLayoutChanged | ( | const DisjointBoxLayout & | a_newBoxLayout, | |
const RealVect & | a_dx | |||
) | [inline, virtual] |
Pass this call onto the IFs contained in this IF class.
Reimplemented from BaseIF.
References BaseIF::boxLayoutChanged(), m_impFunc1, and m_impFunc2.
void LatheIF::operator= | ( | const LatheIF & | a_inputIF | ) | [inline, private] |
References MayDay::Abort().
BaseIF* LatheIF::m_impFunc1 [protected] |
Referenced by boxLayoutChanged().
BaseIF* LatheIF::m_impFunc2 [protected] |
Referenced by boxLayoutChanged().
RealVect LatheIF::m_point [protected] |
bool LatheIF::m_inside [protected] |