iMSTK issueshttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues2021-04-07T11:43:38-04:00https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/294Examples not working due to relative path issue of shared library libopenvr_...2021-04-07T11:43:38-04:00reneXreneczechdev@gmail.comExamples not working due to relative path issue of shared library libopenvr_api (LNX)I'm getting an error with openvr when running any of the examples.
`error while loading shared libraries: ../../../../install/lib/libopenvr_api.so: cannot open shared object file: No such file or directory`
Maybe, owing to VTK depends...I'm getting an error with openvr when running any of the examples.
`error while loading shared libraries: ../../../../install/lib/libopenvr_api.so: cannot open shared object file: No such file or directory`
Maybe, owing to VTK depends on openvr the library is pointing to an incorrect relative path...
I'm using `09299da9ad1b8ddb4b0b0cd323532eb29b4e81b1` version. OS Debian 9.
Thanks in advance for any help.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/293Superbuild seems to only utilize 1 core for vtk build2021-05-25T17:32:31-04:00Harald ScheirichSuperbuild seems to only utilize 1 core for vtk buildLooks like the superbuild doesn't set `\MP` for the vtk build, (and maybe others) its particularily visible with vtk as its the only thing that is building for a while.Looks like the superbuild doesn't set `\MP` for the vtk build, (and maybe others) its particularily visible with vtk as its the only thing that is building for a while.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/292Bug: Can not rotate and tranlate volume data2021-04-02T22:58:18-04:00huiqiTian222Bug: Can not rotate and tranlate volume datai just load a volume nrrd image data, but can not rotate or translate it.
All the following codes have no effect
```
`volume->rotate(Vec3d(0, 1, 0), PI);
volume->setRotation(Vec3d(1, 0, 0), PI / 2);
volume->setTranslation(Vec3d(0, 20...i just load a volume nrrd image data, but can not rotate or translate it.
All the following codes have no effect
```
`volume->rotate(Vec3d(0, 1, 0), PI);
volume->setRotation(Vec3d(1, 0, 0), PI / 2);
volume->setTranslation(Vec3d(0, 200, -100));
volume->translate(100, 100 ,100)`
```https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/291PointSet::setInitialVertexPositions doesn't set m_vertexPositions2021-06-01T14:51:09-04:00Harald ScheirichPointSet::setInitialVertexPositions doesn't set m_vertexPositionsSetInitialVertexPositions is in the public interface, but using it seems to require SetVertexPositions as well, as it only sets the m_initialVertexPositions member variable, when creating a surface mesh for example this means ComputeVert...SetInitialVertexPositions is in the public interface, but using it seems to require SetVertexPositions as well, as it only sets the m_initialVertexPositions member variable, when creating a surface mesh for example this means ComputeVertexNeighborTriangles fails as it asumes m_vertextPositions to be correctly set. Either the SetInitialVertexPositions should be not be in the public interface or it needs to do the right with with regards to `m_vertexPositions`https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/290Camera `setFocalPoint` issue when view direction colinear to up2022-06-01T18:09:30-04:00Harald ScheirichCamera `setFocalPoint` issue when view direction colinear to upset focal point fails without warning when view direction is equal to the implicit up, we can either warn the user when this happens or select a different up directionset focal point fails without warning when view direction is equal to the implicit up, we can either warn the user when this happens or select a different up directionhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/289Examples fail to run for a new guy2021-04-02T19:38:39-04:00KimExamples fail to run for a new guyI have followed the Configuration and Build instructions (for Linux) as described on your readthedocs.io site, but the examples fail to execute when I try running them. The error produced is always related to a failure to find or run th...I have followed the Configuration and Build instructions (for Linux) as described on your readthedocs.io site, but the examples fail to execute when I try running them. The error produced is always related to a failure to find or run the associated library file, e.g.:
````
./Example-Graph: error while loading shared libraries: libvtkCommonMisc-9.0.so.1: cannot open shared object file: No such file or directory
````
The library files appear to be all present in the iMSTK_build/install/lib folder. I found and ran the setup_iMSTK.sh script, but that had no effect. I am running the Examples from the iMSTK_build/install/bin folder, using simple execution instructions, like; ./Example-Graph
I'm new to scientific visualization, and assume I am doing something wrong, just don't know what. Would you have any suggestions for me?
Kimhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/288FemurObject.cpp need add head file <ctime>2021-05-17T10:05:16-04:00huiqiTian222FemurObject.cpp need add head file <ctime>#include 《ctime》 in FemurObjec.cpp or RemurObject.h
Otherwise, `identifier not found` error will be reported when compiling cause this line
`srand(static_cast<unsigned int>(time(NULL)));`#include 《ctime》 in FemurObjec.cpp or RemurObject.h
Otherwise, `identifier not found` error will be reported when compiling cause this line
`srand(static_cast<unsigned int>(time(NULL)));`https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/287Separate PBD constraint generation from PbdModel2021-07-06T22:14:09-04:00Andrew WilsonSeparate PBD constraint generation from PbdModelIt would probably be good to separate these and provide another class for generating constraints. One that can be subclassed and customized by a user without having to subclass PbdModel itself to customize. This would also nicely reduce ...It would probably be good to separate these and provide another class for generating constraints. One that can be subclassed and customized by a user without having to subclass PbdModel itself to customize. This would also nicely reduce the size of the PbdModel class.
It could serve as sort of a constraint generation policy. For example, right now we define constraint generation in a global matter with enums. If "enableConstraint" then it is assumed the user wants these constraints everywhere on the mesh. What happens when the mesh changes? Or is entirely replaced?
Ideally this almost functor like policy class would have two virtual functions.
- One for a global change, called when initializing the first time or if the geometry of the model completely replaced.
- The second for local change and local reinit. It would preserve the original constraint parameters and possibly remap the indices of the constraints if topology change occurred. Optionally no map is provided (this would be if buffering and removal was used such that indices do not change).
This way a user could provide a very custom constraint generation policy for custom applications (for instance in VESS there is a mask of vertices that don't even have constraints). Might be a nice way to deal with topology changes of the PbdModel.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/286Help building master branch2021-03-18T23:28:53-04:00pedro-patlanHelp building master branchHi,
I'm having issues when I tried to build iMSTK on master branch. I'm facing the next issue:
`iMSTK/Source/Common/imstkVecDataArray.h:301:25: error: ‘m_data’ was not declared in this scope`. So I looked into the code and `m_data` is n...Hi,
I'm having issues when I tried to build iMSTK on master branch. I'm facing the next issue:
`iMSTK/Source/Common/imstkVecDataArray.h:301:25: error: ‘m_data’ was not declared in this scope`. So I looked into the code and `m_data` is not declared. Does anyone have the same issue?
Best,
Pedrohttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/285Analytical Geometries Orientation Axes2021-05-26T13:39:25-04:00Andrew WilsonAnalytical Geometries Orientation AxesMany of the analytical geometries use an orientation axes to represent rotations. Not all orientations can be represented with a single axes.
For instance, a analytical plane with normal (0, 1, 0) cannot be rotated around y.
This shoul...Many of the analytical geometries use an orientation axes to represent rotations. Not all orientations can be represented with a single axes.
For instance, a analytical plane with normal (0, 1, 0) cannot be rotated around y.
This should instead be an AngleAxes. dir + theta. It would be more intuitive to just use the base class geometry 4x4 transform. Most of the render delegates just do an expensive rotate vector to vector computation anyways, to produce this transform.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/284unit test for coloring2021-06-08T13:19:38-04:00Jianfeng Yanunit test for coloringCreate unit tests for the graph coloring.Create unit tests for the graph coloring.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/283PBD Constraint Sleeping2022-07-20T13:01:46-04:00Andrew WilsonPBD Constraint SleepingSome method to sleep constraints would be useful for large tissues. Most parts of tissue don't simulate until touched. Even then, only a localized area of constraints are active. This would avoid expensive math done in some constraints.
...Some method to sleep constraints would be useful for large tissues. Most parts of tissue don't simulate until touched. Even then, only a localized area of constraints are active. This would avoid expensive math done in some constraints.
This may still require a loop to test if the constraints are alive.
Additionally some sort of partitioning could aid sleeping and culling work.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/282Functions to Test if VR device is present2022-01-07T01:08:35-05:00Andrew WilsonFunctions to Test if VR device is presentWe should be able to check and alert users of this when they run VR enabled examples. This is likely a function in VTK. If not through VTK, definitely OpenVR.We should be able to check and alert users of this when they run VR enabled examples. This is likely a function in VTK. If not through VTK, definitely OpenVR.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/281RbdObject2-CollidingObject Collision2021-03-16T18:53:14-04:00Andrew WilsonRbdObject2-CollidingObject CollisionCurrently for rigid object collision in RigidBodyModel2 both objects need to be of type RbdObject2. But one way collision should be supported through CollidingObject.Currently for rigid object collision in RigidBodyModel2 both objects need to be of type RbdObject2. But one way collision should be supported through CollidingObject.Andrew WilsonAndrew Wilsonhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/280PbdObject-CollidingObject Collision2021-08-05T21:02:51-04:00Andrew WilsonPbdObject-CollidingObject CollisionCurrently PbdObject only can collide with other PbdObjects whose masses are set to 0 for static collision. But it should be able to collide with CollidingObject.Currently PbdObject only can collide with other PbdObjects whose masses are set to 0 for static collision. But it should be able to collide with CollidingObject.Andrew WilsonAndrew Wilsonhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/279Remove RigidBodyWorld Singleton2022-04-12T17:00:07-04:00Andrew WilsonRemove RigidBodyWorld SingletonRigidBodyModel (PhysX) should not be using a singleton. It should follow a pattern similar to RigidBodyModel2 for a shared implicit DynamicalModel.RigidBodyModel (PhysX) should not be using a singleton. It should follow a pattern similar to RigidBodyModel2 for a shared implicit DynamicalModel.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/278Extend LevelSetModel to Other Geometries2021-01-08T21:42:52-05:00Andrew WilsonExtend LevelSetModel to Other GeometriesLevelSetModel is currently only designed for 3d images. It can further be generalized for any Geometry with generic function value and finite difference functions.
Namely it would be nice to have it working with 2d images and tetrahedra...LevelSetModel is currently only designed for 3d images. It can further be generalized for any Geometry with generic function value and finite difference functions.
Namely it would be nice to have it working with 2d images and tetrahedral meshes.
One step farther and you could generalize it for other differential equations. Such as heat or reaction diffusion.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/277Extend ImageData to 2d2021-04-05T12:37:46-04:00Andrew WilsonExtend ImageData to 2dJust as the title says, extend to 2d. We could also then look into utilizing it for texturing. Additionally the aptly named ImageDataRenderDelegate which does volume rendering of a 3d image should be renamed and a 2d RenderDelegate added.Just as the title says, extend to 2d. We could also then look into utilizing it for texturing. Additionally the aptly named ImageDataRenderDelegate which does volume rendering of a 3d image should be renamed and a 2d RenderDelegate added.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/276Geometry Init/Current Refactor2021-05-14T08:41:06-04:00Andrew WilsonGeometry Init/Current RefactorCurrently geometry composites post/pre (current/init) members. Such as in PointSet it has current and init positions. This has proven difficult. Instead an entirely separate geometry object should be used. This is especially helpful for ...Currently geometry composites post/pre (current/init) members. Such as in PointSet it has current and init positions. This has proven difficult. Instead an entirely separate geometry object should be used. This is especially helpful for post/pre velocities and other attributes. As well as every other member that has post/pre state, including those in primitive geometries.
Obvious failures of such thing are shown in PbdClothRemap. If one subdivides then resets, it will fail. Similarly for any attribute reset will fail.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/275Geometry Transform Refactor2021-01-21T18:45:12-05:00Andrew WilsonGeometry Transform RefactorGeometry currently uses a weird TRS (with uniform scaling) at its base class level. It should instead use a single 4x4 transform.Geometry currently uses a weird TRS (with uniform scaling) at its base class level. It should instead use a single 4x4 transform.Andrew WilsonAndrew Wilson