Fluid: Updated Mantaflow source files

New files include fixes for obj mesh import and minor cleanups.
This commit is contained in:
Sebastián Barschkis 2020-07-14 22:15:00 +02:00
parent 98b1a716d6
commit 7e0289b618
3 changed files with 21 additions and 12 deletions

View File

@ -248,12 +248,14 @@ template<class S> class Vector3D {
protected:
};
//! helper to check whether float/double value is non-zero
inline bool notZero(Real f)
//! helper to check whether value is non-zero
template<class S> inline bool notZero(S v)
{
if (std::abs(f) > VECTOR_EPSILON)
return true;
return false;
return (std::abs(v) > VECTOR_EPSILON);
}
template<class S> inline bool notZero(Vector3D<S> v)
{
return (std::abs(norm(v)) > VECTOR_EPSILON);
}
//************************************************************************

View File

@ -315,10 +315,14 @@ int readObjFile(const std::string &name, Mesh *mesh, bool append)
return 0;
}
const Real dx = mesh->getParent()->getDx();
const Vec3 gs = toVec3(mesh->getParent()->getGridSize());
if (!append)
mesh->clear();
int nodebase = mesh->numNodes();
int cnt = nodebase;
int cntNodes = nodebase, cntNormals = nodebase;
while (ifs.good() && !ifs.eof()) {
string id;
ifs >> id;
@ -333,19 +337,23 @@ int readObjFile(const std::string &name, Mesh *mesh, bool append)
}
else if (id == "vn") {
// normals
if (!mesh->numNodes()) {
if (mesh->numNodes() != cntNodes) {
errMsg("invalid amount of nodes");
return 0;
}
Node n = mesh->nodes(cnt);
ifs >> n.normal.x >> n.normal.y >> n.normal.z;
cnt++;
Node *n = &mesh->nodes(cntNormals);
ifs >> n->normal.x >> n->normal.y >> n->normal.z;
cntNormals++;
}
else if (id == "v") {
// vertex
Node n;
ifs >> n.pos.x >> n.pos.y >> n.pos.z;
// convert to grid space
n.pos /= dx;
n.pos += gs * 0.5;
mesh->addNode(n);
cntNodes++;
}
else if (id == "g") {
// group
@ -408,7 +416,6 @@ int writeObjFile(const string &name, Mesh *mesh)
// write normals
for (int i = 0; i < numVerts; i++) {
Vector3D<float> n = toVec3f(mesh->nodes(i).normal);
// normalize to unit cube around 0
ofs << "vn " << n.value[0] << " " << n.value[1] << " " << n.value[2] << " "
<< "\n";
}

View File

@ -1,3 +1,3 @@
#define MANTA_GIT_VERSION "commit d80d3c821de74315ab26b5efd153d41477b976c4"
#define MANTA_GIT_VERSION "commit 7395d36e3f504edbdabe34b30edc855b422c7baa"