Difference between revisions of "User talk:Lchauvin"

From NAMIC Wiki
Jump to: navigation, search
Line 109: Line 109:
 
==Todo, Bug, Ideas, ...==
 
==Todo, Bug, Ideas, ...==
 
----
 
----
 +
* <u>Biopsy Module</u>
 +
** TODO: Snap a fiducial (entry point) to the model
 +
*** Ask Nicole Aucoin and the Measurement module
 +
 
* <u>Transform Module</u>
 
* <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)
 
**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)

Revision as of 16:13, 4 March 2011

Home < User talk:Lchauvin

Projects



Progress reports


4D Ultrasound

Biopsy Module

  • BUG: Issue with multiple clipping (clipping seems not to work properly, leaks when leaving)
  • 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

  • MEETING: Send an email to Hua Lee (MGH) to set up a meeting
  • 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
  • IN PROGRESS: Study the OsteoPlan.tcl from Slicer2
  • IN PROGRESS: 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, ...


  • Biopsy Module
    • TODO: Snap a fiducial (entry point) to the model
      • Ask Nicole Aucoin and the Measurement module
  • Transform Module
    • 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)
  • LineMotion Extension
    • BUG: Leaks when clicking several times on "Draw line" button
      • FIXED: Move all "New()" method in constructor instead of event of "draw line" button, and add some verification before using this objects
    • TODO: Find a better way to link Fiducial list and Actor list
      • Synchronize 2 vtkCollections seems not possible -> Need to keep index "synchronized" manually
        • Remove actor when fiducial list deleted to keep the index "synchronized"
  • OsteoPlan Module
    • 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
    • IDEA: Use vtkImplicitModeller with vtkBoxWidget2 and a clipping function (propably vtkClipPolyData)
      • 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
    • ISSUE: VTK pointer of the PointMap array seems to be modified after TraverseAndMark function, creating a crash
      • Tried to comment TraverseAndMark in extractLargestRegion. Worked but dirty and ExtractLargestRegion didn't work anymore.
        • Anyway, secondLargestRegion return nothing.
          • STILL NOT FIXED