# sc_Shape man page

sc::Shape — A **Shape** is a **Volume** represents an 3D solid.

## Synopsis

`#include <shape.h>`

Inherits **sc::Volume**.

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

### Public Member Functions

Shape(constRef<KeyVal> &keyval)

virtual doubledistance_to_surface(constSCVector3&r,SCVector3*grad=0) const =0

virtual intis_outside(constSCVector3&r) const

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

voidinterpolate(constSCVector3&p1, constSCVector3&p2, double val,SCVector3&result)

intvalue_implemented() constInformation about the availability of values, gradients, and hessians.

### Additional Inherited Members

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