15 this->varHorizon()->attach(
16 std::make_shared<FCallBackFunc>(
18 this->stateHorizon()->setValue(this->varHorizon()->getValue());
22 this->varHorizon()->setValue(0.0085);
24 auto pointRenderer = std::make_shared<GLPointVisualModule>();
25 pointRenderer->varPointSize()->setValue(0.005);
27 pointRenderer->setColorMapMode(GLPointVisualModule::PER_OBJECT_SHADER);
28 this->statePointSet()->connect(pointRenderer->inPointSet());
29 this->stateVelocity()->connect(pointRenderer->inColor());
52 auto nbrQuery = std::make_shared<NeighborPointQuery<TDataType>>();
53 this->stateHorizon()->connect(nbrQuery->inRadius());
54 this->statePosition()->connect(nbrQuery->inPosition());
57 if (!this->statePosition()->isEmpty())
59 this->stateBonds()->allocate();
60 auto nbrPtr = this->stateBonds()->getDataPtr();
61 nbrPtr->resize(nbrQuery->outNeighborIds()->getData());
63 constructRestShape(*nbrPtr, nbrQuery->outNeighborIds()->getData(), this->statePosition()->getData());
65 this->stateReferencePosition()->assign(this->statePosition()->getData());
74 auto particles = this->getSolidParticles();
77 if (particles.size() > 0)
81 for (
int i = 0; i < particles.size(); i++)
83 totalNum += particles[i]->statePosition()->size();
86 this->statePosition()->resize(totalNum);
87 this->stateVelocity()->resize(totalNum);
95 for (
int i = 0; i < particles.size(); i++)
97 auto inPos = particles[i]->statePosition()->getDataPtr();
98 auto inVel = particles[i]->stateVelocity()->getDataPtr();
99 if (!inPos->isEmpty())
101 uint num = inPos->size();
103 new_pos.assign(*inPos, num, offset, 0);
104 new_vel.assign(*inVel, num, offset, 0);
112 this->statePosition()->clear();
113 this->stateVelocity()->clear();
114 this->stateReferencePosition()->clear();
115 this->stateBonds()->clear();
void resetStates() override