MADNESS  version 0.9
Public Member Functions | Protected Attributes | List of all members
madness::SDFBox Class Reference

A box (3 dimensions) More...

#include <sdf_shape_3D.h>

Inheritance diagram for madness::SDFBox:
Inheritance graph
[legend]
Collaboration diagram for madness::SDFBox:
Collaboration graph
[legend]

Public Member Functions

 SDFBox (const coord_3d &length, const coord_3d &center)
 Constructor for box. More...
 
double sdf (const coord_3d &pt) const
 Computes the normal distance. More...
 
coord_3d grad_sdf (const coord_3d &pt) const
 
- Public Member Functions inherited from madness::SignedDFInterface< 3 >
virtual double sdf (const Vector< double, NDIM > &x) const =0
 Returns the signed distance from the surface,. More...
 
virtual Vector< double, NDIM > grad_sdf (const Vector< double, NDIM > &x) const =0
 Returns the gradient of the signed distance from the surface (i.e., dsdf(x)/dx[i] ) More...
 
virtual ~SignedDFInterface ()
 

Protected Attributes

const coord_3d lengths
 Half the length of each side of the box. More...
 
const coord_3d center
 the center of the box More...
 

Detailed Description

A box (3 dimensions)

Note
LIMIT – the 3 primary axes must be x, y, and z

Constructor & Destructor Documentation

madness::SDFBox::SDFBox ( const coord_3d &  length,
const coord_3d &  center 
)
inline

Constructor for box.

Parameters
lengthThe lengths of the box
centerThe center of the box

Member Function Documentation

coord_3d madness::SDFBox::grad_sdf ( const coord_3d &  pt) const
inline

Computes the gradient of the SDF.

Parameters
ptPoint at which to compute the gradient
Returns
the gradient

References MADNESS_EXCEPTION.

double madness::SDFBox::sdf ( const coord_3d &  pt) const
inline

Computes the normal distance.

This SDF naively uses contours, and should be improved before serious usage. If far from the corners, the SDF is easy (similar to a plane), and is essentially what's implemented.

Parameters
ptPoint at which to compute the distance from the surface
Returns
The signed distance from the surface

References mpfr::fabs(), and max.

Member Data Documentation

const coord_3d madness::SDFBox::center
protected

the center of the box

const coord_3d madness::SDFBox::lengths
protected

Half the length of each side of the box.


The documentation for this class was generated from the following file: