sc::Shape Class Referenceabstract

A Shape is a Volume represents an 3D solid. More...

`#include <shape.h>`

Inheritance diagram for sc::Shape:
[legend]
Collaboration diagram for sc::Shape:
[legend]

## Public Member Functions

| Shape (const Ref< KeyVal > &keyval)
virtual double | distance_to_surface (const SCVector3 &r, SCVector3 *grad=0) const =0
virtual int | is_outside (const SCVector3 &r) const
void | compute ()
| Recompute at least the results that have compute true and are not already computed. More...
void | interpolate (const SCVector3 &p1, const SCVector3 &p2, double val, SCVector3 &result)
int | value_implemented () const
| Information about the availability of values, gradients, and hessians. More...
Public Member Functions inherited from sc::Volume
| Volume (const Ref< KeyVal > &)
void | set_gradient (const SCVector3 &g)
void | set_gradient (RefSCVector &g)
void | get_gradient (SCVector3 &g)
void | set_x (const SCVector3 &x)
void | set_x (const RefSCVector &x)
| Set and retrieve the coordinate values.
void | get_x (SCVector3 &x)
virtual void | boundingbox (double valuemin, double valuemax, SCVector3 &p1, SCVector3 &p2)=0
virtual void | solve (const SCVector3 &p, const SCVector3 &grad, double value, SCVector3 &result)
Public Member Functions inherited from sc::Function
| Function (StateIn &)
| Function (const Function &)
| Function (const Ref< KeyVal > &, double funcacc=DBL_EPSILON, double gradacc=DBL_EPSILON, double hessacc=DBL_EPSILON)
| The keyval constructor reads the following keywords: More...
Function & | operator= (const Function &)
Ref< SCMatrixKit > | matrixkit () const
| Return the SCMatrixKit used to construct vectors and matrices. More...
RefSCDimension | dimension () const
| Return the SCDimension of the problem.
virtual void | save_data_state (StateOut &)
| Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. More...
virtual double | value ()
| Return the value of the function.
int | value_needed () const
| Returns nonzero if the current value is not up-to-date.
int | do_value (int)
| If passed a nonzero number, compute the value the next time compute() is called. More...
AccResultdouble & | value_result ()
virtual void | set_desired_value_accuracy (double)
| Set the accuracy to which the value is to be computed.
virtual double | actual_value_accuracy () const
| Return the accuracy with which the value has been computed.
virtual double | desired_value_accuracy () const
| Return the accuracy with which the value is to be computed.
virtual void | guess_hessian (RefSymmSCMatrix &)
| Compute a quick, approximate hessian.
virtual RefSymmSCMatrix | inverse_hessian (RefSymmSCMatrix &)
virtual int | gradient_implemented () const
virtual int | hessian_implemented () const
RefSCVector | get_x () const
const RefSCVector & | get_x_no_copy () const
virtual Ref< NonlinearTransform > | change_coordinates ()
| An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system. More...
virtual void | print (std::ostream &=ExEnv::out0()) const
| Print information about the object.
virtual RefSCVector | gradient ()
int | gradient_needed () const
int | do_gradient (int)
virtual void | set_desired_gradient_accuracy (double)
virtual double | actual_gradient_accuracy () const
virtual double | desired_gradient_accuracy () const
AccResultRefSCVector & | gradient_result ()
virtual RefSymmSCMatrix | hessian ()
int | hessian_needed () const
int | do_hessian (int)
virtual void | set_desired_hessian_accuracy (double)
virtual double | actual_hessian_accuracy () const
virtual double | desired_hessian_accuracy () const
AccResultRefSymmSCMatrix & | hessian_result ()
Public Member Functions inherited from sc::SavableState
SavableState & | operator= (const SavableState &)
void | save_state (StateOut &)
| Save the state of the object as specified by the StateOut object. More...
void | save_object_state (StateOut &)
| This can be used for saving state when the exact type of the object is known for both the save and the restore. More...
virtual void | save_vbase_state (StateOut &)
| Save the virtual bases for the object. More...
Public Member Functions inherited from sc::DescribedClass
| DescribedClass (const DescribedClass &)
DescribedClass & | operator= (const DescribedClass &)
ClassDesc * | class_desc () const throw ()
| This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More...
const char * | class_name () const
| Return the name of the object's exact type.
int | class_version () const
| Return the version of the class.
Public Member Functions inherited from sc::RefCount
int | lock_ptr () const
| Lock this object.
int | unlock_ptr () const
| Unlock this object.
void | use_locks (bool inVal)
| start and stop using locks on this object
refcount_t | nreference () const
| Return the reference count.
refcount_t | reference ()
| Increment the reference count and return the new count.
refcount_t | dereference ()
| Decrement the reference count and return the new count.
int | managed () const
void | unmanage ()
| Turn off the reference counting mechanism for this object. More...
int | managed () const
| Return 1 if the object is managed. Otherwise return 0.
Public Member Functions inherited from sc::Identity
Identifier | identifier ()
| Return the Identifier for this argument. More...
Public Member Functions inherited from sc::Compute
virtual void | obsolete ()
| Marks all results as being out of date. More...

## Additional Inherited Members

Static Public Member Functions inherited from sc::SavableState
static void | save_state (SavableState *s, StateOut &)
static SavableState * | restore_state (StateIn &si)
| Restores objects saved with save_state. More...
static SavableState * | key_restore_state (StateIn &si, const char *keyword)
| Like restore_state, but keyword is used to override values while restoring. More...
static SavableState * | dir_restore_state (StateIn &si, const char *objectname, const char *keyword=0)
Protected Member Functions inherited from sc::Volume
double & | interpolation_accuracy ()
virtual void | failure (const char *)
Protected Attributes inherited from sc::Function
Ref< SCMatrixKit > | matrixkit_
| Used to construct new matrices.
RefSCVector | x_
| The variables.
RefSCDimension | dim_
| The dimension of x_.
AccResultdouble | value_
| The value of the function at x_.
AccResultRefSCVector | gradient_
| The gradient at x_.
AccResultRefSymmSCMatrix | hessian_
| The hessian at x_.

## Detailed Description

A Shape is a Volume represents an 3D solid.

The value of the Shape at each point in space is the distance to the surface. The distance is negative if the point is inside the solid. For Shape specializations that cannot compute the distance to the surface, the value will be 1.0 outside and -1.0 inside the solid.

## Member Function Documentation

void sc::Shape::compute | ( |  | ) |

virtual

Recompute at least the results that have compute true and are not already computed.

This should only be called by Result's members.

Implements sc::Volume.

int sc::Shape::value_implemented | ( |  | ) | const

virtual

Information about the availability of values, gradients, and hessians.

Reimplemented from sc::Function.

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

- shape.h