no longer need to use start_modes, because all the rigid modes are not saved in .bin files in the preprocessor

This commit is contained in:
jingyuc
2021-11-16 21:05:48 -05:00
parent 2d08d4047a
commit 007eea15cb
15 changed files with 30 additions and 41 deletions
@@ -12,7 +12,6 @@ btReducedSoftBody::btReducedSoftBody(btSoftBodyWorldInfo* worldInfo, int node_co
// reduced deformable
m_reducedModel = true;
m_startMode = 0;
m_nReduced = 0;
m_nFull = 0;
@@ -43,9 +42,8 @@ btReducedSoftBody::btReducedSoftBody(btSoftBodyWorldInfo* worldInfo, int node_co
m_rigidTransformWorld.setIdentity();
}
void btReducedSoftBody::setReducedModes(int start_mode, int num_modes, int full_size)
void btReducedSoftBody::setReducedModes(int num_modes, int full_size)
{
m_startMode = start_mode;
m_nReduced = num_modes;
m_nFull = full_size;
m_reducedDofs.resize(m_nReduced, 0);
@@ -71,7 +71,6 @@ class btReducedSoftBody : public btSoftBody
//
// reduced space
int m_startMode;
int m_nReduced;
int m_nFull;
tDenseMatrix m_modes; // modes of the reduced deformable model. Each inner array is a mode, outer array size = n_modes
@@ -105,7 +104,7 @@ class btReducedSoftBody : public btSoftBody
//
void internalInitialization();
void setReducedModes(int start_mode, int num_modes, int full_size);
void setReducedModes(int num_modes, int full_size);
void setMassProps(const tDenseArray& mass_array);
@@ -4,39 +4,39 @@
#include <string>
#include <sstream>
btReducedSoftBody* btReducedSoftBodyHelpers::createReducedBeam(btSoftBodyWorldInfo& worldInfo, const int start_mode, const int num_modes)
btReducedSoftBody* btReducedSoftBodyHelpers::createReducedBeam(btSoftBodyWorldInfo& worldInfo, const int num_modes)
{
std::string filepath("../../../examples/SoftDemo/beam/");
std::string filename = filepath + "mesh.vtk";
btReducedSoftBody* rsb = btReducedSoftBodyHelpers::createFromVtkFile(worldInfo, filename.c_str());
rsb->setReducedModes(start_mode, num_modes, rsb->m_nodes.size());
rsb->setReducedModes(num_modes, rsb->m_nodes.size());
btVector3 half_extents(0.5, 0.25, 2);
btReducedSoftBodyHelpers::readReducedDeformableInfoFromFiles(rsb, filepath.c_str(), half_extents);
return rsb;
}
btReducedSoftBody* btReducedSoftBodyHelpers::createReducedCube(btSoftBodyWorldInfo& worldInfo, const int start_mode, const int num_modes)
btReducedSoftBody* btReducedSoftBodyHelpers::createReducedCube(btSoftBodyWorldInfo& worldInfo, const int num_modes)
{
std::string filepath("../../../examples/SoftDemo/cube/");
std::string filename = filepath + "mesh.vtk";
btReducedSoftBody* rsb = btReducedSoftBodyHelpers::createFromVtkFile(worldInfo, filename.c_str());
rsb->setReducedModes(start_mode, num_modes, rsb->m_nodes.size());
rsb->setReducedModes(num_modes, rsb->m_nodes.size());
btVector3 half_extents(0.5, 0.5, 0.5);
btReducedSoftBodyHelpers::readReducedDeformableInfoFromFiles(rsb, filepath.c_str(), half_extents);
return rsb;
}
btReducedSoftBody* btReducedSoftBodyHelpers::createReducedSponge(btSoftBodyWorldInfo& worldInfo, const int start_mode, const int num_modes)
btReducedSoftBody* btReducedSoftBodyHelpers::createReducedSponge(btSoftBodyWorldInfo& worldInfo, const int num_modes)
{
std::string filepath("../../../examples/SoftDemo/sponge/");
std::string filename = filepath + "mesh.vtk";
btReducedSoftBody* rsb = btReducedSoftBodyHelpers::createFromVtkFile(worldInfo, filename.c_str());
rsb->setReducedModes(start_mode, num_modes, rsb->m_nodes.size());
rsb->setReducedModes(num_modes, rsb->m_nodes.size());
btVector3 half_extents(0.025, 0.025, 0.025); //TODO: fix
btReducedSoftBodyHelpers::readReducedDeformableInfoFromFiles(rsb, filepath.c_str(), half_extents);
@@ -6,11 +6,11 @@
struct btReducedSoftBodyHelpers
{
// create a beam
static btReducedSoftBody* createReducedBeam(btSoftBodyWorldInfo& worldInfo, const int start_mode, const int num_modes);
static btReducedSoftBody* createReducedBeam(btSoftBodyWorldInfo& worldInfo, const int num_modes);
// create a cube
static btReducedSoftBody* createReducedCube(btSoftBodyWorldInfo& worldInfo, const int start_mode, const int num_modes);
static btReducedSoftBody* createReducedCube(btSoftBodyWorldInfo& worldInfo, const int num_modes);
// create a sponge (small rectangular cuboid)
static btReducedSoftBody* createReducedSponge(btSoftBodyWorldInfo& worldInfo, const int start_mode, const int num_modes);
static btReducedSoftBody* createReducedSponge(btSoftBodyWorldInfo& worldInfo, const int num_modes);
// read in geometry info from Vtk file
static btReducedSoftBody* createFromVtkFile(btSoftBodyWorldInfo& worldInfo, const char* vtk_file);