- Dec 20, 2016
-
-
Alexis Girault authored
1) RemoveCuller 2) Disable VBO Shift&Scale check Also use `setUpMapper` (previously setActorMapper) more consistently.
-
- Dec 08, 2016
-
-
Alexis Girault authored
MeshIO (input, output, convert) for (volumetric) meshes in .msh and .veg file format 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
-
- Dec 06, 2016
-
-
mohitTyagi authored
-
mohitTyagi authored
-
mohitTyagi authored
-
mohitTyagi authored
-
mohitTyagi authored
-
- Nov 30, 2016
-
-
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
-
- Nov 29, 2016
-
-
Alexis Girault authored
-
Alexis Girault authored
vtkInteractor::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 regular framerate, because the time taken withing 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 framerate. Default value is 0ms to render as fast as possible. See: : http://gaming.stackexchange.com/questions/221423/is-there-any-reason-to-limit-my-fps
-
- Nov 23, 2016
-
-
Alexis Girault authored
Current default to ".". Needs to be modified for each user on their on system (do not commit changes to this line).
-
- Nov 19, 2016
-
-
Alexis Girault authored
BUG: Fixes wrong default value for pbd tolerance Fixes wrong default value for pbd tolerance in PbdConstraint class See merge request !110
-
- Nov 17, 2016
-
-
Sreekanth Arikatla authored
Fixes wrong default value for pbd tolerance in PbdConstraint class
-
- Nov 16, 2016
-
-
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
-
Alexis Girault authored
-
Alexis Girault authored
- wrapper for loopdelay - use double precision for loopdelay and frequency to maintain correct values for set/get after divisions by 1000
-
Alexis Girault authored
-
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
-
- Nov 15, 2016
-
-
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.
-
- Nov 14, 2016
-
-
Alexis Girault authored
define "StdVectorOfxxx" for all eigen matrix structures used in iMSTK within 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.
-
- Nov 11, 2016
-
-
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
-
NickMilef authored
-
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
-
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
-
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
-
- Nov 10, 2016
-
-
Sreekanth Arikatla authored
-
Alexis Girault authored
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.
-
Sreekanth Arikatla authored
Rename NewtonMethod to NewtonSolver and the files accordingly
-
Sreekanth Arikatla authored
1. Make solve in solverBase class pure virtual 2. Rename DeformableObject to FEMDeformableObject and files accordingly 3. Efficient way to do checks in FEMDeformableObject::initialize() and pbdObject::initialize() 4. Add variable to address which map to apply for the visual geometry
-
Sreekanth Arikatla authored
Removes problemState base class Initialize methods now return bool
-
Sreekanth Arikatla authored
Make PbdConstraint abstract base class with solvePositionConstraint to be implemted in base class
-
Sreekanth Arikatla authored
1. Template parameter in the DunamicalObject and DynamicalModel is named to StateType 2. Rename paramerts in the initialization of the pbd constraints 3. Remove unnecessary APIs in scene object hierarchy
-
- Nov 09, 2016
-
-
Sreekanth Arikatla authored
Renames pbd constraint classes. Renames the selfUpdate to updateGeometries
-
- Nov 08, 2016
-
-
Alexis Girault authored
Add testing framework Add testing with google test framework in the superbuild. See merge request !104
-
Alexis Girault authored
Update Geometry and Sphere to have scaling and radius respectively > 0;
-
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.
-
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.
-
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.
-
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
-
Alexis Girault authored
-