Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
5d9d5f4
savesnapshot + unit test
Lucas-TJ Dec 11, 2025
3cda227
implements class BaseSnapshot
Lucas-TJ Dec 15, 2025
f51c239
update BaseSnapshot and JSONSnapshot
Lucas-TJ Dec 15, 2025
d8a4659
SnapshotVisitor implementation
Lucas-TJ Dec 17, 2025
84e28a6
update JSONSnapshot, SnapshotVisitor
Lucas-TJ Dec 19, 2025
755712e
saveSnapshotV1 (export to JSON)
Lucas-TJ Dec 22, 2025
b9c8cb4
fix exportToJSON - we can choose filename
Lucas-TJ Dec 23, 2025
5703294
update load
Lucas-TJ Dec 24, 2025
9aa4690
update 06/01
Lucas-TJ Jan 6, 2026
9b2c5f4
update tree structure
Lucas-TJ Jan 13, 2026
2f0a75c
move all functions from JSONSnapshot to BaseSnapshot + fix structure
Lucas-TJ Jan 26, 2026
6d47405
[Snapshot] ADD files for loadSnapshot + CLEAN BaseSnapshot
Lucas-TJ Jan 27, 2026
b0ad6c4
new design
alxbilger Jan 28, 2026
2dde098
[SNAPSHOT] FIX compilation + ADD unit tests
Lucas-TJ Feb 3, 2026
4e6f9e4
>[SNAPSHOT] ADD feature : loadSnapshot with read (wip)
Lucas-TJ Feb 9, 2026
75962c5
[SNAPSHOT] CLEAN Update loadSnapshot
Lucas-TJ Feb 16, 2026
ca1c88a
[SNAPSHOT] FIX nan problem
Lucas-TJ Feb 24, 2026
7a946a9
[Snapshot] Fix loadSnapshot for JSON
Lucas-TJ Feb 25, 2026
d931ccb
remove comments
Lucas-TJ Feb 26, 2026
7aa1a69
[Snapshot] Add unit tests + cleaning
Lucas-TJ Feb 27, 2026
45821a7
update and clean findSnapshotObject_test
Lucas-TJ Mar 2, 2026
df5ef4d
Add unit test (JSONSnapshot)
Lucas-TJ Mar 3, 2026
32ccf05
cleaning - include
Lucas-TJ Mar 3, 2026
8ffb12f
Renaming SnapshotVisitor to SaveSnapshotVisitor
Lucas-TJ Mar 3, 2026
ae8b609
remove Boost serialization
Lucas-TJ Mar 5, 2026
306f78c
split snapshotVisitors (LoadDataSnapshotVisitor and LoadLinkSnapshotV…
Lucas-TJ Mar 9, 2026
a807dd8
fix in a test
Lucas-TJ Mar 16, 2026
fd6c83e
update 19/03
Lucas-TJ Mar 19, 2026
18512b0
rename BaseSnapshot to Snapshot
Lucas-TJ Mar 19, 2026
56d9c4f
Refactoring the API of snapshot (Snapshot, SnapshotJSONExporter and S…
Lucas-TJ Mar 20, 2026
f22857f
Fix loadDataSnapshot and update SnapshotManager
Lucas-TJ Mar 23, 2026
8bbdb8b
update Snapshot and JSONExporter
Lucas-TJ Apr 9, 2026
a29f826
update Snapshot and JSONExporter
Lucas-TJ May 5, 2026
624be72
update load data and link + clean
Lucas-TJ May 7, 2026
ff5bd0a
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ May 11, 2026
aeaab59
update LoadSnapshotVisitor
Lucas-TJ May 11, 2026
59ae206
clean
Lucas-TJ May 11, 2026
b081eca
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ May 12, 2026
ec7689b
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ May 18, 2026
c1d1585
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ May 21, 2026
f134ba5
update
Lucas-TJ May 21, 2026
6aade44
update
Lucas-TJ May 21, 2026
2008ef5
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ May 26, 2026
f0b5c55
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ May 27, 2026
d44f8d9
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ May 28, 2026
1c08261
cleaning add functions
Lucas-TJ Dec 22, 2025
4e418d9
fix Output stream and Input stream for TetrahedronInformation
Lucas-TJ May 21, 2026
22d5eac
fix conflict
Lucas-TJ May 21, 2026
ebf7d4d
remove spaces from MultipleObjectsTwoCubes.scn
Lucas-TJ May 28, 2026
f8f54df
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jun 1, 2026
21364b8
update 01/06 - work in TriangleCollisionModel
Lucas-TJ Jun 1, 2026
5d91351
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jun 4, 2026
ff5985a
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jun 5, 2026
8828126
update 09/06 - internal state loading TriangleCollisionModel
Lucas-TJ Jun 9, 2026
80cce18
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jun 12, 2026
756b6b1
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jun 15, 2026
d57985e
update 15/06
Lucas-TJ Jun 15, 2026
a984e32
Merge remote-tracking branch 'origin/snapshot3' into snapshot3
Lucas-TJ Jun 15, 2026
1299e85
clean Snapshot API
Lucas-TJ Jun 15, 2026
ffadade
update wip loadLink
Lucas-TJ Jun 17, 2026
9ab1894
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jun 18, 2026
4da2835
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jun 19, 2026
0989c31
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jun 22, 2026
91fc73f
Update unit tests and fix loadLinkSnapshot
Lucas-TJ Jun 23, 2026
7294fce
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jun 25, 2026
c438b2a
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jun 26, 2026
0c103cd
clean comments
Lucas-TJ Jun 26, 2026
9610d84
clean comments
Lucas-TJ Jul 2, 2026
d715b50
remove LoadDataSnapshotVisitor and LoadLinkSnapshotVisitor
Lucas-TJ Jul 2, 2026
f7e3e0a
clean std::cout
Lucas-TJ Jul 2, 2026
4a2ba9b
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jul 3, 2026
84edf4e
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jul 3, 2026
b5bac44
fix & clean
Lucas-TJ Jul 3, 2026
9b0f77d
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jul 6, 2026
1e19e71
fix & clean
Lucas-TJ Jul 6, 2026
4b11efa
Modifications to SnapshotManager class
Lucas-TJ Jul 7, 2026
594e505
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jul 8, 2026
83408b5
clean base.h and fix windows compilation
Lucas-TJ Jul 8, 2026
d731b1f
cleaning
Lucas-TJ Jul 8, 2026
7b6dd9f
add documentation SnapshotManager.h
Lucas-TJ Jul 8, 2026
b2f3c05
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jul 10, 2026
28e7b09
cleaning & fix in SnapshotManager
Lucas-TJ Jul 10, 2026
3b4a976
cleaning
Lucas-TJ Jul 10, 2026
7770e67
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jul 10, 2026
a24b681
Restore files
Lucas-TJ Jul 10, 2026
2546b26
Merge branch 'master' into snapshot3
Lucas-TJ Jul 16, 2026
047b116
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jul 17, 2026
2d24bc1
Merge branch 'sofa-framework:master' into debug_crash
Lucas-TJ Jul 17, 2026
09debee
update 17/07
Lucas-TJ Jul 17, 2026
c315254
Restore file
Lucas-TJ Jul 15, 2026
49decbb
Modifications unit test "saveSnapshot"
Lucas-TJ Jul 17, 2026
522c2e1
Add Slave in Snapshot + Changes in SaveSnapshot API
Lucas-TJ Jul 22, 2026
a939917
Fix and Update unit tests + cleaning
Lucas-TJ Jul 23, 2026
6651428
fix export to json
Lucas-TJ Jul 23, 2026
1917ca0
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jul 24, 2026
b5d698a
cleaning
Lucas-TJ Jul 24, 2026
d6ce690
Add ClassName in Snapshot
Lucas-TJ Jul 24, 2026
a87ec3c
Merge branch 'sofa-framework:master' into debug_crash
Lucas-TJ Jul 28, 2026
d478ea7
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Jul 28, 2026
59ca930
Merge remote-tracking branch 'origin/snapshot3' into debug_crash
Lucas-TJ Jul 28, 2026
9321e64
Fix streams functions
Lucas-TJ Aug 10, 2026
03b3322
Updates Snapshot :
Lucas-TJ Aug 11, 2026
3da6583
Fix some components with loadInternalStateFrom method :
Lucas-TJ Aug 11, 2026
6f3b810
Update readFromSnapshot in BaseLink (and unit test)
Lucas-TJ Aug 13, 2026
3243c9c
update LoadSnapshotVisitor to manage loading at the beginning
Lucas-TJ Sep 2, 2026
a300898
Fix link's problems :
Lucas-TJ Sep 8, 2026
346d6a5
Change API for load set of snapshot and update in SnapshotJSONExporter
Lucas-TJ Sep 14, 2026
dff8fc1
Merge branch 'master' into snapshot3
Lucas-TJ Sep 15, 2026
ff62045
Restore files
Lucas-TJ Sep 15, 2026
a0cb691
restore collisionMultiple.scn
Lucas-TJ Sep 15, 2026
a43040c
Restore TetrahedralTensorMassForceField.h and TriangularTensorMassFor…
Lucas-TJ Sep 15, 2026
2ad6b06
clean declaration of loadInternalStateFrom/saveInternalStateIn in Tri…
Lucas-TJ Sep 15, 2026
c2f9cd7
Merge branch 'master' into snapshot3
fredroy Sep 17, 2026
33df0f7
fix TetrahedronFEMForceField::loadInternalStateFrom
Lucas-TJ Sep 21, 2026
b6cf5ac
Merge branch 'master' into snapshot3
Lucas-TJ Sep 21, 2026
19ddbfe
fix TetrahedronCollisionModel loadInternalStateFrom
Lucas-TJ Sep 22, 2026
6c70ec0
Merge branch 'master' into snapshot3
Lucas-TJ Sep 23, 2026
85c23a4
fix addRawPtr declaration
Lucas-TJ Sep 23, 2026
6bcc212
Merge branch 'sofa-framework:master' into snapshot3
Lucas-TJ Sep 24, 2026
59c35f6
Fix & Rename :
Lucas-TJ Sep 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -269,4 +269,10 @@ void TetrahedronCollisionModel::computeBoundingTree(int maxDepth)
}
}

void TetrahedronCollisionModel::loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject &snapshot)
{
SOFA_UNUSED(snapshot);
tetra = &m_topology->getTetrahedra();
resize(tetra->size());
}
} // namespace sofa::component::collision::geometry
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ class SOFA_COMPONENT_COLLISION_GEOMETRY_API TetrahedronCollisionModel : public c
/// Link to be set to the topology container in the component graph.
SingleLink<TetrahedronCollisionModel, sofa::core::topology::BaseMeshTopology, BaseLink::FLAG_STOREPATH | BaseLink::FLAG_STRONGLINK> l_topology;

void loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject &snapshot) override;
};

inline Tetrahedron::Tetrahedron(TetrahedronCollisionModel* model, Index index)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ class TriangleCollisionModel : public core::CollisionModel, public virtual core:

Deriv velocity(sofa::Index index)const;

void loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject &snapshot) override;

/// Pre-construction check method called by ObjectFactory.
/// Check that DataTypes matches the MechanicalState.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,14 @@ void TriangleCollisionModel<DataTypes>::drawCollisionModel(const core::visual::V
}
}

template<class TDataTypes>
void TriangleCollisionModel<TDataTypes>::loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject &snapshot)
{
m_triangles = &m_topology->getTriangles();
resize(m_topology->getNbTriangles());
updateNormals();
}

template<class DataTypes>
inline const typename DataTypes::Coord& TTriangle<DataTypes>::p1() const { return this->model->mstate->read(core::vec_id::read_access::position)->getValue()[(*(this->model->m_triangles))[this->index][0]]; }
template<class DataTypes>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -400,4 +400,9 @@ void CollisionResponse::setContactTags(core::CollisionModel* model1, core::Colli
}
}

void CollisionResponse::loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject &snapshot)
{
SOFA_UNUSED(snapshot);
contactMap.clear();
}
} // namespace sofa::component::collision::response::contact
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#include <sofa/helper/OptionsGroup.h>
#include <sofa/helper/map_ptr_stable_compare.h>


namespace sofa::component::collision::response::contact
{

Expand Down Expand Up @@ -83,6 +84,8 @@ public :

std::string getDefaultResponseType() const { return d_response.getValue().getSelectedItem(); }

void loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject& snapshot) override;

protected:
typedef sofa::helper::map_ptr_stable_compare<
/* key */ std::pair<core::CollisionModel*, core::CollisionModel*>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,8 @@ class BeamFEMForceField : public BaseLinearElasticityFEMForceField<DataTypes>
void setBeam(Index i, SReal E, SReal L, SReal nu, SReal r, SReal rInner);
void initBeams(std::size_t size);

void loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject& snapshot) override;

protected:
void drawElement(int i, std::vector< type::Vec3 >* points, const VecCoord& x);
Real pseudoDeterminantForCoef ( const Mat<2, 3, Real>& M );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -810,4 +810,11 @@ void BeamFEMForceField<DataTypes>::BeamInfo::init(SReal E, SReal L, SReal nu, SR
_Asz = 0.0;
}

template<class DataTypes>
void BeamFEMForceField<DataTypes>::loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject &snapshot)
{
SOFA_UNUSED(snapshot);
m_indexedElements = &this->l_topology->getEdges();
}

} // namespace sofa::component::solidmechanics::fem::elastic::_beamfemforcefield_
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,9 @@ class TetrahedronFEMForceField : public BaseLinearElasticityFEMForceField<DataTy
// Getting the stiffness matrix of index i
void getElementStiffnessMatrix(Real* stiffness, Index nodeIdx);

void loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject& snapshot) override;


protected:
void computeStrainDisplacement( StrainDisplacement &J, Coord a, Coord b, Coord c, Coord d );
Real peudo_determinant_for_coef ( const type::Mat<2, 3, Real>& M );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2421,5 +2421,10 @@ bool TetrahedronFEMForceField<DataTypes>::isComputeVonMisesStressMethodSet()
return d_computeVonMisesStress.getValue() == 1 || d_computeVonMisesStress.getValue() == 2;
}


template<class DataTypes>
void TetrahedronFEMForceField<DataTypes>::loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject &snapshot)
{
SOFA_UNUSED(snapshot);
this->reinit();
}
} //namespace sofa::component::solidmechanics::fem::elastic
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ class TriangleFEMForceField : public BaseLinearElasticityFEMForceField<DataTypes
const Transformation& getRotationMatrix(Index elemId);
const MaterialStiffness& getMaterialStiffness(Index elemId);
const StrainDisplacement& getStrainDisplacements(Index elemId);
void loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject& snapshot) override;

protected:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -715,4 +715,10 @@ const typename TriangleFEMForceField<DataTypes>::StrainDisplacement& TriangleFEM
return InvalidStrainDisplacement;
}

template<class DataTypes>
void TriangleFEMForceField<DataTypes>::loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject &snapshot)
{
SOFA_UNUSED(snapshot);
_indexedElements = &(this->l_topology->getTriangles());
}
} // namespace sofa::component::solidmechanics::fem::elastic
4 changes: 4 additions & 0 deletions Sofa/framework/Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ set(HEADER_FILES
${SRC_ROOT}/objectmodel/BaseLink.h
${SRC_ROOT}/objectmodel/BaseNode.h
${SRC_ROOT}/objectmodel/BaseObjectDescription.h
${SRC_ROOT}/objectmodel/Snapshot.h
${SRC_ROOT}/objectmodel/ClassInfo.h
${SRC_ROOT}/objectmodel/ComponentState.h
${SRC_ROOT}/objectmodel/ConfigurationSetting.h
Expand All @@ -178,6 +179,7 @@ set(HEADER_FILES
${SRC_ROOT}/objectmodel/HapticDeviceEvent.h
${SRC_ROOT}/objectmodel/IdleEvent.h
${SRC_ROOT}/objectmodel/JoystickEvent.h
${SRC_ROOT}/objectmodel/JSONSnapshot.h
${SRC_ROOT}/objectmodel/KeypressedEvent.h
${SRC_ROOT}/objectmodel/KeyreleasedEvent.h
${SRC_ROOT}/objectmodel/lifecycle/DeprecatedData.h
Expand Down Expand Up @@ -311,6 +313,7 @@ set(SOURCE_FILES
${SRC_ROOT}/objectmodel/BaseLink.cpp
${SRC_ROOT}/objectmodel/BaseNode.cpp
${SRC_ROOT}/objectmodel/BaseObjectDescription.cpp
${SRC_ROOT}/objectmodel/Snapshot.cpp
${SRC_ROOT}/objectmodel/ClassInfo.cpp
${SRC_ROOT}/objectmodel/ComponentState.cpp
${SRC_ROOT}/objectmodel/ConfigurationSetting.cpp
Expand All @@ -328,6 +331,7 @@ set(SOURCE_FILES
${SRC_ROOT}/objectmodel/HapticDeviceEvent.cpp
${SRC_ROOT}/objectmodel/IdleEvent.cpp
${SRC_ROOT}/objectmodel/JoystickEvent.cpp
${SRC_ROOT}/objectmodel/JSONSnapshot.cpp
${SRC_ROOT}/objectmodel/KeypressedEvent.cpp
${SRC_ROOT}/objectmodel/KeyreleasedEvent.cpp
${SRC_ROOT}/objectmodel/lifecycle/DeprecatedData.cpp
Expand Down
1 change: 1 addition & 0 deletions Sofa/framework/Core/simutest/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ set(SOURCE_FILES
objectmodel/BaseContext_test.cpp
objectmodel/BaseLink_simutest.cpp
objectmodel/PathResolver_simutest.cpp
objectmodel/Snapshot_test.cpp
)

add_executable(${PROJECT_NAME} ${SOURCE_FILES})
Expand Down
Loading
Loading