Difference between revisions of "User talk:Lchauvin"

From NAMIC Wiki
Jump to: navigation, search
(Blanked the page)
 
(73 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Projects==
 
----
 
  
*[[OsteoPlan]]
 
*[[SlicerOnAMIGO]]
 
*[[4D Ultrasound]]
 
*[[NeuroNav]]
 
 
 
*[[Biopsy Module]]
 
*[[LineMotion Extension]]
 
 
== Progress reports ==
 
----
 
===Biopsy Module===
 
* BUG: When slider is smaller than line's length, both sliders are moved
 
** FIXED: Add test to watch witch one reach limit, and update range
 
* DONE: Use new planes to reslice
 
** ISSUE: Render and reslice are two different things, render is called when reslicing (don't call it again)
 
*** SOLUTION: Add a checkbox
 
**** Not rendering twice, but render is not call anymore if not reslicing (need to put mouse on 3D Render to update)
 
* DONE: Create 3 planes (instead of one): Perpendicular, In-Plane 0 and In-Plane 90
 
* DONE: Posibility to create and use different fiducial list to draw line
 
* DONE: Add toggle checkbox to turn on/off plane visibility
 
* DONE: Translate plane along the axis
 
* DONE: Create plane along the line
 
** MODIFIED: Plane is now perpendicular to the line
 
* DONE: Use two sliders to extend line
 
** Line could be extended and retracted, but the distance between fiducials define minimal distance of the line allowed
 
* DONE: Create line between two fiducials
 
 
===OsteoPlan===
 
* BUG: Issue with vtk when trying to reinitialize array PointMap
 
** A message has been sent to vtk mailing list
 
*** Wait for an answer
 
* DONE: Fixed issue that didn't allow to show/hide model from polydata
 
** FIX: Use this piece of code to create a MRMLModelNode from polydata:
 
 
 
  // Create new polydata
 
  vtkPolyData* polyDataModel1 = vtkPolyData::New();
 
  //
 
  // Create New vtkMRMLNode
 
  this->part1 = vtkMRMLModelNode::New();
 
  //
 
  // Create New vtkMRMLModelDisplayNode
 
  vtkMRMLModelDisplayNode* dnode1 = vtkMRMLModelDisplayNode::New();
 
  //
 
  // Add them to the scene
 
  this->part1->SetScene(this->GetMRMLScene());
 
  dnode1->SetScene(this->GetMRMLScene());
 
  //
 
  this->GetMRMLScene()->AddNode(dnode1);
 
  this->GetMRMLScene()->AddNode(part1);
 
  //
 
  // Use new polydata model to be "ready" to receive data
 
  part1->SetAndObservePolyData(polyDataModel1);
 
  part1->SetAndObserveDisplayNodeID(dnode1->GetID());
 
  //
 
  // Copy polydata to the new polydata model
 
  dnode1->SetPolyData(clipper->GetOutput());
 
  //
 
  // Clean
 
  polyDataModel1->Delete();
 
 
* DONE: Enable to resize cutter and keep same position
 
* <span style="color:green;">IN PROGRESS: </span> Study the OsteoPlan.tcl from Slicer2
 
* <span style="color:green;">IN PROGRESS: </span> Clipped part inside the box, and use vtkPolyDataConnectivityFilter to create models from the two separated part
 
** Could be good with SpecifiedRegion if the model was not empty (too many regions else)
 
*** Is there a way to fill a surface in slicer ?
 
** Use Largest region
 
*** Need a new function on this classs to get "second largest region"
 
**** Largest region use a sorted array -> Need to find second largest region and return it
 
***** Second largest region seems not to be the "piece" I needed
 
* FAILED: Try to use boudingbox and perform one first positive clipping, and a second negative clipping on the output of the first one.
 
** Not possible because of the output of the clipping. Return inside of the box as a model and outside (everything outside, which mean top and bottom part) as another
 
* DONE: Installed VTK 5.7, and tried vtkClipClosedSurface
 
** Good function, but use infinite plane
 
* FAILED: Tried to use kind of boolean operation (vtkExtractPolyDataGeometry, with filters, etc...)
 
** Took 15 minutes to perform clipping, with infinite plane, and with model bugs
 
** '''Do not use this way'''
 
* DONE: Clipping with big boundingbox
 
** Working, fast, but not really a cutter
 
** A cap is missing on the clipped part
 
 
===LineMotion Extension===
 
* '''Extension Completed'''
 
* DONE: Use color for different lines
 
* DONE: Keep index of fiducial list and actor synchronized when deleting a fiducial list
 
* DONE: Display multiple lines
 
* DONE: Posibility to create and use different fiducial list to draw line
 
* DONE: Add toggle checkbox to turn on/off plane visibility
 
* DONE: Translate plane along the axis
 
* DONE: Create plane along the line
 
** MODIFIED: Plane is now perpendicular to the line
 
* DONE: Use two sliders to extend line
 
** Line could be extended and retracted, but the distance between fiducials define minimal distance of the line allowed
 
* DONE: Create line between two fiducials
 
 
==Todo, Bug, Ideas, ...==
 
----
 
* <u>Transform Module</u>
 
**ISSUE: Report Transform Module Issue (vtkKWMatrix4x4 observing Matrix4x4 and not vtkMRMLLinearTransformNode, if using ApplyTransform, new node is created and pointer is broken, then Transform Module is not updating anymore)
 
 
* <u>LineMotion Extension</u>
 
**<strike>BUG: Leaks when clicking several times on "Draw line" button</strike>
 
***FIXED: Move all "New()" method in constructor instead of event of "draw line" button, and add some verification before using this objects
 
**<strike>TODO: Find a better way to link Fiducial list and Actor list</strike>
 
***Synchronize 2 vtkCollections seems not possible -> Need to keep index "synchronized" manually
 
****Remove actor when fiducial list deleted to keep the index "synchronized"
 
 
* <u>OsteoPlan Module</u>
 
**STEP1: Use cutter to clip model
 
***'''Deadline: February, 27th'''
 
**STEP2: Use widget to move clipped parts of the model
 
***'''Deadline: February, 27th'''
 
**STEP3: Overlap different parts (snap them ?)
 
***'''Deadline: March, 13th'''
 
**STEP4: Put marks on parts
 
***'''Dealine: March, 20th'''
 
**STEP5: Back to original model with marks on it (use original model ? Inverse transformation matrix ?)
 
***'''Deadline: March, 27th'''
 
**<strike>IDEA: Use vtkImplicitModeller with vtkBoxWidget2 and a clipping function (propably vtkClipPolyData)</strike>
 
***FAILED: vtkImplicitModeller compute distance with geometry. Not what I'm looking for.
 
** IDEA: Use a filled model
 
** IDEA: Use vtkCellPicker to pick the cell in the region and vtkPolyDataConnectivityFilter (option seed region) to find the region selected
 
** SUGGESTION: Use box to clip for now, try to improve with just a cutter later
 

Latest revision as of 22:46, 5 January 2012

Home < User talk:Lchauvin