Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
1403 lines (1191 sloc) 85.6 KB

SOFA Changelog

On master branch (not released yet)

Full log

Deprecated

Breaking

Improvements

Bug Fixes


v18.12

Full log

Deprecated

Removed in v18.12

  • [SofaBoundaryCondition] BuoyantForceField #457
  • [SofaBoundaryCondition] VaccumSphereForceField #457
  • [SofaHelper] Utils::getPluginDirectory() #518 - Use PluginRepository.getFirstPath() instead
  • [SofaMisc] ParallelCGLinearSolver #457
  • [SofaMiscForceField] ForceMaskOff #457
  • [SofaMiscForceField] LineBendingSprings #457
  • [SofaMiscForceField] WashingMachineForceField #457
  • [SofaMiscForceField] LennardJonesForceField #457
  • [SofaMiscMapping] CatmullRomSplineMapping #457
  • [SofaMiscMapping] CenterPointMechanicalMapping #457
  • [SofaMiscMapping] CurveMapping #457
  • [SofaMiscMapping] ExternalInterpolationMapping #457
  • [SofaMiscMapping] ProjectionToLineMapping #457
  • [SofaMiscMapping] ProjectionToPlaneMapping
  • [SofaOpenglVisual] OglCylinderModel #457
  • [SofaOpenglVisual] OglGrid #457
  • [SofaOpenglVisual] OglRenderingSRGB #457
  • [SofaOpenglVisual] OglLineAxis #457
  • [SofaOpenglVisual] OglSceneFrame #457
  • [SofaUserInteraction] ArticulatedHierarchyBVHController #457
  • [SofaUserInteraction] ArticulatedHierarchyController #457
  • [SofaUserInteraction] DisabledContact #457
  • [SofaUserInteraction] EdgeSetController #457
  • [SofaUserInteraction] GraspingManager #457
  • [SofaUserInteraction] InterpolationController #457
  • [SofaUserInteraction] MechanicalStateControllerOmni #457
  • [SofaUserInteraction] NodeToggleController #457

Breaking

Modules

  • [SofaBaseMechanics][SofaMiscForceField] Homogeneization of mass components in SOFA #637
  • [SofaBaseMechanics] Clean barycentric mapping #797
  • [SofaBoundaryCondition] Refactor FixedPlaneConstraint (breaking) #803
  • [SofaFramework] [BREAKING] Replacing DataEngine with SimpleDataEngine #814
  • [SofaFramework] [BREAKING] Rename: data tracker has changed #822
  • [SofaPreconditioner] modularization #668
  • [SofaSparseSolver] modularization #668

Improvements

Architecture

Modules

  • [All] Use drawtool everywhere #704
  • [All] Sofa add mechanical matrix mapper #721
  • [SofaBaseTopology] Add battery of tests on topology containers #708
  • [SofaBaseTopology] Topology change propagation to Mechanical State #838
  • [SofaBaseMechanics] Optimize barycentric mapping initialization #798
  • [SofaBoundaryCondition] Factorize partial fixedconstraint #718
  • [SofaConstraint] add a force data field in SlidingConstraint #780
  • [SofaConstraint] ADD Data to show constraint forces #840
  • [SofaConstraint] allow call of constraints' storeLambda() #854
  • [SofaCore] Add new (simpler) DataEngine implementation #760
  • [SofaExporter] ADD in WriteState all required tests on data and clean export with msg API #714
  • [SofaFramework] Improve external dirs fetching in SofaMacros #759
  • [SofaGeneralAnimationLoop] Improvement on MMMapper #772
  • [SofaHelper] EDIT FileSystem and FileRepository for regression tests #830
  • [SofaKernel] Improve Displayflags #671
  • [SofaKernel] Add a "sofa_add_module" in SofaMacro.cmake #732
  • [SofaKernel] use string in base object description #862
  • [SofaMeshCollision] TriangleModel optimization when topology changes occur #839
  • [SofaSparseSolver] ADD saveMatrixToFile to SparseLDLSolver #845
  • [SofaTest] ADD a PrintTo method so test failure shows human readable informations. #730
  • [VisualModel] Improve the messages when loading mesh inside VisualModel #778
  • [WriteState] minor fix with the time attribute, default values #776

Plugins / Projects

  • [Geomagic] ADD an inputForceFeedback data in Geomagic #648
  • [Geomagic] Fix dll export and some enhancements #786
  • [MultiThreading] removed the boost thread dependency #701
  • [MultiThreading] New components and Task scheduler classes refactoring #745
  • [MultiThreading] Add Image plugin Data types in DataExchange component #770
  • [MultiThreading] TaskScheduler Interface #775
  • [runSofa] Add data field value change on mouse move #750
  • [SofaCarving] Refresh and enhancement #712
  • [SofaCarving] plugin enhancement #787
  • [SofaPython] ADD forwarding of onMouseMove event into the script controller #731
  • [SofaPython] ADD: Bindings for BoundingBox #736
  • [SofaPython][PSDE] Psde derive io #742
  • [SofaPython][PSDE] Update on demand as designed initially #751
  • [SofaPython] ADD a custom dir method in Binding_Base. #762
  • [SofaPython] add getLinkedBase to the binding of a link. #843
  • [SofaPython] ADD binding python to getCategories #868

Bug Fixes

Architecture

  • [CMake] FIX: cyclic recursion #766
  • [CMake] Backport fixes #791
  • [CMake] Fix compilation issues due to CPackNSIS #867
  • [CMake] Add check to prevent the inclusion of non-existant file in cmake 3.13 #897

Modules

  • [All] ISSofa bugfix, lot of fixes #756
  • [SofaGuiQt] Change method to allow antialiased screenshots in QtViewer #728
  • [SofaBaseMechanics] Fix warning scene mass #779
  • [SofaBaseMechanics] FIX DiagonalMass_test #832
  • [SofaBaseTopology] Fix SparseGridTopology initialization with an input mesh #670
  • [SofaBoundaryCondition] FIX AffineMovementConstraint orientation issue #824
  • [SofaCarving] Modify the CMake config file to allow other plugins link to Sofa Carving #781
  • [SofaCore] FIX: enable ExtVecXf mappings with double floating type #827
  • [SofaDeformable] Fix MeshSpring ForceField and Loader #815
  • [SofaFramework] Keep SOFA_EXTERN_TEMPLATE macro definition #870
  • [SofaGui] ADD option to enable VSync (default: OFF) #722
  • [SofaKernel] FIX bug in toEulerVector #399
  • [SofaKernel] FIX segfault created by static initialisers on OSX/clang compiler #642
  • [SofaKernel] Fix: correct path writing in sofa_set_python_directory macro #763
  • [SofaKernel] Check if Quaternion has norm 1 #790
  • [SofaPreconditioner] FIX ShewchukPCGLinearSolver #737

Plugins / Projects

  • [CGALPlugin] fix compilation #783
  • [CGALPlugin] Fix compilation for cgal 4.12+ (cgal::polyhedron_3 is now forward declared) #812
  • [CImgPlugin] CMake/Mac: lower priority for XCode's libpng #720
  • [Geomagic] Fix broken behavior #761
  • [Geomagic] Fix scenes #858
  • [Multithreading] FIX compiling error on Mac #727
  • [MultiThreading] Fix Livers scenes crash #792
  • [runSofa] ADD Modules to plugin_list.conf.default #753
  • [SofaPython][examples] FIX: Fixing the scene... and the typo in the name #765
  • [Tutorials] FIX oneTetrahedron and chainHybrid #773

Scenes / Examples

  • [examples] Fix TopologySurfaceDifferentMesh.scn #716
  • [examples] Fix the examples missing a #748
  • [examples] Fix scenes having issue with CollisionGroup #821

Cleaningss

Modules

  • [All] Fix some recent compilation warnings #726
  • [All] Replace some int/unit by size_t #729
  • [All] Fix some C4661 warnings #738
  • [All] FIX warnings #739
  • [All] Fix some compilation warnings #755
  • [All] FIX a bunch of static-analysis errors (cppcheck) #782
  • [All] Remove SOFA_DECL_CLASS and SOFA_LINK_CLASS #837
  • [All] Remove SOFA_SUPPORT_MOVING_FRAMES and SOFA_SUPPORT_MULTIRESOLUTION #849
  • [SofaBaseCollision] CLEAN CylinderModel #847
  • [SofaBaseLinearSolver] CLEAN GraphScatteredTypes #844
  • [SofaFramework] Various cleaning (non-breaking) #841
  • [SofaFramework] CLEAN: removing unused PS3 files #851
  • [SofaGeneralSimpleFEM] Clean BeamFemForceField #846
  • [SofaHelper] Change drawTriangle and drawQuad with internal functions #813
  • [SofaKernel] Remove commented code since years in SofaBaseMechanics #733
  • [SofaKernel] Move ScriptEvent class from SofaPython to core/objectModel #764
  • [SofaMiscFem] Clean BaseMaterial::handleTopologyChange #817
  • [SofaMiscMapping] Clean DeformableOnRigidFrameMapping #848
  • [SofaSimpleFem] Stc clean simplefem #826

Plugins / Projects

  • [Multithreading] Move TaskScheduler files from MultiThreading plugin to SofaKernel #805

v18.06

Full log

Deprecated

Will be removed in v18.06

  • [SofaHelper] Utils::getPluginDirectory() #518 - Use PluginRepository.getFirstPath() instead

Will be removed in v18.12

  • [SofaBoundaryCondition] BuoyantForceField #457
  • [SofaBoundaryCondition] VaccumSphereForceField #457
  • [SofaMisc] ParallelCGLinearSolver #457
  • [SofaMiscForceField] ForceMaskOff #457
  • [SofaMiscForceField] LineBendingSprings #457
  • [SofaMiscForceField] WashingMachineForceField #457
  • [SofaMiscForceField] LennardJonesForceField #457
  • [SofaMiscMapping] CatmullRomSplineMapping #457
  • [SofaMiscMapping] CenterPointMechanicalMapping #457
  • [SofaMiscMapping] CurveMapping #457
  • [SofaMiscMapping] ExternalInterpolationMapping #457
  • [SofaMiscMapping] ProjectionToLineMapping #457
  • [SofaMiscMapping] ProjectionToPlaneMapping
  • [SofaOpenglVisual] OglCylinderModel #457
  • [SofaOpenglVisual] OglGrid #457
  • [SofaOpenglVisual] OglRenderingSRGB #457
  • [SofaOpenglVisual] OglLineAxis #457
  • [SofaOpenglVisual] OglSceneFrame
  • [SofaUserInteraction] ArticulatedHierarchyBVHController #457
  • [SofaUserInteraction] ArticulatedHierarchyController #457
  • [SofaUserInteraction] DisabledContact #457
  • [SofaUserInteraction] EdgeSetController #457
  • [SofaUserInteraction] GraspingManager #457
  • [SofaUserInteraction] InterpolationController #457
  • [SofaUserInteraction] MechanicalStateControllerOmni #457
  • [SofaUserInteraction] NodeToggleController #457

Breaking

Modules

  • [SofaConstraint] Update FreeMotionAnimationLoop so that it can compute a linearised version of the constraint force. #459
  • [SofaCore] Update FreeMotionAnimationLoop so that it can compute a linearised version of the constraint force. #459
  • [SofaHelper] Unifying the way we report file related errors #669

Improvements

Architecture

  • [CMake] ADD external projects handling #649
  • [CMake] ADD the CMAKE_WARN_DEPRECATED option in SOFA #662
  • [CMake] Improve SOFA installation and packaging #635
  • [CMake] Cleans for packaging #789

Modules

  • [All] Refactoring in Camera, BackgroundSetting and Light #676
  • [SofaBaseLinearSolver] Improve warning emission for CG #658
  • [SofaBaseLinearSolver] Add ability to activate printing of debug information at runtime #667
  • [SofaGeneralImplicitOdeSolver] FIX data field name in VariationalSymplecticSolver #624
  • [SofaGraphComponent] ADD alias usage detection #702
  • [SofaLoader] ADD support to load VTK polylines in legacy formated files #576
  • [SofaMiscMapping] Fix rigid barycentric mapping #710
  • [SofaHelper] PluginManager now checks for file existence instead of library extension match. #621

Plugins / Projects

  • [HeadlessRecorder] ADD frameskip option to headless recorder #615
  • [HeadlessRecorder] Remove avcodec dependency in HeadlessRecorder.h #752
  • [runSofa] Save&restore the scenegraph state when live-code & add info panel #657
  • [SofaPython] PythonScriptDataEngine (PSDE) #583
  • [SofaPython] Small fix & new features. #656

Tools

  • [tools] FIX sofa-launcher stdout #592

Bug Fixes

Modules

  • [All] FIX VS2017 build (Windows) #630
  • [All] Fix computeBBox() #634
  • [All] FIX warnings #584
  • [All] Various small changes in error messages & bugfix from defrost branches #660
  • [SofaConstraint] FIX: Moving semicolon under preprocessor define #680
  • [SofaEngine] FIX Bug in BoxROI that is not properly initialized #627
  • [SofaFramework] Fix plugin list configuration #645
  • [SofaGraphComponent] FIX SceneChecker_test + ADD alias test #711
  • [SofaGraphComponent] FIX SceneCheck build on MacOS #719
  • [SofaGuiQt] FIX missing resources #758
  • [SofaGeneralEngine] FIX disabled tests #675
  • [SofaHelper] More robust method to test end of string #617
  • [SofaKernel] FIX macro issue resulted from the #include cleaning. #672
  • [SofaMiscFem] FIX dependencies #588
  • [SofaOpenglVisual] FIX MacOS crash in batch mode #646
  • [SofaSimulationGraph] FIX dependencies #588
  • [SofaSparseSolver] FIX SparseLDL crash and add proper SOFA_FLOAT/DOUBLE mangement #655

Plugins / Projects

  • [CGALPlugin] FIX compilation issue with recent version of CGAL (4.11) & Ubunu 18.04 LTS #664
  • [CImgPlugin] Export CImg_CFLAGS #595
  • [CImgPlugin] FIX CMakeLists install fail since pluginization #609
  • [CImgPlugin] FIX malformed cflag append #622
  • [HeadlessRecorder] Fix headless recorder stream definition #666
  • [MultiThreading] FIX: add createSubelements param in MeshGmshLoader #626
  • [runSofa] Fix compilation when SofaGuiQt is not activated #599
  • [runSofa] ADD infinite iterations option to batch gui #613
  • [runSofa] FIX missing resources #758
  • [SofaDistanceGrid] ADD .scene-tests to ignore scene #594
  • [SofaPython] FIX build for MacOS >10.13.0 #614

Scenes / Examples

  • FIX collision of the fontain example #612
  • FIX failing scenes on CI #641
  • FIX missing RequiredPlugin #628

Extlibs

  • [extlibs/gtest] Update gtest & clean the CMakeLists.txt #604

Cleanings

Architecture

  • [CMake] Remove the option SOFA_GUI_INTERACTION and its associated codes/macro #643

Modules

  • [All] CMake: Remove COMPONENTSET, keep DEPRECATED #586
  • [All] CLEAN topology classes #693
  • [SofaHelper] CLEAN commented code and double parentheses in Messaging.h #587
  • [SofaKernel] Header include cleanup #638
  • [SofaKernel] Remove unused function "renumberConstraintId" #691

Plugins / Projects

  • [CImgPlugin] Less scary config warnings #607
  • [HeadlessRecorder] Handle errors in target config #608
  • [SofaGUI] Move GlutGUI to projects and remove all glut references in SofaFramework #598
  • [SofaGUI] CMake: Remove useless if block in qt CMakelists.txt #590
  • [SofaPhysicsAPI] FIX: remove the include of glut #659

v17.12

Full log

Deprecated

Kernel modules

  • Will be removed in v17.12

    • [all]
      • SMP support #457 - no more maintained
    • [SofaDefaultType]
      • LaparoscopicRigidType #457 - not used/dont compiled for a really long time
  • Will be removed in v18.06

    • [SofaHelper]
      • Utils::getPluginDirectory() #518 - Use PluginRepository.getFirstPath() instead

Other modules

  • Will be removed in v18.12
    • [SofaBoundaryCondition]
      • BuoyantForceField #457
      • VaccumSphereForceField #457
    • [SofaMisc]
      • ParallelCGLinearSolver #457
    • [SofaMiscForceField]
      • ForceMaskOff #457
      • LineBendingSprings #457
      • WashingMachineForceField #457
      • LennardJonesForceField #457
    • [SofaMiscMapping]
      • CatmullRomSplineMapping #457
      • CenterPointMechanicalMapping #457
      • CurveMapping #457
      • ExternalInterpolationMapping #457
      • ProjectionToLineMapping #457
      • ProjectionToPlaneMapping
    • [SofaOpenglVisual]
      • OglCylinderModel #457
      • OglGrid #457
      • OglRenderingSRGB #457
      • OglLineAxis #457
      • OglSceneFrame
    • [SofaUserInteraction]
      • AddRecordedCameraPerformer #457
      • ArticulatedHierarchyBVHController #457
      • ArticulatedHierarchyController #457
      • DisabledContact #457
      • EdgeSetController #457
      • FixParticlePerformer #457
      • GraspingManager #457
      • InciseAlongPathPerformer #457
      • InterpolationController #457
      • MechanicalStateControllerOmni #457
      • NodeToggleController #457
      • RemovePrimitivePerformer #457
      • StartNavigationPerformer #457
      • SuturePointPerformer #457

Breaking

Kernel modules

  • [all]
    • issofa_visitors: Changing the way projective constraints are propagated in visitors #216
  • [SofaDeformable]
    • Change how rest shape is given in RestShapeSpringsForceField #315

Other modules

  • [SofaHelper]
    • Rewrite ArgumentParser #513
  • [SofaValidation]
    • ADD Monitor test #312

Improvements

Kernel modules

  • [all]
    • issofa_topology: Improvement, BugFix and Cleaning on Topology #243
    • issofa_constraintsolving: improve constraints #484
    • Improve File:line info in error message (for python and xml error reporting) #314
  • [SofaDeformable]
    • issofa_meshspringff #497
    • issofa_springff #498
  • [SofaHelper]
    • add ability to use NoArgument for BaseCreator and Factory #385
    • Remove legacy ImageBMP/ImagePNG and ImageQt #424
    • Improve advanced timer #468
  • [SofaLoader]
    • ADD normals and vectors to Legacy vtk import #536
  • [SofaSimpleFem]
    • Add check of vector size in TetrahedronFEMForceField #341

Other modules

  • [all]
    • Fix default value rayleigh params #350
    • PSL branch prerequisites #410
    • template alias sptr for downsizing the include graph #436
    • Removing the typedef files + SOFA_DECL + SOFA_LINK #453
    • CHANGE USE_MASK option to off by default #532
  • [SofaBoundaryCondition]
    • ADD flag PROJECTVELOCITY #288
    • make LinearMovementConstraint accept absolute movements #394
  • [SofaCore]
    • Add some read/write free method to construct Data Read/WriteAccessor #450
  • [SofaDefaulttype]
    • MapMapSparseMatrix conversion utils with Eigen Sparse #452
    • multTranspose method between MapMapSparseMatrix and BaseVector #456
  • [SofaDeformable]
    • Rest shape can now be given using SingleLink #315
    • Add AngularSpringForceField #334
  • [SofaEulerianFluid]
    • Pluginizing the module #396
  • [SofaExporter]
    • Clean & test the exporter #372
  • [SofaGraphComponent]
    • Add SceneCheckerVisitor to detect missing RequiredPlugin #306
    • Add a mechanism (SceneChecker) to report API & SceneChange to users #329
    • Refactor the SceneChecker and add a new SceneChecker to test dumplicated names #392
  • [SofaGeneralEngine]
    • Add test and minor cleaning for IndexValueMapper #319
    • Add a computeBBox to the SmoothMeshEngine #409
  • [SofaGeneralObjectInteraction]
    • issofa_attachconstraint #501
  • [SofaMisc]
    • Add a data repository at start-up time #402
  • [SofaMiscCollision]
    • Pluginizing the module #453
  • [SofaMiscFem]
    • Add hyperelasticity fem code in SOFA #349
  • [SofaSimpleFem]
    • ADD computeBBox and test to HexaFEMForceField #289
  • [SofaSphFluid]
    • Pluginizing the module #453
  • [SofaVolumetricData]
    • Split the module in two plugins #389

Plugins / Projects

  • [CGALPlugin]
    • Add new functionality for mesh generation from image: definition of features #294
  • [meshconv]
    • Improve the CMake config of meshconv requiring miniflowVR to compile #358
  • [PSL]
    • Experimental : Add PSL for 17.12 #541
  • [runSofa]
    • autoload plugins (2nd version) #301
    • Extend the live coding support, message API available for nodes, add an openInEditor #337
    • add verification if help is not null from displayed data #382
    • improve the html DocBrowser #540
  • [SceneChecker]
    • Add mechanism to report API & SceneChange to users #329
  • [SofaDistanceGrid]
    • Pluginizing SofaVolumetricData #389
  • [SofaImplicitField]
    • Pluginizing SofaVolumetricData #389
  • [SofaMiscCollision]
    • Pluginizing the module #453
  • [SofaPython]
    • Add unicode to string convertion and a warning message in Binding_BaseContext::pythonToSofaDataString #313
    • Add unicode to string convertion in Binding_BaseData::SetDataValuePython #313
    • Add a test #313
    • Add GIL management #326
    • Add support for Sofa.msg_ with emitter other than a string #335
    • Adding new features for AdvancedTimer #360
    • forward sys.argv to python scripts #368
    • sparse matrix aliasing scipy/eigen #411
  • [SofaSphFluid]
    • Pluginizing the module #453

Other

  • [Tools]
    • Update astyle config #550

Bug Fixes

Kernel modules

  • [all]
    • CMake: Fix and clean boost, when using Sofa as an external lib #421
    • Fix computeBBox functions #527
    • CMake: FIX Boost::program_options finding in install #618
  • [SofaBaseLinearSolver]
    • FIX no step if condition on denominator is met at first step #521
    • FIX breaking condition in CG at first step regarding threshold #556
  • [SofaBaseMechanics]
    • Make sure the mechanical object's state vectors size matches their respective argument size #406
  • [SofaBaseTopology]
    • FIX wrong clean in PointSetTopologyModifier #380
  • [SofaComponentCommon]
    • Always register all its components in the object factory #488
  • [SofaCore]
    • FIX CreateString problem on root node #377
    • FIX don't inline exported functions #449
  • [SofaDefaultType]
    • FIX Mat::transpose() and Mat::invert() #317
    • Correct CMake include_directories directive for SofaDefaultType target's #403
    • Fix compilation errors when working with transform class #506
  • [SofaHelper]
    • Fix CUDA compilation with pointer of data #320
    • FIX livecoding of shaders #415
    • fixing Polynomial_LD #442
    • Replacing afficheResult with resultToString #473
    • FIX Remove override warnings #520
    • Fix memory leak while capturing screenshot #533
    • FIX Windows relative path from runSofa #568
  • [SofaRigid]
    • RigidMapping: fixed setRepartition backward compatibility #441
  • [SofaSimulationCommon]
    • Fix a minor regression introduced during the post-sprint #476
  • [SofaSimulationCore]
    • Add stop in add_mbktomatrixVisitor #439

Other modules

  • [all]
    • Fix warnings and strange double incrementation on iterator #364
    • installing gtest headers for separate plugin builds #395
    • Fix override warnings #423
    • FIX Sofa installation failure (tries to install non-existing files) #470
    • ADD _d suffix for debug libs #511
  • [SofaBoundaryCondition]
    • Fix LinearForceField that disappears #525
    • FIX Removed incorrect warning from LinearForceField #384
  • [SofaConstraint]
    • Fix error due to MacOS >= 10.11 using a relative filename #325
    • Fix issue in GenericConstraintCorrection #567
  • [SofaDeformable]
    • Fix RestShapeSpringsForceField #367
  • [SofaExporter]
    • FIX allow to extend VTKExporter in a plugin #309
  • [SofaGeneralEngine]
    • Fix some XyzTransformMatrixEngine::update() function #343
  • [SofaGeneralImplicitOdeSolver]
  • [SofaGraphComponent]
    • Fix the test that was wrong and thus failing in SceneChecker #405
    • Fix a crashing bug in SceneCheckAPIChange. #479
    • FIX SceneChecker & RequiredPlugin #563
  • [SofaGeneralObjectInteraction]
    • Remove stiffness multiplicator in SpringForceField #290
  • [SofaMiscFem]
    • Fix FastTetrahedralCorotationalFF topology change #554
  • [SofaOpenglVisual]
    • Fix a bug crashing sofa when the textures cannot be loaded. #474

Extlibs

  • [CImg]
    • Refactor CImg & CImgPlugin #562
  • [Eigen]
    • Warning fix with eigen when compiling with msvc #447
  • [libQGLViewer]
    • FIX missing headers #461
    • Update libQGLViewer to 2.7.1 #545

Plugins / Projects

  • [CGALPlugin]
    • Fix build problem #351
    • FIX build error with CGAL > 4.9.1 #515
  • [CImgPlugin]
    • Use sofa cmake command to create proper package #544
    • Refactor CImg & CImgPlugin #562
    • prevent INT32 redefinition by libjpeg on Windows #566
  • [ColladaSceneLoader]
    • FIX Assimp copy on Windows #504
  • [Flexible]
    • Refactor CImg & CImgPlugin #562
  • [image]
    • Refactor CImg & CImgPlugin #562
  • [Meshconv]
    • fix build if no miniflowVR #358
  • [MultiThreading]
    • FIX: examples installation #299
    • Fix build with Boost 1.64.0 #359
    • FIX Windows dll loading #507
  • [runSofa]
    • FIX plugin config copy on Windows #451
    • remove non-ASCII chars in string #327
    • FIX PluginRepository initialization #502
  • [SofaCUDA]
    • Fix compilation problem with cuda. #320
    • Fix: Headers of the SofaCUDA plugin are now installed in the include folder #383
    • FIX Configuration/compilation issue with CUDA plugin #523
    • Fix linearforcefield that disappears #525
  • [SofaGui]
    • FIX draw scenes on classical and retina screens #311
    • Fixes #183 : Use the qt menu instead of the native one in Mac OS #366
    • fix ImageBMP issue + remove Laparoscopic stuff #499
    • Pickhandler minor fixs #522
    • Fix: Intel graphics on linux now overrides the core profile context #526
  • [SofaImplicitField]
    • Fix package configuration #422
  • [SofaPhysicsAPI]
    • FIX: compilation due to Sofa main API changes #549
  • [SofaPython]
    • Fix python live coding that is broken #414
    • FIX crash in python script when visualizing advanced timer output #458
    • FIX error in script for plotting advancedTimer output #519
    • Fix python unicode data #313
  • [SofaSPHFluid]
    • Fix invalid plugin initialization. #467
  • [SofaVolumetricData]
    • Fix package configuration #422
  • [SceneCreator]
    • FIX build error with AppleClang 6.0.0.6000051 #483
  • [THMPGSpatialHashing]
    • Fix build with Boost 1.64.0 #359

Scenes

  • Fix scenes #310
  • Fix scenes with bad RegularGrid position relative to 270 #324
  • Fix scenes errors and crashes #505
  • FIX all scenes failures 17.12 #565

Cleanings

Kernel modules

  • [all]
    • replace a bunch of std::cerr, std::cout, prinf to use msg_* instead #339
    • More std::cout to msg_* cleaning #370
    • FIX removed compilation warnings #386
    • Clean BaseLoader & Remove un-needed #includes #393
    • Remove last direct calls of OpenGL in modules #425
    • warning removal #454
    • Refactor SofaTest to cut dependencies #471
    • Modularizing config.h #475
    • EDIT: use PluginRepository instead of Utils::getPluginDirectory #518
  • [SofaBaseLinearSolver]
    • Add comments in the CGLinearSolver #469
  • [SofaBaseVisual]
    • Clean API message #503
  • [SofaDefaultType]
    • remove warning generated by MapMapSparseMatrixEigenUtils #485
  • [SofaHelper]
    • mute extlibs warnings #397
    • FileMonitor_windows compilation #448
    • Clean API message #503

Other modules

  • [SofaGeneralEngine]
    • add test and minor cleaning for IndexValueMapper #319
  • [SofaGeneralObjectInteraction]
    • Remove stiffness multiplicator in SpringForceField #290
  • [SofaValidation]
    • move code to set default folder for monitor to init function #500

Plugins / Projects

  • [all]
    • FIX: compilation warnings #361
  • [CGALPlugin]
  • [image]
  • [Registration]
    • Remove deprecated scene #331
  • [SofaPython]
    • General cleaning #304
    • Fix warnings #361
    • print cleaning + SofaPython quaternion dot product #404
  • [runSofa]
    • Clean : remove non-ASCII chars in string #327

v17.06

Full log

New features

For users

  • [SceneCreator]
    • new methods to add basic 3D object: Cube, Cylinder, Sphere and Plane. In rigid or deformable.
  • [GeneralTopology]
    • SphereGridTopology component to create sphere grids, similar to CylinderGridTopology.
  • Adds a new orientedBox dataField in BoxROI so that we can use it to either defined AABoxes or OrientedBox
  • Minor improvement on the way warning/error message are presented to the users in runSofa. A single panel is now used instead of of two, it is always displayed, the Panel name also contains the number of message eg: "Messages(5)"
  • The Graph view is now displaying the type of message they contains.
  • [runSofa]
    • Autoload plugins, described in the user-custom file 'plugin_list.conf' if present; else 'plugin_list.conf.default' containing all compiled plugins and generated automatically by CMake.

For developpers

  • Add a Logger component that stores the history of messages into each sofa component.
  • Implements new methods to write on-liner's conditional message: msg_info_when(level<3) << "This is a conditional info message"
  • Implement an implicit version of each of the msg_* API allowing to write msg_info() << "Hello" in place for msg_info(this) << Hello"
  • CImgPlugin : creation of a dedicated plugin for image loading based on CImg #185
  • Remove deprecated miniBoost dependency #273

Improvements

Modules

  • [all]
    • update containers to support c++x11 features #113
    • speed up spheres rendering + code cleaning #170
    • updates externs/gtest to a fresh checkout #213
    • auto-init/cleanup libraries #168
    • Improve and clean msg_api and logging of message (#190, #255, #275). See documentation for more information.
    • Add CMake option to limit cores used to build specific targets #254
    • Fix rgbacolor parsing #305
    • CMake: installing gtest headers for separate plugin builds #395
  • [SofaKernel]
    • Update the RichConsoleStyleMessageFormatter #126
    • creation of a defaulttype::RGBAColor #119
    • add a new method in BaseObjectDescription #161
    • adding listener mechanism to SceneLoader #205
    • common usage for DiagonalMass and tests #230
    • add tests for DataFileName #250
    • add tests for DefaultAnimationLoop #258
    • add tests for LocalMinDistance #258
    • add a way to convert message type to string in Message.cpp #213
    • MeshSTL.cpp replace a std:cerr by a msg_error so that FIX the corresponding failing test #213
    • adding listener mechanism to SceneLoader #204
    • Grid Topologies cleanup + new SphereGrid #164
    • Add CMake option SOFA_WITH_EXPERIMENTAL_FEATURES (default OFF) to enable MechanicalObject::buildIdentityBlocksInJacobian #276
  • [SofaGraphComponents]
    • add tests for RequiredPlugin #258
  • [SofaHelper]
    • GLSL: load shader source code from a standard string #158
  • [SofaBaseTopology]
    • GridTopology : implement "flat" grids in 1 or 2 dimension by using setting grid resolution to "1" in the corresponding axis, and associated examples #270
    • add tests for RegularGridTopology #270
  • [SofaEngine]
    • BREAKING: Add oriented box feature to BoxROI #108
  • [SofaConstraint]
    • add instantiation of constraint corrections with Vec2f #157
  • [SofaOpenglVisual]
    • add tests for ClipPlane #258
  • [SofaVolumetricData]
    • add tests for DistanceGrid #258
    • add tests for Light #258
  • [SofaBoundaryCondition]
    • add tests for ConstantForceField, some of them are OpenIssue demonstrating existing problem, as crashing sofa when using negative or too large values in indices #258
  • [CI]
    • improvement of all test scripts

Plugins / Projects

  • [GUI]
    • mouse events are now transmitted to the scene with QtGLViewer #132
  • [SceneCreator]
    • Cosmetic changes and remove un-needed include #169
  • [SofaPython]
    • Macros to bind "sequence" types #165
    • ModuleReload #214
    • light module reload #202
    • change the way createObject() handle its arguments to simplify scene writing + batch of tests #286
  • [SofaTest]
    • add Backtrace::autodump to all tests to ease debugging #191
    • add automatic tests for updateForceMask #209
    • add tests on PluginManager #240
    • TestMessageHandler : new and robust implementation to connect msg_* message to test failure #213
    • update to use the new TestMessageHandler where msg_error generates test failures #213
    • add tests for TestMessageHandler #213
  • [SofaCUDA]
    • FIX NVCC flags for debug build on Windows #300

Bug Fixes

Modules

  • Warnings have been fixed #229
  • [all]
    • check that SofaPython is found before lauching the cmake sofa_set_python_directory command #137
    • use the cmake install DIRECTORY instead of FILES to preserve the files hierarchy when installing #138
    • fixing issue related to parsing attributes with atof/atoi #161
    • unify color datafield #206
    • Fix CMakeLists bug on Sofa.ini and installedSofa.ini creation #291
    • Fix a lot of failing tests (#271, #279)
    • Fix compilation with SOFA_FLOATING_POINT_TYPE as float #262
    • CMake: Fix and clean boost, when using Sofa as an external lib #421
  • [SofaKernel]
    • Fix the Filemonitor_test random failure on MacOs #143
    • implement a numerical integration for triangle #249
    • add brace initializer to helper::vector class #252
    • Activates thread-safetiness on MessageDispatcher. #257
    • Fix getRelativePath() in DataFileName #250
    • FileRepository::getRelativePath() lowering the case on WIN32 is now a deprecated behavior #264
    • Fix FileRepository should not be optional #122
    • FileMonitor: fix the recurrent problem with file 'SofaKernel/framework/framework_test/resources/existing.txt' pointed in Issue #146 #258
    • Fix wrong inline in exported functions #449
  • [SofaFramework]
    • fix the integration scheme for Quaternion #172 and fix values with which the quaternion is being compared after creation from euler angles
  • [SofaHelper]
    • VisualToolGL: fix single primitive calls #293
    • ImagePNG: Fix library linking in debug configuration under MSVS #298
  • [SofaBaseMechanics]
    • MechanicalObject: cleaning: symbols & include #249
  • [SofaPhysicsAPI]
    • fix compilation of the project #167
  • [SofaUserInteraction]
    • MouseInteractor: FIX the mouse picking on Mechanical Object #282

Plugins / Projects

  • [image]
    • Fixes #135 : Check that SofaPython is found before including python directory #137
    • Fixes #136 : Use the cmake install DIRECTORY instead of FILES #138
  • [LeapMotion]
    • FIX compilation for LeapMotion plugin due to moved files #296
  • [runSofa]
    • Fix minor consistency issues related to the readOnly flag #115
  • [SofaTest]
    • repair the minor API breaks introduced by PR #213 #269

Scenes

  • Components/engine/GenerateGrid.scn was fixed #303

Cleanings

Modules

  • [all]

    • clean the consistency issues related to the readOnly flag #115
    • Clean licenses #139
  • [SofaKernel]

    • clean DefaultPipeline.cpp/h (API BREAKING)
    • clean the attributes names in BoxROI (API BREAKING)
    • TetrahedronFEMForceField clean code #270
    • GridTopology : clean the code & factor the constructor #270
    • RegularGridTopology : clean the constructor's code & remove NDEBUG code #270
    • MechanicalObject : removal of code specific to the grid #270
  • [SofaVolumetricData]

    • Light: clean and strenghening the interface #258
    • DistanceGrid
  • [SofaBoundaryCondition]

    • ConstantForceField: clean to follow sofa guideline & fix the "visible dependencies" #258
    • ConstantForceField: replace the "points" attribute by "indices" with backward compatibility & deprecation message #258

Plugins / Projects

  • [SceneCreator]
    • clean with cosmetic changes and removed un-needed includes
  • [SofaPython]
    • cleaning data binding #166

Moved files


v16.12

Last commit: on Jan 08, 2017
Full log

Environment

  • C++11 is now mandatory. This implies some changes in building tools.
    • Generator: CMake 3.1 or higher.
    • Compiler: GCC 4.8 or higher, Clang 3.4 or higher, Microsoft Visual C++ 2013 or higher.

New features for users

  • new Geomagic plugin: supporting latest versions of force feedback interfaces from Geomagic
  • add ForceMaskOff, a component to locally (in a branch of the scene graph) cancel the force mask
  • live-coding for python
  • live-coding for GLSL
  • new component MakeAlias
  • new component MakeDataAlias
  • improved error message & console rendering

New features for developpers

  • Preliminary Markdown support in the msg_* API. You can now write much better formatting & alignement as well as adding URL to documentations related to the error.
  • class RichStyleConsoleFormatter which interprete the markdowns in the message and format this to a resizable console with nice alignement.
  • class CountingMessageHandler (count the number of message for each message type)
  • class RoutingMessageHandler (to implement context specific routing of the messages to different handler)
  • class ExpectMessage and MessageAsATestFailure can be used to check that a component did or didn't send a message and generate a test failure.
  • FileMonitor is now implemented on MacOS & Windows (for live-coding features, for example)
  • RequiredPlugin: modified API to take a list of plugins to load
  • Implements the move semantics on sofa::helper::vector

Improvements

  • 372 new tests: DAGNode, MeshObj, DiagonalMass, BoxROI, ComplementaryROI, DifferenceEngine, BilateralInteractionConstraint, Quaternion, ImagePNG, etc.
  • 184/480 components have an associated example
  • [SofaKernel]
    • replace raw pointers with a smart ones
    • add a ComponentState attribute to BaseObject
    • BaseData::typeName is now public: useful to debug
    • implement DataTrackerEngine, a kind of DataEngine but that is not a BaseObject
    • fix SVectorstd::string. The string serialization changed
  • [SofaRigid]
    • in case jetJs is called several times per step
  • [SofaGeneralLoader]
    • MeshVTKLoader can now read FIELD data of legacy file. Lookup tables are ignored.
  • [SofaPython]
    • binding AssembledSystem as a new class in python
    • binding VisualModel::exportOBJ
    • binding for DataFileNameVector
    • add Compliant.getImplicitAssembledSystem(node)
    • SofaNumpy: bind/share a c++ 1d array as a numpy array
    • script.Controller : handle optional arguments before createGraph
  • [image]
    • raw import: add commented basic size verifications (could be performed in debug)
  • [Flexible]
    • add support for shapefunction viewer
    • new feature of strain smoothing
    • improve readme file
  • [Compliant]
    • simulation unit: convert gravity, dt
    • MaskMapping: every input are now mapped
    • add LinearDiagonalCompliance component
    • fix use of VLA in python mappings
    • improve readme file

Bug Fixes

  • fix ConstantForceField::updateForceMask()
  • fix ObjExporter memory leak
  • [SofaOpenGLVisual] OglTexture: fix possible memory leaks
  • [Compliant]
    • clean python

Cleanings

  • clean the compilation when SOFA_NO_OPENGL flag is activated
  • clean the config.h (SOFAGUI_HAVE_QWT)
  • remove boost library links (includes still required). boost chrono is not required anymore.
  • remove unused POINT_DATA_VECTOR_ACCESS macro
  • make miniflowVR build optional (default OFF)
  • [SofaKernel]
    • remove last direct opengl calls in modules
    • add deprecation message on MechanicalObject attributes
  • [SofaBaseVisual] clean BaseCamera: remove direct opengl calls
  • [SofaHaptics] boost-thread is not used any more, clean cmake
  • [SofaGeneralLoader] STLLoader: fixing binary loading in debug and cleaning examples
  • [SofaPython]
    • remove ScriptEnvironment i.e. automatic initialization of Node
    • Node::isInitialized(), not used anymore
  • [Flexible]
    • clean relativeStrainMapping

Moved files

  • move CImg from extlibs to image plugin extlibs

Documentation

  • Add the contribution and guidelines : CONTRIBUTING.md and GUIDELINES.md
  • Add the configuration required (ex: C++, compiler versions)
  • Add a page to use SOFA in Matlab
  • Improve Logger documentation
  • Add a page to use SOFA in Matlab

v16.08

Last commit: on Jul 28, 2016
Full log

New features

  • SOFA on GitHub - https://github.com/sofa-framework/sofa
  • creation of a RigidScale plugin: implementing mappings, especially allowing to get the DOF with Rigid+Scale type, while reusing affine DOF (Rigid+Scale+Shear) already implemented in Flexible
  • creation of a LeapMotion plugin: allowing to integrate a Leap in your SOFA simulation
  • add the DrawTool: DrawTool is an interface, describing an API to display primitives on screen. For now, only the OpenGL (fixed-pipeline version) implementation has been made.
  • add a Logger
  • add the diffusion effect in SOFA (heat transfer)
  • SOFA_USE_MASK compilation variable to activate or de-activate the masks in SOFA
  • DataTracker: simple and elegant way to track Data in Engine
  • extlibs: update cimg to version 1.7.3
  • Add guidelines for contributions in CONTRIBUTING.md

Moved files

  • Kernel modules of SOFA (SofaFramework, SofaBase, SofaCommon and SofaSimulation) have been moved to one common module SofaKernel, located at sofa_root/SofaKernel. SofaKernel is a pure LGPL module.

  • code in sofa_root/modules/sofa/simulation/ has been splitted into three modules of SofaKernel: SofaSimulationCommon, SofaSimulationTree, SofaSimulationGraph

  • MOVE the SofaPardiso module as a plugin

  • Move OglTetrahedralModel into a new plugin called VolumetricRendering

  • Minor moves

    • Move ColorMap code to helper and let (Ogl)ColorMap from SofaOpenGLVisual doing OpenGL stuff
    • Move TorsionForceField and ComplementaryROI into SOFA (those two components where in a deprecated repository sofa_root/modules/sofa/components/)
  • [Compliant]

    • moving propagate_constraint_force_visitor in a helper file and minor cleaning of CompliantImplicitSolver

Improvements

  • test examples are now running (on Jenkins for the Continuous Integration)

  • Add unit test for quaternions

  • Improving default mouse manipulation while picking a dof

  • MouseWheel events now propagated

  • Minor improvements

    • runSofa: force loading the SofaPython plugin if existing
    • runSofa: adding clang-style formatting (option '-z clang')
    • MechanicalObject: adding more visualisation colors for Rigids
    • SofaPluginManager: Clear description and components when removing last plugin
    • CMake: removing "-Wno-deprecated-register" compiler option that is only known by a few compilers
    • Collision: add function setConstraintId in BaseConstraintSet
    • SPtr: up to 10 parameters in constructor
    • Add function in EigenBaseSparseMatrix in order to use eigen matrices with async solvers
    • Add CUSPARSESolver in SofaCudaSolversPlugin, this solver uses cusparse library to solve a sparse triangular system on the GPU
    • MeshBoundaryROI: allows specifying an input subset
    • ColorMap: with face culling enabled
    • ColorMap: adding a scale for the legend range values
    • ImageViewer: adding new boolean data field displaying meshes directly on the slices
    • ProjectionToPlaneMultiMapping: adding a projection factor to perform tricky stuff such as planar symmetry
    • ProjectionToTargetPlaneMapping: adding a factor to perform planar symmetry for example
    • DataDisplay: can now be displayed in wireframe
    • DataDisplay: display used topology
    • DataDisplay: fix and improving shading a bit
    • SofaEngine: add selectLabelROI engine
    • SofaEngine: add SelectConnectedLabelsROI
    • SofaBoundaryCondition: it is now possible to hide fixedconstraint (default to shown as before)
    • Mat.h: adding tensor product between vectors
    • ForceField: adding const getMState()
    • VolumetricRendering: Initialize tetra/hexa Data<> (to be able to link them as data in scenes)
    • SofaBaseVisual: Add modelview and projection matrices as data output
    • FrameBufferObject: check (and use) the default framebuffer for the current display window
    • SofaOpenGLVisual: add link to a potential external shader for VisualManagerSecondaryPass
    • Add OglTexturePointer
    • adding SquareDistanceMapping to compute the square distance between 2 points.
    • add OrderIndependentTransparency Manager (using two passes instead of three)
    • add OglOITShader to customize the shading of transparent surfaces
    • ProjectionToTargetLineMapping and ProjectionToTargetPlaneMapping with precomputed constant Jacobians and using last origin and direction/normal for extra points
    • Adding a timer embedding all the animation loop step but would need further doc.
    • display of indices has been improved
    • Add an example using cloth springs: examples/Components/forcefield/ClothBendingForceField.py
    • Improving a few examples by making the embedding nodes as non pickable (tag 'NoPicking')
    • Add BaseNode::getRootPath
    • Improving performances: - Message::class is now an enum
    • Updated draw method of PointSetGeometryAlgorithms, QuadSetGeometryAlgorithms, TetrahedronSetGeometryAlgorithms, TriangleSetGeometryAlgorithms
    • Add Blender-like orientation helper in the bottom-left part of the screen while drawing bbox (QtGlViewer)
    • Add Blender-like orientation helper in the bottom-left part of the screen while drawing bbox (QtViewer)
    • add of GUIEvent into the STLExporter
    • Make the code compatible with ClipPlane (using ClipVertex in shaders, which is deprecated for GLSL > 1.4)
    • Optimize the callto C-PYTHON side when the functions are not implemented in the python side
    • Add color attribute support (and default color if not present in the node)
    • Reactivate color map in TetraFEM, as it does not depend on SofaOpenGLVisual anymore
    • indices data field for UniformMass
    • analyze matrix only if number of non-zeroes has changed and no iterative refinement
    • update the applyConstraint methods according to the actual API
    • Adding ProjectionTo{Plane|Line}MultiMapping where the plane (origin,normal) and the line (origin,direction) are dofs
    • add MeshBoundaryROI with an example
  • [Tests]

    • for (multi)Mapping test, check the size of the mapping output is correct
    • adding TestMessageHandler that raises a gtest failure each time an error message is processed
    • test for node removal
    • test for removal of a node containing an UncoupledConstraintCorrection (for now the test fails because there is a problem with the removal of that component)
    • add of Multi2Mapping_test
    • add DistanceMapping_test
  • [SofaPython]

    • logger: cleaning emitter
    • sml.Mesh: adding load function
    • sml: python set for tags is created by objects themselves
    • sml: add tag to JointGeneric
    • sml: add the printLog flag
    • sml: setup units in BaseScene for all sml Scene class
    • sml: mesh has a clear id
    • sml:insertVisual: bug fix for solid with multiple meshes (just impacting the Display scene)
    • sml: handy constructor for Dof creation
    • sml: like can be defined in
    • sml: add a utility function: look into the valueByTag dictionary for a tag contained in tags
    • sml: adding a warning if a vertex group is empty
    • sml: can have offsets under solids
    • sml: remove deprecated setTagFromTag() method
    • API: add subsetFromDeformables function
    • binding Node::isInitialized
    • binding loadPythonSceneWithArguments
    • adding a binding to get the pointer of a Data (with its dimensions and type)
    • adding binding of BaseMapping::getJs (as dense matrices for now)
    • adding python functions to convert a Data in a numpy array with shared memory
    • adding a visitor to set all mstates as non pickable (such as picking will only be performed with collision models)
    • add tags to mesh groups
    • add a groupsByTag dict to easily iterate over groups knowing a tag
    • add of SceneDataIO to save and load the current state of a simulation
    • add of the method getDataFields
    • adding automatically tested examples
    • add tags to MeshAttributes
    • add a helper PythonScriptFunction_call and PythonScriptFunction_callNoResult to call a python controller function from c++ code
    • PythonScriptHelper -> PythonScriptControllerHelper: PythonScriptHelper: add convertion for float and std::string
    • Add the timingEnabled attribute to the PythonScriptController to control if the script is gather timing statistics
    • adding python module to load .obj files
    • adding BaseContext_getObject_noWarning that returns None w/o warning if the object is not found
    • improving a bit the conversion from a cpp Base* to a PyObject* when the cpp Base* type is (even partially) known.
    • adding a test to show how to bind a component outside of SofaPython
    • Factory: conversion shortcuts for known types
    • PythonScriptController: if the filename is let empty, the controller is supposed to be in an already loaded file, to avoid to read the same file several times
    • adding "loadPlugin" function to the Sofa python module
    • Add a getObjects() method to python BaseContext interface. Allow selection of objects based on type and name.
    • object and type names are now both optional when calling BaseContext_getObjects()
    • search direction can now optionally be passed to BaseContext_getObjects()
    • at object creation failure, print additional error messages from BaseObjectDescription
    • adding special Data types in the PythonFactory, so more specific cases can be added outside of the plugin SofaPython.
    • adding Node::addObject_noWarning not to print a warning when adding an object to an already initialized node
    • add of a method which compute quaternion from a line define by a director vector
    • add of few new features to save and load the current state of simulation
  • [Flexible]

    • adding FlexibleCorotationalMeshFEMForceField (meta-forcefield). Not optimized but working
    • add of RigidScale mapping in addition to their tests and examples
    • HexaFEM comparison: each method has its own solver and uses the same decomposition so the only difference came from the deformation tensor used to find the rotation.
    • Flexible: WIP adding a meta-forcefield to compute regular corotational FEM. The idea is to use Flexible's components internally without adding extra computation neither extra memory
    • API: add strain offseting option
    • API: strainMappings as data members
    • API: use branching images for mass computation
    • API: make AffineMass, ShapeFunction, Behavior work in more cases
    • API: make Behavior work in simple cases with no label image
    • materials: removed checking for changed parameters at each step.
    • add example showing how to better handle partially filled elements using fine volumes
    • optimizing FlexibleCorotationalMeshFEMForceField by preassembling constant sub-graph
    • refactoring of MassFromDensity
    • adding a warning when creating a UniformMass on Affine/Quadratic frames.
    • add FEMDof class to python API
    • DeformationMapping: print a warning if a child particle has no parent
    • adding HEML implementation of St Venant-Kirchhoff materials (for tetrahedra).
    • if correct weights are given in mapping as input data, use it (even if a shapefunction is found)
    • use sout for logging
    • compute tangents for VisualModel loaded using loadVisual python function
    • transformEngine for Affine frames
  • [Compliant]

    • sml: export of meshes
    • sml: the solids tags to be simulated as rigids are gathered in a set()
    • sml: geometricStiffness option
    • sml: using logger
    • implementing compliance unassembled API
    • in the python API, joints can be created in compliance or not
    • API: write a addSpring() in GenericRigidJoint, reuse it in children classes where possible
    • API: simplify usage of jointCompliance specification by tag
    • API: relative offset position is given to the AssembledRigidRigidMapping, and then computed at init into the MO
    • API: modifying the API to move an Offset
    • API: adding Offset::moveOffset to apply a rigid transformation to an offset (in its local frame)
    • API: new parameter to add non-mechanical Offsets and MappedPoints
    • API: collision mesh and visual model can be added to a Rigid Offset
    • adding an automatic execution of a scene based on a sml description
    • Constraint: adding a typeid for faster Constraint type comparisons
    • adding short name to create a ConstantCompliantPseudoStaticSolver
    • using tag on joints in a generic way, set their compliance / isCompliance value
    • added machinery to map data to numpy arrays, see example/numpy_data.py
    • added easy pure python mappings, see examples/numpy_mapping.py
    • added pure python forcefields, see examples/numpy_forcefield.py
    • AssembledRigidRigidMapping autoresize
    • geometric stiffness in python mappings
    • insertMergeRigid is coherent with solid tags usage
    • CompliantPseudoStaticSolver: avoiding an unnecessary propagation when the stopping criterion is the nb of iterations.
    • visualization in DifferenceFromTargetMapping
    • Frame.py: adding a function to force quaternion normalization (to avoid numerical drift)
    • added SimpleAnimationLoop
    • adding RigidRestJointMapping to compute a joint between a rigid body's current position and its rest position.
    • large compliances are considered as null stiffnesses
    • Offset default to isMechanical=True
    • python quaternion log
    • added nlnscg acceleration
    • pure python constraints
    • .inl for python mappings
    • adding Addition[Multi]Mapping
    • implementing AssembledMultiMapping::applyDJT
    • adding DotProduct[Multi]Mapping (with tests)
    • adding NormalizationMapping to map a 3d vector to its normalization
    • adding ConstantAssembled[Multi]Mapping
    • adding SafeDistanceMapping: a distance mapping that becomes a difference mapping for too small distances.
    • adding SafeDistanceFromTargetMapping
    • using the new SofaPython API
    • SafeDistanceFromTargetMapping can now be "safe" by giving the edge directions when they are known
    • adding the SofaCompliant python module (first module created outside of SofaPython!)
    • adding DotProductFromTargetMapping (with test)
    • adding RigidJointFromTargetMapping and RigidJointFromWorldFrameMapping
    • add of complementary API to create deformable articulated systems
    • adding NegativeUnilateralConstraint to guarantee negativeness
    • adding PenaltyForceField and using it in penalty contact response
    • add of two file from the SohusimDev plugin
  • [image]

    • API: Sampler.addMechanicalObject() more versatile
    • API: refactor python API
    • API: add addClosingVisual()
    • add function in python API to retrieve perspective property
    • MeshToImageEngine: move getValue out of for loops
    • add a python ImagePlaneController
    • Data<Image> are now specifically bound in python
    • remove pthread and X11 dependencies
    • add metaimage tags that may be used to define orientation
    • add python function to retrieve image type
    • simpler imagePlane python controller
    • add a createTransferFunction method
    • improved cutplane texture resolution
    • half perspective, half orthographic image transforms
    • add imageCoordValuesFromPositions engine

Bug Fixes

  • [PluginManager] crashed when a plugin was removed

  • [SofaCUDA] fix the compilation using SofaCUDA on Windows

  • unstable behavior of masks - USE-MASK variable added

  • fix DAGNode traversal when a visitor is run from a node with a not up-to-date descendancy

  • fix flaws in glText (memory leak and an other bug)

  • EigenBaseSparseMatrix: fix parallel matrix-vector product

  • XML export

  • Minor fix

    • Sofa helper: leak when drawing 3d text
    • compilation with SofaDumpVisitor flag enabled
    • compilation of BezierTriangleSetGeometryAlgorithms (color changed from Vec3f to Vec4f)
    • runSofa: viewport aspect issue and loss of interaction in QtGLViewer
    • BoxROI: visual bounding box
    • SofaMiscForceField on Windows
    • VisualVisitor traversal order
    • SphereROI: indices out when multiple spheres
    • bug in RestShapeSpringsForceField
    • Remove VariationalSymplecticSolver.h from the package in SofaCommon (to fix history)
    • some static analysis warnings and errors (including memory leaks)
    • MeshROI: remove unnecessary sqrt
    • SphereROI: set centers' size to radii if only one radius is provided
    • ARTrack plugin compilation
    • bug in MeshNewProximityIntersection involving false positive detection with triangles containing an angle > 90°
    • path to images for html description pop up window
    • OglModel hasTexture
    • DataDisplay: normal computation
    • DataDisplay: crash when the component was dynamically added to a scene
    • visual bug with OglModel when putOnlyTexCoords is enabled with no texture
    • Order Independent Transparency for old graphics card
    • sofa::gui::glut applying changes in BaseCamera
    • computation of the bounding box in PlaneForceField
    • SofaHelper: Fix bug with FBO (causing some weird things when using textures)
    • corrected the visualization of heterogeneous tetrahedra
    • SofaOpenGLVisual: Fix Spotlight source drawing + add some log for ShaderElement
    • OmniDriverEmu plugin and examples
    • scene test: ICPRegistration_ShapeMatching.scn is ignored
    • Vec: 'normalized' function constness
    • SpotLight: direction normalization
    • ProjectionTo{Plane,Line}MultiMapping Jacobian insertion order
    • SofaGeneralRigid: bug in ArticulatedSystemMapping
    • SofaEngine: BoxROI instantiation
    • SofaBaseCollision: Fix computeBBox in SPhereModel
    • bug in MechanicalPickParticlesWithTagsVisitor input tags were not respected
    • SofaOpenGLVisual: fix light's modelview matrix computation (lookat data was not checked)
    • StateMask method clean needs to resize m_size to 0
  • [Test-CI]

    • fix crash UncoupledConstraintCorrection_test
    • fix SofaComponentBase_test on windows
    • fix Mapping and MultiMapping tests
    • fix MultiMapping::applyDJT test
    • fix {Difference,Addition}Mapping when a pair is composed of the same index.
    • fix tested scenes selection
    • removed OptiTrackNatNet from "options" configurations
    • ignore some OptiTrackNatNet scenes testing
  • [SofaPython]

    • fix GridTopology type on the python side
    • fix OBJ loader
    • fix loading a scene from a .py in a Node independently from the awful Simulation singleton.
    • fix SofaPython.Tools.localPath in some situations
    • fix BaseContext_getObjects so it can select objects from a base class name (and adding an example)
    • quaternion: fix singularity in from_line function
  • [Flexible]

    • fix case sensitive issues
    • API: fix a bug with colors when reloading a scene
    • fix the bulk factor in NeoHookean material
    • fix NeoHookean traction test
    • testing detachFromGraph
    • BaseDeformationMapping: remove debug message, fix usage of sout (no need for testing f_printLog)
    • fix test compilation w/o image plugin
    • fix loadVisual
    • fix bug in topologygausspointsampler (computation of volume integrals for irregular hexa)
  • [Compliant]

    • CompliantImplicitSolver: fix Lagrange multipliers clear when reseting the simulation
    • auto-fix init errors in RigidMass
    • Frame.py: adding tolist() conversion
    • fix Jacobian reserved size
    • fix contacts and associated test
  • [image]

    • python tools: fix bug in mhd parsing
    • MeshToImage: fix bresenham, be sure dmax>=1
    • fix resampling of projection images, and marching cubes default parameter
    • fix bug in mhd file loader
    • fix rasterization when using vertex colors

Cleanings

  • warnings were removed

  • dead branches were removed

  • the ‘using’ directives were removed in header files

  • the repository sofa_root/modules/sofa/components has been cleaned (deprecated components removed)

  • clean many SOFA examples

  • removing "using helper::vector" from VecTypes.h

  • SofaQtGui: Remove qt3 remnants in ui files

  • Minor clean

    • clean SofaBaseCollision of OpenGL dependency
    • cleaning Material::setColor
    • Base: write sout as info (rather than warnings)
    • clean and fix RestShapeSpringsForceField draw functions
    • Remove useless tests, optimize and fix potential bugs
    • cleanup, precompute barycenters for tetra and hexa
    • SofaBaseVisual: clean up and make consistent BaseCamera's code: clean QtViewer projection (remove OpenGL functions)
    • SofaBaseVisual: clean and fix BaseCamera Z clipping
    • SofaOpenGLVisual: cleanup Lights (remove Glu calls and set matrices as data) + Fix typo in Camera
    • quaternion to euler: not need for the hack since atan2 is used
  • [SofaPython]

    • clean examples
    • clean the hard-binding example
    • clean noPicking visitor
  • [Flexible]

    • remove unecessary data for Gauss points visualization
    • some clean regarding openmp parallelisation
    • clean metaFF
    • remove unecessary apply in reinit
    • clean FlexibleCorotationalMeshFEMForceField
  • [Compliant]

    • clean RigidJoint{Multi}Mapping

v15.12

Full log


v15.09

Full log