Volume Cartographer 2.27.0
Public Member Functions | Private Member Functions | List of all members
volcart::shapes::Spiral Class Reference

Spiral (i.e. scroll-like) surface shape. More...

#include <vc/core/shapes/Spiral.hpp>

Inheritance diagram for volcart::shapes::Spiral:
[legend]
Collaboration diagram for volcart::shapes::Spiral:
[legend]

Public Member Functions

 Spiral (double arcLength, double height, double a=0.5, double b=0.1, double dTheta=0.25, double dH=1.0)
 Constructor parameterized for angular offset and distance between spirals.
 
 Spiral (double arcLength, double height, int numPts, int numCurves, double a=0.5, double b=0.1)
 Constructor parameterized for number of points along the spiral and the number of spirals.
 
- Public Member Functions inherited from volcart::shapes::ShapePrimitive
ITKMesh::Pointer itkMesh ()
 Return the shape as an ITKMesh.
 
vtkSmartPointer< vtkPolyData > vtkMesh ()
 Return the shape as a vtkPolyData.
 
PointSet< cv::Vec3d > unorderedPoints ()
 Return the vertices as a PointSet. More...
 
PointSet< cv::Vec6d > unorderedPointNormal ()
 Return the vertices and vertex normals as a PointSet. More...
 
std::vector< SimpleMesh::VertexgetPoints () const
 Return the vertices as a list of SimpleMesh::Vertex. More...
 
std::vector< SimpleMesh::CellgetCells () const
 Return the faces as a list of volcart::Cell. More...
 
OrderedPointSet< cv::Vec3d > orderedPoints ()
 Return the vertices as an OrderedPointSet. More...
 
OrderedPointSet< cv::Vec6d > orderedPointNormal ()
 Return the vertices and vertex normals as an OrderedPointSet. More...
 
bool isOrdered () const
 Return if the shape generator created ordered vertices. More...
 
std::size_t orderedWidth () const
 Return the width of the ordered vertex set. More...
 
std::size_t orderedHeight () const
 Return the height of the ordered vertex set. More...
 

Private Member Functions

void construct_spiral_ (int numCols, int numRows, double a, double b, double dTheta, double dH)
 

Additional Inherited Members

- Protected Member Functions inherited from volcart::shapes::ShapePrimitive
 ShapePrimitive ()
 
void addVertex_ (double x, double y, double z)
 Add a new vertex to the shape.
 
void addCell_ (int v1, int v2, int v3)
 Add a new triangular face to the mesh from vertex IDs. More...
 
void updateNormal_ (int vertID, double nx, double ny, double nz)
 Update the normal of a vertex with a new normal component. More...
 
- Protected Attributes inherited from volcart::shapes::ShapePrimitive
std::vector< SimpleMesh::Vertexpoints_
 
std::vector< SimpleMesh::Cellcells_
 
bool ordered_ {false}
 
std::size_t orderedWidth_ {0}
 
std::size_t orderedHeight_ {0}
 

Detailed Description

Spiral (i.e. scroll-like) surface shape.

Author
Seth Parker
Date
12/14/17

This class generates a scroll-like surface shape using a logarithmic spiral as the basis for the shape.

The spiral is parameterized by the arc length of the spiral and the number of samples along the curve. The number of desired samples can be provided directly, or can be determined by providing the angular offset between each point on the curve. The parameters a and b are scaling coefficients on the equations for the coordinates of the sampled points. They can be thought of as controlling the "tightness" of the spiral:

\begin{eqnarray*}
     x(\theta) &=& ae^{b\theta}\cos (\theta) \\
     y(\theta) &=& ae^{b\theta}\sin (\theta)
\end{eqnarray*}

The points generated by this class are ordered.

Definition at line 35 of file Spiral.hpp.

Member Function Documentation

◆ construct_spiral_()

void volcart::shapes::Spiral::construct_spiral_ ( int  numCols,
int  numRows,
double  a,
double  b,
double  dTheta,
double  dH 
)
private

Generic spiral construction


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