mantaflow  0.10
A framework for fluid simulation
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
Manta::Mesh Class Reference

Triangle mesh class. More...

#include <mesh.h>

Inheritance diagram for Manta::Mesh:
Manta::VortexSheetMesh

Public Types

enum  NodeFlags {
  NfNone = 0, NfFixed = 1, NfMarked = 2, NfKillme = 4,
  NfCollide = 8
}
 
enum  FaceFlags { FfNone = 0, FfDoubled = 1, FfMarked = 2 }
 
enum  MeshType { TypeNormal = 0, TypeVortexSheet }
 

Public Member Functions

 PYTHON () Mesh(FluidSolver *parent)
 
virtual Meshclone ()
 
virtual MeshType getType ()
 
Real computeCenterOfMass (Vec3 &cm) const
 
void computeVertexNormals ()
 
 PYTHON () void clear()
 
PYTHON() void load(std PYTHON () void fromShape(Shape &shape
 
PYTHON() void save(std PYTHON () void advectInGrid(FlagGrid &flags
 
 PYTHON () void scale(Vec3 s)
 
 PYTHON () void offset(Vec3 o)
 
 PYTHON () void computeLevelset(LevelsetGrid &levelset
 
 PYTHON () void applyMeshToGrid(GridBase *grid
 map mesh to grid with sdf
 
Meshoperator= (const Mesh &o)
 
int numTris () const
 
int numNodes () const
 
int numTriChannels () const
 
int numNodeChannels () const
 
Triangletris (int i)
 
Nodenodes (int i)
 
Cornercorners (int tri, int c)
 
Cornercorners (int c)
 
NodeChannelnodeChannel (int i)
 
TriChanneltriChannel (int i)
 
void resizeTris (int numTris)
 
void resizeNodes (int numNodes)
 
bool isNodeFixed (int n)
 
bool isTriangleFixed (int t)
 
const Vec3 getNode (int tri, int c) const
 
Vec3getNode (int tri, int c)
 
const Vec3 getEdge (int tri, int e) const
 
OneRingget1Ring (int node)
 
Real getFaceArea (int t)
 
Vec3 getFaceNormal (int t)
 
Vec3 getFaceCenter (int t)
 
std::vector< Node > & getNodeData ()
 
void mergeNode (int node, int delnode)
 
int addNode (Node a)
 
int addTri (Triangle a)
 
void addCorner (Corner a)
 
void removeTri (int tri)
 
void removeTriFromLookup (int tri)
 
void removeNodes (const std::vector< int > &deletedNodes)
 
void rebuildCorners (int from=0, int to=-1)
 
void rebuildLookup (int from=0, int to=-1)
 
void rebuildQuickCheck ()
 do a quick check whether a rebuild is necessary, and if yes do rebuild
 
void fastNodeLookupRebuild (int corner)
 
void sanityCheck (bool strict=true, std::vector< int > *deletedNodes=0, std::map< int, bool > *taintedTris=0)
 
void addTriChannel (TriChannel *c)
 
void addNodeChannel (NodeChannel *c)
 

Public Attributes

PYTHON() void load(std bool append = false)
 
PYTHON() void save(std MACGridvel
 
PYTHON() void save(std MACGrid int integrationMode
 
Real sigma
 
Real Real cutoff =-1.)
 
FlagGridrespectFlags =0
 
FlagGrid Real cutoff =-1.)
 

Protected Member Functions

void rebuildChannels ()
 

Protected Attributes

std::vector< NodemNodes
 
std::vector< TrianglemTris
 
std::vector< CornermCorners
 
std::vector< NodeChannel * > mNodeChannels
 
std::vector< TriChannel * > mTriChannels
 
std::vector< OneRingm1RingLookup
 

Detailed Description

Triangle mesh class.

note: this is only a temporary solution, details are bound to change long term goal is integration with Split&Merge code by Wojtan et al.


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