Class Surface

Inheritance Relationships

Base Type

Derived Types

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.

Parameters:

point – vector corresponding to the point to which compute the distance

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.

Parameters:

point – vector corresponding to the point to which compute the normal vector

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

Protected Attributes

mutable size_t _referenceCount