mantaflow
0.10
A framework for fluid simulation
|
#include <mesh.h>
Public Member Functions | |
PYTHON () Mesh(FluidSolver *parent) | |
virtual Mesh * | clone () |
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 | |
Mesh & | operator= (const Mesh &o) |
int | numTris () const |
int | numNodes () const |
int | numTriChannels () const |
int | numNodeChannels () const |
Triangle & | tris (int i) |
Node & | nodes (int i) |
Corner & | corners (int tri, int c) |
Corner & | corners (int c) |
NodeChannel * | nodeChannel (int i) |
TriChannel * | triChannel (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 |
Vec3 & | getNode (int tri, int c) |
const Vec3 | getEdge (int tri, int e) const |
OneRing & | get1Ring (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 MACGrid & | vel |
PYTHON() void save(std MACGrid int | integrationMode |
Real | sigma |
Real Real | cutoff =-1.) |
FlagGrid * | respectFlags =0 |
FlagGrid Real | cutoff =-1.) |
Protected Member Functions | |
void | rebuildChannels () |
Protected Attributes | |
std::vector< Node > | mNodes |
std::vector< Triangle > | mTris |
std::vector< Corner > | mCorners |
std::vector< NodeChannel * > | mNodeChannels |
std::vector< TriChannel * > | mTriChannels |
std::vector< OneRing > | m1RingLookup |
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.