Viskores  1.0
Public Member Functions | Private Attributes | List of all members
viskores::Frustum Class Reference

Implicit function for a frustum. More...

#include <ImplicitFunction.h>

Inheritance diagram for viskores::Frustum:
viskores::cont::ExecutionAndControlObjectBase viskores::cont::ExecutionObjectBase

Public Member Functions

 Frustum ()=default
 Construct axis-aligned frustum with center at (0,0,0) and each side of length 1.0. More...
 
 Frustum (const Vector points[6], const Vector normals[6])
 Construct a frustum defined with 6 planes of the given points and normals. More...
 
 Frustum (const Vector points[8])
 Construct a frustum defined by the 8 points of the bounding hexahedron. More...
 
void SetPlanes (const Vector points[6], const Vector normals[6])
 Specifies the 6 planes of the frustum. More...
 
void SetPlane (int idx, const Vector &point, const Vector &normal)
 Set one of the 6 planes of the frustum. More...
 
void GetPlanes (Vector points[6], Vector normals[6]) const
 Specifies the 6 planes of the frustum. More...
 
const Vector * GetPoints () const
 
const Vector * GetNormals () const
 
void CreateFromPoints (const Vector points[8])
 Specifies the frustum as the 8 points of the bounding hexahedron. More...
 
Scalar Value (const Vector &point) const
 Evaluate the value of the implicit function. More...
 
Vector Gradient (const Vector &point) const
 Evaluate the gradient of the implicit function. More...
 

Private Attributes

Vector Points [6]
 
Vector Normals [6]
 

Detailed Description

Implicit function for a frustum.

Constructor & Destructor Documentation

◆ Frustum() [1/3]

viskores::Frustum::Frustum ( )
default

Construct axis-aligned frustum with center at (0,0,0) and each side of length 1.0.

◆ Frustum() [2/3]

viskores::Frustum::Frustum ( const Vector  points[6],
const Vector  normals[6] 
)
inline

Construct a frustum defined with 6 planes of the given points and normals.

◆ Frustum() [3/3]

viskores::Frustum::Frustum ( const Vector  points[8])
inlineexplicit

Construct a frustum defined by the 8 points of the bounding hexahedron.

The points should be specified in the order of hex-cell vertices

Member Function Documentation

◆ CreateFromPoints()

void viskores::Frustum::CreateFromPoints ( const Vector  points[8])
inline

Specifies the frustum as the 8 points of the bounding hexahedron.

The points should be specified in the order of hex-cell vertices

◆ GetNormals()

const Vector* viskores::Frustum::GetNormals ( ) const
inline

◆ GetPlanes()

void viskores::Frustum::GetPlanes ( Vector  points[6],
Vector  normals[6] 
) const
inline

Specifies the 6 planes of the frustum.

◆ GetPoints()

const Vector* viskores::Frustum::GetPoints ( ) const
inline

◆ Gradient()

Vector viskores::Frustum::Gradient ( const Vector &  point) const
inline

Evaluate the gradient of the implicit function.

The Gradient() method for an implicit function takes a viskores::Vec3f and returns a viskores::Vec3f representing the pointing direction from the implicit function's shape. Gradient calculations are more object shape specific. It is advised to look at the individual shape implementations for specific implicit functions.

◆ SetPlane()

void viskores::Frustum::SetPlane ( int  idx,
const Vector &  point,
const Vector &  normal 
)
inline

Set one of the 6 planes of the frustum.

◆ SetPlanes()

void viskores::Frustum::SetPlanes ( const Vector  points[6],
const Vector  normals[6] 
)
inline

Specifies the 6 planes of the frustum.

◆ Value()

Scalar viskores::Frustum::Value ( const Vector &  point) const
inline

Evaluate the value of the implicit function.

The Value() method for an implicit function takes a viskores::Vec3f and returns a viskores::FloatDefault representing the orientation of the point with respect to the implicit function's shape. Negative scalar values represent vector points inside of the implicit function's shape. Positive scalar values represent vector points outside the implicit function's shape. Zero values represent vector points that lie on the surface of the implicit function.

Member Data Documentation

◆ Normals

Vector viskores::Frustum::Normals[6]
private
Initial value:
= { { -1.0f, 0.0f, 0.0f }, { 1.0f, 0.0f, 0.0f }, { 0.0f, -1.0f, 0.0f },
{ 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, -1.0f }, { 0.0f, 0.0f, 1.0f } }

◆ Points

Vector viskores::Frustum::Points[6]
private
Initial value:
= { { -0.5f, 0.0f, 0.0f }, { 0.5f, 0.0f, 0.0f }, { 0.0f, -0.5f, 0.0f },
{ 0.0f, 0.5f, 0.0f }, { 0.0f, 0.0f, -0.5f }, { 0.0f, 0.0f, 0.5f } }

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