# Class Surface¶

## Class Documentation¶

class Surface : public Referenced

A geometrical surface.

Defines a surface. Can be queried if the candidate has crossed the surface in the last step.

Subclassed by ParaxialBox, Plane, Sphere

Public Functions

virtual double distance(const Vector3d &point) const = 0

Returns the distance of a point to the surface. Negative on the one side, positive on the other. For closed surfaces it is negative on the inside.

virtual Vector3d normal(const Vector3d &point) const = 0

Returns the normal to the surface at a point. Negative on the one side, positive on the other. For closed surfaces it is negative on the inside.

virtual std::string getDescription() const
size_t addReference() const
size_t removeReference() const
int removeReferenceNoDelete() const
size_t getReferenceCount() const

Protected Attributes

size_t _referenceCount