|
EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
|
File containing various analytic signed distance fields. More...
#include <algorithm>#include <cmath>#include <cstddef>#include <random>#include <type_traits>#include "EBGeometry_Array.hpp"#include "EBGeometry_BoundingVolumes.hpp"#include "EBGeometry_Constants.hpp"#include "EBGeometry_DistanceQuality.hpp"#include "EBGeometry_GPU.hpp"#include "EBGeometry_Macros.hpp"#include "EBGeometry_Math.hpp"#include "EBGeometry_Vec.hpp"#include "EBGeometry_AnalyticRayForms.hpp"

Go to the source code of this file.
Classes | |
| class | EBGeometry::PlaneSDF< T > |
| Signed distance function for a plane. More... | |
| class | EBGeometry::SphereSDF< T > |
| Signed distance field for a sphere. More... | |
| class | EBGeometry::BoxSDF< T > |
| Signed distance field for an axis-aligned box (AABB). More... | |
| class | EBGeometry::TorusSDF< T > |
| Signed distance field for a torus. More... | |
| class | EBGeometry::CylinderSDF< T > |
| Signed distance field for a finite, flat-capped cylinder. More... | |
| class | EBGeometry::InfiniteCylinderSDF< T > |
| Signed distance field for an infinitely long cylinder. More... | |
| class | EBGeometry::CapsuleSDF< T > |
| Signed distance field for a capsule (pill shape): a cylinder capped with hemispheres. More... | |
| class | EBGeometry::InfiniteConeSDF< T > |
| Signed distance field for an infinite cone. More... | |
| class | EBGeometry::ConeSDF< T > |
| Signed distance field for a finite cone. More... | |
| class | EBGeometry::RoundedBoxSDF< T > |
| Signed distance field for an axis-aligned box with rounded edges and corners. More... | |
| class | EBGeometry::PerlinSDF< T > |
| Ken Perlin's gradient-noise implicit function. More... | |
| class | EBGeometry::RoundedCylinderSDF< T > |
| Signed distance field for a cylinder with rounded (toroidal) edges. More... | |
Namespaces | |
| namespace | EBGeometry |
| Namespace containing all of EBGeometry's functionality. | |
File containing various analytic signed distance fields.
Every shape here is a plain, trivially copyable value type with no base class and no virtual functions. Its signedDistance() and accessors are callable on the host and on a device, so a shape can be copied into a kernel by value and evaluated there. Constructors run on the host. Every shape is a shape in the sense of isShape, so it can be composed with the expression builder (Union, Translate, ...; see EBGeometry_Expr.hpp) and compiled into a Tape.
Conventions shared by every shape: