Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 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
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 @@ -28,6 +28,7 @@
#include <sofa/core/VecId.h>
#include <sofa/core/topology/BaseMeshTopology.h>
#include <sofa/core/behavior/MechanicalState.h>
#include <sofa/core/objectmodel/Base.h>

namespace sofa::component::collision::geometry
{
Expand Down Expand Up @@ -193,6 +194,37 @@ class TriangleCollisionModel : public core::CollisionModel
const VecDeriv& getNormals() const { return m_normals; }
int getTriangleFlags(sofa::core::topology::BaseMeshTopology::TriangleID i);

void saveInternalStateIn(sofa::core::objectmodel::Snapshot::SnapshotObject& snapshot) const override
{
sofa::core::objectmodel::Snapshot::DataInfo dataInfo;

std::stringstream ss;
this->m_triangles->write(ss);

dataInfo.name = "m_triangles";
dataInfo.type = "vector";
dataInfo.value = ss.str();

snapshot.m_dataContainer.push_back(dataInfo);

}

void loadInternalStateFrom(const core::objectmodel::Snapshot::SnapshotObject &snapshot) override
{
m_needsUpdate = true;

for (const auto& dataInfo : snapshot.m_dataContainer)
{
if (dataInfo.name == "m_triangles")
{
m_triangles = &m_topology->getTriangles();
resize(m_topology->getNbTriangles());
updateNormals();
}

}
}

Deriv velocity(sofa::Index index)const;


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,12 @@ 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
{
SOFA_UNUSED(snapshot);
_indexedElements = & (this->l_topology->getTetrahedra());
}

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
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/SnapshotJSONExporter.h
${SRC_ROOT}/objectmodel/KeypressedEvent.h
${SRC_ROOT}/objectmodel/KeyreleasedEvent.h
${SRC_ROOT}/objectmodel/lifecycle/DeprecatedData.h
Expand Down Expand Up @@ -310,6 +312,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/SnapshotJSONExporter.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
4 changes: 3 additions & 1 deletion Sofa/framework/Core/simutest/objectmodel/Base_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ using sofa::defaulttype::Rigid3Types;
#include <sofa/defaulttype/VecTypes.h>
using sofa::defaulttype::Vec3Types;

#include <sofa/simulation/SaveSnapshotVisitor.h>
using sofa::simulation::SaveSnapshotVisitor;

namespace customns
{
class CustomBaseObject : public sofa::core::objectmodel::BaseComponent
Expand Down Expand Up @@ -121,4 +124,3 @@ TEST_F(Base_test , testGetClassName)
EXPECT_EQ(o.getTypeName(), "CustomBaseObject");
EXPECT_EQ(o.getClass()->className, "CustomBaseObject");
}

Loading