## SYNOPSIS

#include <shape.h>

Inherits **sc::Volume**.

Inherited by **sc::ConnollyShape**, **sc::SphereShape**, **sc::Uncapped5SphereExclusionShape**, **sc::UncappedTorusHoleShape**, and **sc::UnionShape**.

## 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. *

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. *

## 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**.

## Author

Generated automatically by Doxygen for MPQC from the source code.