Skip to content
Snippets Groups Projects
  1. Dec 20, 2016
  2. Dec 08, 2016
    • Alexis Girault's avatar
      Merge branch 'mshReader' into 'master' · c8dbe384
      Alexis Girault authored
      MeshIO (input, output, convert) for (volumetric) meshes in  .msh and .veg file format
      
      ![liverScreenShot2](/uploads/f396f4cc1570700aa9c90e835dd932d2/liverScreenShot2.png)New addition(s):
      1. Added `MSHMeshIO` to read a mesh in .msh file format, and instantiate `imstk::VolumetricMesh` 
      2. Added a method in `VegaMeshIO` to convert `imstk::VolumetricMesh` to `vega::VolumetricMesh`
      3. Added a method in `VegaMeshIO` to write `imstk::Mesh` in .veg file format.
      4. Added an example `testMshandVegaIO` in `Sandbox` to test these implementations (Attached is the output with this merge request).
      
      See merge request !112
      c8dbe384
  3. Dec 06, 2016
  4. Nov 30, 2016
    • Alexis Girault's avatar
      Merge branch 'improve-render-clock' into 'master' · c6298aa5
      Alexis Girault authored
      Improve render clock
      
      `VTKInteractorStyle::CreateRepeatingTimer` would call
      `VTKInteractorStyle::OnTimer` then sleep for the period
      given in ms after calling `OnTimer` again. This isn't
      adapted for rendering at a uniform frame rate, because
      the time spent within the `OnTimer` function is not
      taken into account in the sleep time.
      
      By using `OneShotTimer`, we can manipulate when to
      render the next frame: in (period - time spent) ms
      if the time spent in `OnTimer` is smaller than the period
      time, or right away (period of 0 ms) if the time spent
      is over the target period (late frame).
      
      An interface is added in the `VTKInteractorStyle`,
      wrapped in the `VTKViewer`, to set the target frame rate.
      
      Also added a commit to use `DATA_DIR` defined in the Sandbox example to easily change the data directory for each user on their own machine. Any local change to the `DATA_DIR` value should not be committed in the future.
      
      See merge request !114
      c6298aa5
  5. Nov 29, 2016
  6. Nov 23, 2016
  7. Nov 19, 2016
  8. Nov 17, 2016
  9. Nov 16, 2016
    • Alexis Girault's avatar
      Merge branch 'improve-module-timing' into 'master' · 8524c6fe
      Alexis Girault authored
      improve module timing
      
      @NickMilef I quickly made this based on the way you handle frequency in the logger you created. Could you give me your thoughts on what strategy would be the best between those two?
      
      
      * Current implementation: using `sleep_for`
        - **pros:** will stop the thread and will not frenetically keep looping in the while loop. (does that actually matter?)
        - **cons:** might sleep too long?
      
      * Offered implementation: this commit
        - **pros:** as soon as `elapsed > loopDelay`, run module (won't "sleep" too long)
        - **cons:** keeps rolling in the while loop. Could that be an issue?
      
      See merge request !108
      8524c6fe
    • Alexis Girault's avatar
      TEST: add imstkModuleTest · 6e30a183
      Alexis Girault authored
      6e30a183
    • Alexis Girault's avatar
      ENH: add set/get frequency in Module · 915746cd
      Alexis Girault authored
      - wrapper for loopdelay
      - use double precision for loopdelay and frequency to
      maintain correct values for set/get after divisions by 1000
      915746cd
    • Alexis Girault's avatar
      ENH: replace sleep_for by tick mechanism · ce402704
      Alexis Girault authored
      ce402704
    • Alexis Girault's avatar
      Merge branch 'vtk-no-copy' into 'master' · b5db39d9
      Alexis Girault authored
      Vtk no copy
      
      #### ENH: Align Eigen matrix allocator for stl vectors - 0fa25818
      Define `StdVectorOfxxx` for all eigen matrix structures defined in `imstkMath.h` which are used in iMSTK within a `std::vector`.
      See http://eigen.tuxfamily.org/dox-devel/group__TopicStlContainers.html
      Requires to update SCCD to commit 645508940 which also updates its vec3 structure.
      
      
      #### ENH: Use no copy data array to map vertices to VTK - 400c0987 
      Update VTK mesh render delegates (SurfaceMesh, LineMesh, TetrahedralMesh) to directly map the vertices from the eigen and stl structures in iMSTK, and get rid of `VTKMappedVertexArray`. This should considerably reduce overhead calls and improve performances thanks to the no-copy operation. See http://www.vtk.org/Wiki/VTK/Tutorials/DataArrays
      
      Add back normals generation in the `SurfaceMesh` render delegate, and update testPbdCloth to add another row of points to the cloth (made it easier to debug the initial vertex positions), as well as adding lights to better visualize correct normals.
      
      See merge request !107
      b5db39d9
  10. Nov 15, 2016
    • Alexis Girault's avatar
      ENH: Use no copy data array to map vertices to VTK · 400c0987
      Alexis Girault authored
      Update VTK mesh render delegates (SurfaceMesh,
      LineMesh, TetrahedralMesh) to directly map the vertices
      from the eigen and stl structures in iMSTK, and get rid
      of VTKMappedVertexArray. This should considerably reduce
      overhead calls and improve performances thanks to the
      no-copy operation.
      
      See http://www.vtk.org/Wiki/VTK/Tutorials/DataArrays
      
      Add back normals generationin the SurfaceMesh render delegate.
      
      Also updates testPbdCloth to add another row of points
      to the cloth (made it easier to debug the initial
      vertex positions), as well as add lights to better
      debug normals.
      400c0987
  11. Nov 14, 2016
  12. Nov 11, 2016
    • Alexis Girault's avatar
      Merge branch 'VTK-renaming' into 'master' · 8827210f
      Alexis Girault authored
      VTK renaming
      
      Renamed everything that uses VTK. Some of these classes will need an interface eventually, but that can be done as the Vulkan renderer gets built so that we can abstract the important common characteristics.
      
      See merge request !106
      8827210f
    • NickMilef's avatar
      Renamed classes with VTK components · c038e75d
      NickMilef authored
      c038e75d
    • Alexis Girault's avatar
      Merge branch 'refactorPhysicsModule' into 'master' · 0940b202
      Alexis Girault authored
      Refactor physics module
      
      **Summary**:  
      *  Modifies the Dynamical objects realted classes to generalize for any problem state. This allows for rigid bodies, deformable bodies using FEM and pbd under one dynamicalObject base class.
      * Adds common interface for pbd solver and FE solvers to allow simpler code in SceneManager
      * Refactors all the PBD classes for bugs, style, warnings and efficiency.
      * Misc. modifications including rearranging folders, example codes, renaming classes and clearing some warnings.
      
      See merge request !103
      0940b202
    • Alexis Girault's avatar
      Merge branch 'http-external-deps' into 'master' · 09e6c056
      Alexis Girault authored
      Use HTTPS for external dependencies
      
      As noted by @NickMilef in the developers mailing list, `googletest` git repository was using the SSH protocol instead of HTTPS, which requires users to add an ssh_key on github.com.
      
      We switch all those external projects to HTTPS protocol, but keep the ones hosted by ourselves on gitlab.kitware.com in SSH since we might be contributing back to those during development
      
      See merge request !105
      09e6c056
    • Sreekanth Arikatla's avatar
      STYLE: Enforce style in pbd classes · ad2f7e6e
      Sreekanth Arikatla authored
      1. Enforces style to move one line code to one line
      2. Move multiple lines to .cpp
      3. make epsilon part of the class
      4. SolvePositionConstraint in the base class is made pure virtual
      ad2f7e6e
  13. Nov 10, 2016
  14. Nov 09, 2016
  15. Nov 08, 2016
    • Alexis Girault's avatar
      Merge branch 'add-testing' into 'master' · 761b92ec
      Alexis Girault authored
      Add testing framework
      
      Add testing with google test framework in the superbuild.
      
      See merge request !104
      761b92ec
    • Alexis Girault's avatar
      ENH: Add test for imstkGeometry and imstkSphere · 146720b9
      Alexis Girault authored
      Update Geometry and Sphere to have scaling and
      radius respectively > 0;
      146720b9
    • Alexis Girault's avatar
      COMP: Allow CTest to cover innerbuild tests · f3522cb8
      Alexis Girault authored
      With the superbuild architecture, the inner project
      is not added as a subdirectory in the superbuild project,
      but configured through ExternalProject_Add(). For this
      reason, the CTestTestfile.cmake at the top level (superbuild
      project) does not add the Innerbuild directory in which
      there is another CTestTestfile.cmake referencing the tests
      of the inner project.
      
      This commit includes the file `imstkCTestAddInnerbuild.cmake.in`
      which calls `subdirs()` on the Innerbuild directory. That file
      is configured in the top-level build directory, and added as
      the TEST_INCLUDE_FILE property to that directory. This will
      include that file to the top-level CTestTestfile.cmake, which
      will therefore be able to reach the CTestTestfile.cmake in the
      Innerbuild directory when running ctest.
      
      Use this commit to also only solve external dependencies
      in the superbuild tree, no need to to it in the innerbuild tree.
      f3522cb8
    • Alexis Girault's avatar
      COMP: remove testing source files from targets · 34f78b7e
      Alexis Girault authored
      By adding testing source files in the same directory
      than the target source files, those first ones were
      included in the target executables by mistake.
      34f78b7e
    • Alexis Girault's avatar
      TEST: Use custom GTEST_ADD_TESTS to register all tests · 866e208d
      Alexis Girault authored
      ctests would currently only be created for each test file,
      but the GTEST_ADD_TESTS function[1] could allow to register
      all gtests as independent tests.
      
      [1] https://cmake.org/cmake/help/v3.0/module/FindGTest.html
      
      However, that function would not allow the use of a driver
      executable, since it would force the `gtest_filter` flag to
      appear right after the executable name in the command, while
      a driver executable would need the name of the test file
      beforehand.
      
      This commit introduces a custom version of GTEST_ADD_TESTS
      where `extra_args` is called before the `gtest_filter` flag
      to allow the use of an executable driver.
      
      Note: as noted in the doc above[1], testing each gtest is
      slow since they all necessite the startup of an executable.
      The previous option of testing per file is therefore kept
      but commented. A future focus of interest could be to
      customize `add_test` to then run all gtests at once like
      GoogleTest does by default.
      866e208d
    • Alexis Girault's avatar
      TEST: implement CMake function imstk_add_test · 661b052a
      Alexis Girault authored
      Allows to create tests in iMSTK using google test and ctest.
      Ctests are created by test files, and not by gtest functions.
      
      Requirements:
      - Requires a 'Testing' subdirectory with cpp files for each
        class to test.
      - Google Test and Google Mock should be used to create unit
        tests, see the documentation below:
        https://github.com/google/googletest/blob/master/googletest/docs/Documentation.md
        https://github.com/google/googletest/blob/master/googlemock/docs/Documentation.md
      - Test files should be constructed as described under\
        `imstk_add_test()` declaration
      661b052a
    • Alexis Girault's avatar
      ENH: Add Google Test as external project · 25c20bb7
      Alexis Girault authored
      25c20bb7
Loading