Skip to content
Snippets Groups Projects
  1. Mar 17, 2021
  2. Mar 10, 2021
  3. Mar 04, 2021
  4. Jan 20, 2021
  5. Dec 11, 2020
  6. Nov 25, 2020
  7. Nov 23, 2020
  8. Jul 18, 2020
  9. Jul 10, 2020
  10. Jul 09, 2020
  11. Jun 20, 2020
  12. Jun 18, 2020
  13. Jun 01, 2020
  14. May 23, 2020
  15. May 17, 2020
  16. Apr 19, 2020
  17. Apr 06, 2020
  18. Jul 14, 2019
  19. Jun 19, 2019
  20. Mar 06, 2019
  21. Dec 04, 2018
  22. Nov 12, 2018
  23. Nov 10, 2018
  24. Nov 09, 2018
  25. Sep 07, 2017
  26. Aug 24, 2017
  27. Aug 07, 2017
  28. Jul 24, 2017
  29. Jul 06, 2017
  30. Jul 03, 2017
    • Sreekanth Arikatla's avatar
      PERF: Move vtk cell consistency check to utility · 690eae31
      Sreekanth Arikatla authored
      The cell consistency check takes considerable time during the initialization
      and is removed from the surfaceMeshRenderDelegate.
      
      Mesh related checks such as this (watertightness etc.) should be done
      within the utility functions of Mesh or Rendering module. For now the user
      is expected to supply correct meshes.
      690eae31
  31. May 03, 2017
  32. Apr 21, 2017
    • Alexis Girault's avatar
      ENH: Refactor geometry transformations · 648daf5c
      Alexis Girault authored
      
      - Geometry class does not have a position, orientation, scaling combination
      anymore, but a rigid transformation (translation + rotation) as well as a
      separate uniform scaling.
      - The value of that transformation can be changed using setTranslation(),
      setRotation(), and setScaling().
      - scale(), translate(), and rotate() are utility functions which behavior
      vary based on the parameter TransformType: ConcatenateToTransform, the
      default value, will concatenate transformations to the rigid transform and
      signals that the transform has been modified; ApplyToData directly enforces
      the transformation given to the internal data of the geometry, and signals
      that the data has been modified (useful to enforce offsets at the beginning
      of the simulation to avoid concatenating that offset continuously).
      - A new base class AnalyticalGeomerty is created for Capsule, Plane, Cube
      and Sphere. It wraps the common attributes to those geometries: a position
      and an orientation axis. The values of those properties after the transform
      is applied are also stored to avoid redundant computations.
      - Subclasses of AnalyticalGeometry often show properties related to size:
      width, radius, length, etc. Those have their post-transform sibling also.
      - The Plane has a Normal API which simply wraps the AnalyticalGeometry
      orientation axis.
      - The mesh base class also keeps track of a post-transform value for the
      vertex positions.
      - Those internal data properties can be set with regular setting methods,
      which also signals that the internal data has been modified.
      - Get methods for those properties have a behavior which vary based on
      the parameter DataType: PostTransform is the default value, and it will
      return the post transform data, computing it by applying the transform if
      it was not yet done.
      - CollisionDetection classes are updated to use that post-transform data
      - RenderDelegates are updated to update their internal data only when
      the geometry data has been modified (use VTK sources and transform filter),
      as well as the rigid transform when that one has been modified also.
      - Maps, Controllers, and tests are updated to use the correct API:
      set translation and rotation and not position/orientation.
      - Update Geometry and Plane test to take into account the change of API:
      getRotation is now returning a Mat3d instead of a quaternion for less
      operations, and getNormal will return a normalized vector even if the one
      set was not normalized. Use `isApprox` to allow for low variability.
      - Update API in sandbox example
      - Got rid of the vertexDisplacements variable in the Mesh class, difference
      between the vertexPosition and the initialVertexPositions: it was requiring
      additional bookeeping which was not necessary
      
      Co-Authored-by: default avatarSreekanth Arikatla <sreekanth.arikatla@kitware.com>
      Signed-off-by: default avatarAlexis Girault <alexis.girault@kitware.com>
      648daf5c
    • Sreekanth Arikatla's avatar
  33. Apr 19, 2017
  34. Apr 11, 2017
    • Shusil Dangi's avatar
      ENH: Changes/Adds the standard Copyright info for all files · 8259ffcc
      Shusil Dangi authored
      /*=========================================================================
      
         Library: iMSTK
      
         Copyright (c) Kitware, Inc. & Center for Modeling, Simulation,
         & Imaging in Medicine, Rensselaer Polytechnic Institute.
      
         Licensed under the Apache License, Version 2.0 (the "License");
         you may not use this file except in compliance with the License.
         You may obtain a copy of the License at
      
            http://www.apache.org/licenses/LICENSE-2.0.txt
      
         Unless required by applicable law or agreed to in writing, software
         distributed under the License is distributed on an "AS IS" BASIS,
         WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         See the License for the specific language governing permissions and
         limitations under the License.
      
      =========================================================================*/
      8259ffcc
  35. Apr 06, 2017
    • Alexis Girault's avatar
      BUG: Fix #122 black analytic objects · 65f81868
      Alexis Girault authored
      Fix regression introduced in !121 with the use of the fast normals filter
      `vtkTriangleMeshPointNormals`. That filter was also applied for surface
      meshes with non-triangular cells: cells, sphere, capsule, cube (quads and
      not triangles).
      
      Since the issue of non-triangular meshes comes from analytic mesh sources,
      the output surface meshes will always be rigid, so their normals will stay
      constant and won't need to be recomputed. We can therefore use the filter
      `vtkPolyDataNormals`, which is slower but will only need to be called once
      of no deformation occurs.
      65f81868
  36. Jan 26, 2017
    • Alexis Girault's avatar
      ENH: Use vtkTriangleMeshPointNormals · 969659fd
      Alexis Girault authored
      The main bottleneck with real-time VTK rendering so far
      appeared to be the normals computation. This commit addresses
      that issue by making use of the latest normals computation
      filter in VTK: vtkTriangleMeshPointNormals.
      
      While this filter is much (5 to 16 times) faster than
      vtkPolyDataNormals, it does not check for consistency in the
      cell orientations that could cause inverted normals, which
      is why the vtkPolyDataNormals is called once in the surfacemesh
      renderdelegate to retrieve consistent cells for the input mesh.
      
      See VTK merge request for more information :
      vtk/vtk!2271
      
      PS: That MR requires the latest commits from VTK master, which
      does not include work made on texture wrap mode nor on multi
      texture attributes yet:
      - vtk@62a7ecd8
      - vtk@ae373026
      969659fd
  37. Dec 20, 2016
Loading