void Deformable::timeStep() { externalForces(); //projectPositions(); if( params.isCluster) { for(int i=0; i<mNumClusters; i++) { std::vector<int> cluster= mClusters.at(i); projectPositionsCluster(cluster, i); } for (int i=0; i<mNumVertices; i++) { if (mFixed(i)) continue; //std::cout<<mGoalPos_sum.row(i)<<" "<<indxCount.at(i)<<std::endl; mNewPos.row(i) = mGoalPos_sum.row(i)/indxCount.at(i); //std::cout<<"after: "<<mNewPos.row(i)<<" "<<indxCount.at(i)<<std::endl; //std::cout<<mNewPos.row(i)<<std::endl; } mGoalPos_sum.setZero(); std::fill(indxCount.begin(), indxCount.end(), 0); } else { projectPositions(); } integrate(); }
void step() { projectPositions(); for(int i=0; i<CONSTRAINT_ITERATIONS; ++i) { applyConstraints(); } unprojectVelocities(); removeFlagged(); }