Updates will be applied on October 27th between 12pm - 12:45pm EDT (UTC-0400). Gitlab may be slow during the maintenance window.

  1. 14 Nov, 2016 1 commit
  2. 11 Nov, 2016 4 commits
    • Sreekanth Arikatla's avatar
      STYLE: Rename class member variables in NewtonSolver · 85f969ab
      Sreekanth Arikatla authored
      Rename class member variables in NewtonSolver to start with prefix '_m'
      85f969ab
    • 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
  3. 10 Nov, 2016 7 commits
  4. 09 Nov, 2016 1 commit
  5. 08 Nov, 2016 7 commits
    • 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
  6. 03 Nov, 2016 2 commits
  7. 01 Nov, 2016 2 commits
  8. 31 Oct, 2016 1 commit
    • Sreekanth Arikatla's avatar
      COMP: Refactoring pbd collision constraint classes · 14e2820b
      Sreekanth Arikatla authored
      1. Seperate files for separate Pbd colliison constrain classes
      2. Preincrement lop variables
      3. Refactor collision constraint classes: remove raw pointers, using auto, style corrections
      4. Move pbd constraints to seperate folder within constraint folder
      5. Clears warnings in Physics module
      14e2820b
  9. 30 Oct, 2016 2 commits
    • Sreekanth Arikatla's avatar
      STYLE: Place all dynamicalModel related into separate folder · 83683fc8
      Sreekanth Arikatla authored
      Place all dynamicalModel related into separate folder.
      SceneElements now has just the tangable and intangable objects.
      83683fc8
    • Sreekanth Arikatla's avatar
      ENH: Refactor dynamical object classes · b646b28c
      Sreekanth Arikatla authored
      1. Dynamical object classes are templated with the problem state
         (Deformable bodies use vectorized state. Pbd objects use pbdState.)
      2. Pbd state is refactored to have only the current state
      3. Rename deformableBodyState to VectorizedState which can be used in
         future by all the finite element and vectorized formulations
      4. Remove unnecessary mappnig for the cloth example
      5. Adds queries to sceneobject for visible, collidable and physics
      6. Optional allocation of internal states for pbdState
      7. Removes the specialized calls in the sceneManager::runModule.
         This will be further cleaned.
      8. Correct ifdef in imstkNewmarkBeta.h
      b646b28c
  10. 28 Oct, 2016 1 commit
  11. 27 Oct, 2016 2 commits
  12. 26 Oct, 2016 2 commits
    • Sreekanth Arikatla's avatar
      ENH: Generalizes solver interface · c2b25b96
      Sreekanth Arikatla authored
      Adds a solver base class so that both nonlinear solvers and the pbd solver derives from it.
      This simplifies the SceneManager::runModule()
      c2b25b96
    • Sreekanth Arikatla's avatar
      COMP: Refactoring pbd classes · 697c43a0
      Sreekanth Arikatla authored
      Make a base class for problem state. All math models uses states that are derived from this class.
      Rename ProblemState class to DeformableBodyState
      Rename positionBasedModel to positionBasedDynamicsModel
      Replace raw pointers with smart pointers in pbdModel class
      rename class functions in pbdModel
      pbdState: move function definitions to .ccp & replace int by size_t
      697c43a0
  13. 25 Oct, 2016 2 commits
  14. 24 Oct, 2016 3 commits
    • Sreekanth Arikatla's avatar
    • Alexis Girault's avatar
      COMP: Fix issues from sceneObject MR on windows · ef104437
      Alexis Girault authored
      - Corrects wrongly named controller objects
      in the Sandbox example
      
      - Corrects wrong construtor call to the PBDObject
      ef104437
    • Alexis Girault's avatar
      Merge branch 'refactor-controllers' into 'master' · 080d795f
      Alexis Girault authored
      Refactor controllers
      
      This MR aims to refactor the VirtualCouplingObject class into a SceneObjectController, as well as correct some style and architecture issues.
      
      ### STYLE: correct identation 97fc549f
      Convert tabs to 4 spaces
      
      ### ENH: simplify TrackingController constructor fbc48bae
      - Get rid of scaling in constructor (too many parameters, why choose scaling and not others? Use `setTranslationScaling` instead) 
      - No more default `nullptr` value for `DeviceClient` in controller constructor
      
      ### ENH: Implement getMasterGeometry 85470771
      Returns the master geometry. A geometry is qualified master by the direction of the geometry maps of the object. For example with a dynamic object, physic geometry will drive the changes to the colliding geometry, which will drive the changes to the visual geometry...
      
      ### ENH: Divide SceneObject & CollidingObject d8fee1f4 (fixes #84)
      Colliding geometry is only in `CollidingObject, not `SceneObject`.  To do this, we also had to :
      - Have `PbdObject` inherit `CollidingObject` *(in the future there should not be a distinct object class just for Pbd : there should just be dynamical objects that can use different models, like Pbd or FEM)*
      - Remove useless checks when creating interactions: even two colliding objects (not dynamic, aka static) could be interacting if they are both controlled by devices
      
      ### STYLE: correct some includes and forward declarations 0340bde7
      
      ### ENH: remove interface for transforming geometry in RigidObject 7c272963
      We are still wondering how to store/apply our geometries. Having yet another interface to only wrap the API to transform the geometry is not needed: we can directly call them on the geometry themselves for more transparency on what geometry is being updated. *This should be investigated later on when we will work with rigid body dynamics.*
      
      ### ENH: Refactor VirtualCouplingObject in a controller  (fixes #99)
      - `SceneObjectController`: similar to cameraController, it subclasses trackingController to update the transformation of an object master geometry, instead of updating itself. 
      - `SceneObject`: similar to camera, has an interface to easily setup a controller using a device client. 
      - `CollidingObject`: stores the force vector that needs to be applied to the device.
      - `SceneManager`: make the API calls from controller instead of object
      
      ### STYLE: Rename cameraController attribute to controller 9e199a30
      
      See merge request !102
      080d795f
  15. 20 Oct, 2016 3 commits
    • Alexis Girault's avatar
      9e199a30
    • Alexis Girault's avatar
      ENH: Refactor VirtualCouplingObject in a controller · 621038b5
      Alexis Girault authored
      SceneObjectController: similar to cameraController, it
      subclasses trackingController to update the transformation
      of an object master geometry, instead of updating itself.
      
      SceneObject: similar to camera, has an interface to easily
      setup a controller using a device client.
      
      CollidingObject: stores the force vector that is to be
      applied to the device.
      
      SceneManager: make the API calls from controller instead
      of object
      621038b5
    • Alexis Girault's avatar
      ENH: remove interface for transforming geometry in RigidObject · 7c272963
      Alexis Girault authored
      We are still wondering how to store/apply our geometries.
      Having yet another interface to only wrap the API to
      transform the geometry is not needed: we can directly
      call them on the geometry themselves for more transparency
      on what geometry is being updated.
      
      This will be investigated later on when we will work with
      rigib body dynamics.
      7c272963