ParticleAPI 3.0.0
Performant particle system API in C++ for interactive graphics
Public Member Functions | Public Attributes | List of all members
PDTriangle Struct Reference

A Triangle. More...

#include <pDomain.h>

Inheritance diagram for PDTriangle:
pDomain

Public Member Functions

 PDTriangle (const pVec &p0, const pVec &p1, const pVec &p2)
 
void PDTriangle_Cons (const pVec &p0, const pVec &p1, const pVec &p2)
 
bool Within (const pVec &pos) const
 Returns true for points within epsilon of the triangle. More...
 
pVec Generate () const
 Returns a random point in the triangle. More...
 
float Size () const
 Returns the size of the domain (length, area, or volume). More...
 
std::shared_ptr< pDomaincopy () const
 
virtual bool Within (const pVec &) const =0
 Returns true if the given point is within the domain. More...
 
virtual pVec Generate () const =0
 Returns a random point in the domain. More...
 
virtual float Size () const =0
 Returns the size of the domain (length, area, or volume). More...
 
virtual std::shared_ptr< pDomaincopy () const =0
 

Public Attributes

pVec p
 
pVec u
 
pVec v
 
pVec uNrm
 
pVec vNrm
 
pVec nrm
 
pVec s1
 
pVec s2
 
float uLen
 
float vLen
 
float D
 
float area
 
- Public Attributes inherited from pDomain
pDomainType_E Which
 

Detailed Description

A Triangle.

p0, p1, and p2 are the vertices of the triangle. The triangle can be used to define an arbitrary geometrical model for particles to bounce off, or generate particles on its surface (and explode them), etc.

Generate returns a random point in the triangle. Within returns true for points within epsilon of the triangle. Currently it is not possible to sink particles that enter/exit a polygonal model. Suggestions?

Constructor & Destructor Documentation

◆ PDTriangle()

PDTriangle ( const pVec p0,
const pVec p1,
const pVec p2 
)
inline

Member Function Documentation

◆ copy()

std::shared_ptr< pDomain > copy ( ) const
inlinevirtual

Implements pDomain.

◆ Generate()

pVec Generate ( ) const
inlinevirtual

Returns a random point in the triangle.

Implements pDomain.

◆ PDTriangle_Cons()

void PDTriangle_Cons ( const pVec p0,
const pVec p1,
const pVec p2 
)
inline

◆ Size()

float Size ( ) const
inlinevirtual

Returns the size of the domain (length, area, or volume).

Implements pDomain.

◆ Within()

bool Within ( const pVec pos) const
inlinevirtual

Returns true for points within epsilon of the triangle.

Implements pDomain.

Member Data Documentation

◆ area

float area

◆ D

float D

◆ nrm

pVec nrm

◆ p

pVec p

◆ s1

pVec s1

◆ s2

pVec s2

◆ u

pVec u

◆ uLen

float uLen

◆ uNrm

pVec uNrm

◆ v

pVec v

◆ vLen

float vLen

◆ vNrm

pVec vNrm

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