iMSTK issueshttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues2021-04-02T19:38:39-04:00https://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/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/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/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 Wilsonhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/273iMSTK Uncrustify stealth dependency on PythonInterp2022-01-07T01:15:13-05:00Johan AndruejoliMSTK Uncrustify stealth dependency on PythonInterpUncrustify requires [PythonInterp](https://github.com/uncrustify/uncrustify/blob/23184091f66c5ba8434da08639cb2cdde77dfeb1/CMakeLists.txt#L20) though it's never prescribed by iMSTK itself anywhere.
This creates a confusing build failure...Uncrustify requires [PythonInterp](https://github.com/uncrustify/uncrustify/blob/23184091f66c5ba8434da08639cb2cdde77dfeb1/CMakeLists.txt#L20) though it's never prescribed by iMSTK itself anywhere.
This creates a confusing build failure in the superbuild if you system doesn't have python.
Worse, this may work against you by linking to whatever python you have on your system without you knowing **which** one.
Possible fix:
iMSTK should probably add a ```find_package(PythonInterp REQUIRED)``` to [External_Uncrustify.cmake](https://gitlab.kitware.com/iMSTK/iMSTK/-/blob/master/CMake/External/External_Uncrustify.cmake) and make sure to pass the proper vars to Uncrustify if possible.
That would at least ensure that the missing python libraries get caught at configure time.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/272Example-RigidBodyDynamics, "reset simulation" doesn't work correctly2021-01-05T16:34:36-05:00Harald ScheirichExample-RigidBodyDynamics, "reset simulation" doesn't work correctlyusing 'r' to reset the simulation causes the dragon model to flip around the ground plane
[Capture](/uploads/61b5b90c6fc220b1df05c872ecc70e48/Capture.PNG)using 'r' to reset the simulation causes the dragon model to flip around the ground plane
[Capture](/uploads/61b5b90c6fc220b1df05c872ecc70e48/Capture.PNG)https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/271how to add haptic decvice force effect?2021-01-05T18:07:58-05:00huiqiTian222how to add haptic decvice force effect?i'd like to add some force feedback in haptic device, contact force and noncontact force, what should i do to achive this. please enlighten me.i'd like to add some force feedback in haptic device, contact force and noncontact force, what should i do to achive this. please enlighten me.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/270Remove DebugRenderGeometry and DebugDelegates2021-08-05T21:03:08-04:00Andrew WilsonRemove DebugRenderGeometry and DebugDelegatesThe DebugRenderGeometry and Delegate currently provide topology changing functionalities and buffering that the SurfaceMesh and LineMesh don't. Allowing one to easily insert a line/etc for a contact or whatever.
After we add topology ch...The DebugRenderGeometry and Delegate currently provide topology changing functionalities and buffering that the SurfaceMesh and LineMesh don't. Allowing one to easily insert a line/etc for a contact or whatever.
After we add topology change (both changing topology/buffer swap and buffering) support to SurfaceMesh and LineMesh the debug geometry should be removed/replaced with usage of SurfaceMesh and LineMesh as they would be redundant.
Additionally Geometry supports multi viewer/observers but DebugGeometry still uses flags which can only be used by one observer.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/269CollisionData SceneObjects2021-08-05T21:02:43-04:00Andrew WilsonCollisionData SceneObjectsMake specific VisualObjects in iMSTK for debugging simulations that have simple interference like so:
```
imstkNew<CollisionDataVisualObject> object;
// Can handle and filter types of collision datas
object->addCollisionData(myCollision...Make specific VisualObjects in iMSTK for debugging simulations that have simple interference like so:
```
imstkNew<CollisionDataVisualObject> object;
// Can handle and filter types of collision datas
object->addCollisionData(myCollisionData);
scene->addSceneObject(object);
```
Other visualization controls can be added such as line widths, arrows, scales, etc.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/268TextureDelegate Modifications2021-04-05T20:58:28-04:00Andrew WilsonTextureDelegate ModificationsTextureDelegates need to be updated with event system. Particularly in SurfaceMeshRenderDelegate.
- When a new texture is added, it should update the VTK one
- When parameters of a texture is changed, it should update the VTK one
These ...TextureDelegates need to be updated with event system. Particularly in SurfaceMeshRenderDelegate.
- When a new texture is added, it should update the VTK one
- When parameters of a texture is changed, it should update the VTK one
These should not be called every update of the delegate but only when the texture posts modified. A queueConnect should be used along with a message queue.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/267How can read PNG JPG image.2020-12-03T16:48:18-05:00huiqiTian222How can read PNG JPG image.hi, i want to read some PNG image in my scene.
in VTK, we can just use `VTKPNGReader` to read PNG image perfectly. but how can i read these iamges in iMSTK.
1. i try to read PNG image in VTK ways, but it sames i can not convert `vtkim...hi, i want to read some PNG image in my scene.
in VTK, we can just use `VTKPNGReader` to read PNG image perfectly. but how can i read these iamges in iMSTK.
1. i try to read PNG image in VTK ways, but it sames i can not convert `vtkimagedata` to imskt's `imageData` here's my code
`vtkSmartPointer<vtkPNGReader> PNGreader = vtkSmartPointer<vtkPNGReader>::New();
PNGreader->SetFileName("xxx.png");
std::shared_ptr<ImageData> imageData(std::move(GeometryUtils::copyToImageData(PNGreader->GetOutput())));`
2. then i noticed that renderMaterial got a api `addtexture` which can read PNG image.
i create a plan geometry. then i try to add a PNG image as texture, but nothing happend. here's my code
`auto planGeom = std::make_shared<Plane>();
planGeom->setWidth(750);
imstkNew<Texture> texture("xxx.png", Texture::Type::Roughness);
imstkNew<RenderMaterial> Mat;
Mat->addTexture(texture);
imstkNew<VisualModel> vm(planGeom, Mat);
imstkNew<VisualObject> visualeObj("visual");
visualObj->addVisualModel(vm);`
thanks for any advice. hope you have a good day.😀https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/266visualModel can not hide2020-12-03T17:12:10-05:00huiqiTian222visualModel can not hidetoday i update the iMSKT source code. a small bug i got.
then this code
`visualObj->getVisualModel(0)->hide();
fedeformableObj->getVisualModel(0)->hide()`
do not work, it's still showed in my scene.
imstkVisualModel.h line 81today i update the iMSKT source code. a small bug i got.
then this code
`visualObj->getVisualModel(0)->hide();
fedeformableObj->getVisualModel(0)->hide()`
do not work, it's still showed in my scene.
imstkVisualModel.h line 81https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/265Download the data optionally at the build2022-04-20T08:26:25-04:00Sreekanth ArikatlaDownload the data optionally at the buildBuild should not be held for the downloadBuild should not be held for the download