Loading...
Searching...
No Matches
GeomUtilCapsuleMeshGenerator Class Referencefinal

This class provides an implementation for generating topology and point positions on a capsule. More...

#include <capsuleMeshGenerator.h>

+ Inheritance diagram for GeomUtilCapsuleMeshGenerator:

Static Public Member Functions

static GEOMUTIL_API size_t ComputeNumPoints (const size_t numRadial, const size_t numCapAxial, const bool closedSweep=true)
 
static GEOMUTIL_API PxOsdMeshTopology GenerateTopology (const size_t numRadial, const size_t numCapAxial, const bool closedSweep=true)
 
template<typename PointIterType , typename ScalarType , typename Enabled = typename _EnableIfGfVec3Iterator<PointIterType>::type>
static void GeneratePoints (PointIterType iter, const size_t numRadial, const size_t numCapAxial, const ScalarType radius, const ScalarType height, const GfMatrix4d *framePtr=nullptr)
 
template<typename PointIterType , typename ScalarType , typename Enabled = typename _EnableIfGfVec3Iterator<PointIterType>::type>
static void GeneratePoints (PointIterType iter, const size_t numRadial, const size_t numCapAxial, const ScalarType bottomRadius, const ScalarType topRadius, const ScalarType height, const ScalarType sweepDegrees, const GfMatrix4d *framePtr=nullptr)
 
template<typename PointIterType , typename Enabled = typename _EnableIfNotGfVec3Iterator<PointIterType>::type>
static void GeneratePoints (PointIterType iter,...)
 
- Static Public Member Functions inherited from GeomUtilMeshGeneratorBase
template<typename PointIterType , typename Enabled = typename _EnableIfNotGfVec3Iterator<PointIterType>::type>
static void GeneratePoints (PointIterType iter,...)
 

Static Public Attributes

static constexpr size_t minNumRadial = 3
 
static constexpr size_t minNumCapAxial = 1
 

Additional Inherited Members

- Protected Types inherited from GeomUtilMeshGeneratorBase
enum  _CapStyle { CapStyleNone , CapStyleSharedEdge , CapStyleSeparateEdge }
 
- Static Protected Member Functions inherited from GeomUtilMeshGeneratorBase
static PxOsdMeshTopology _GenerateCappedQuadTopology (const size_t numRadial, const size_t numQuadStrips, const _CapStyle bottomCapStyle, const _CapStyle topCapStyle, const bool closedSweep)
 
static size_t _ComputeNumRadialPoints (const size_t numRadial, const bool closedSweep)
 

Detailed Description

This class provides an implementation for generating topology and point positions on a capsule.

The simplest form takes a radius and height and is a cylinder capped by two hemispheres that is centered at the origin. The generated capsule is made up of circular cross-sections in the XY plane. Each cross-section has numRadial segments. Successive cross-sections for each of the hemispheres are generated at numCapAxial locations along the Z and -Z axes respectively. The height is aligned with the Z axis and represents the height of just the cylindrical portion.

An optional transform may be provided to GeneratePoints to orient the capsule as necessary (e.g., whose height is along the Y axis) .

An additional overload of GeneratePoints is provided to specify different radii and heights for the bottom and top caps, as well as the sweep angle for the capsule about the +Z axis. When the sweep is less than 360 degrees, the generated geometry is not closed.

Usage:

const size_t numRadial = 4, numCapAxial = 4;
const size_t numPoints =
GeomUtilCapsuleMeshGenerator::ComputeNumPoints(numRadial, numCapAxial);
const float radius = 1, height = 2;
MyPointContainer<GfVec3f> points(numPoints);
GeomUtilCapsuleMeshGenerator::GeneratePoints(
points.begin(), numRadial, numCapAxial, radius, height);

Definition at line 69 of file capsuleMeshGenerator.h.

Member Function Documentation

◆ GeneratePoints() [1/3]

static void GeneratePoints ( PointIterType  iter,
const size_t  numRadial,
const size_t  numCapAxial,
const ScalarType  bottomRadius,
const ScalarType  topRadius,
const ScalarType  height,
const ScalarType  sweepDegrees,
const GfMatrix4d framePtr = nullptr 
)
inlinestatic

Definition at line 112 of file capsuleMeshGenerator.h.

◆ GeneratePoints() [2/3]

static void GeneratePoints ( PointIterType  iter,
const size_t  numRadial,
const size_t  numCapAxial,
const ScalarType  radius,
const ScalarType  height,
const GfMatrix4d framePtr = nullptr 
)
inlinestatic

Definition at line 92 of file capsuleMeshGenerator.h.

◆ GeneratePoints() [3/3]

static void GeneratePoints ( PointIterType  iter,
  ... 
)
inlinestatic

Definition at line 234 of file meshGeneratorBase.h.

Member Data Documentation

◆ minNumCapAxial

constexpr size_t minNumCapAxial = 1
staticconstexpr

Definition at line 74 of file capsuleMeshGenerator.h.

◆ minNumRadial

constexpr size_t minNumRadial = 3
staticconstexpr

Definition at line 73 of file capsuleMeshGenerator.h.


The documentation for this class was generated from the following file: