Project Proposals

Frequently, programmers propose to aid on InVesalius development, but have no idea of where to start from. In order to help possible contributors, we have written some project proposals. These are presented bellow.

If you aim to work on one of these proposals, contact InVesalius?' developers mailing list, at  Public Software Portal. Also, write your name and start date, on the correspondent section.

All the development should be done considering:

  • VTK 5.3 or later
  • Python 2.5 or later
  • Platform independent (GNU Linux, MS Windows and MacOS X)

If another toolkit can solve problems encountered, it can be used if, and only if, it can be wrapped for Python in all mentioned platforms.

Task 1: vtkPolyData 'boolean' operations

1.1. Description

The aim of this task is to implement functions in a module called boolean_operations.py. These fuctions work with vtkPolyData classes and sometimes consist on boolean operations, and sometimes on simpler, but related, methods. The module desired structure is presented on section Base Code.

The first function, MergePolyData?, has been developed as an example.

1.2. Base code

boolean_operations.py

import vtk

def MergePolyData(polydata1, polydata2):
    """
    Create a new vtkPolyData consisting on two polydatas' merge.
    """
    append = vtk.vtkAppendPolyData()
    append.AddInput(polydata1)
    append.AddInput(polydata2)

    result = vtk.vtkPolyData()
    result.DeepCopy(append.GetOutput())

    return result

def IntersectPolyData(polydata1, polydata2):
    """
    Create a new vtkPolyData containing two polydatas' intersection.
    """
    # TODO:
    # develop something here to compute intersection

    result = vtk.vtkPolyData()
    result.DeepCopy(intersection.GetOutput())

    return result


def SubtractPolyData(polydata1, polydata2):
    """
    Create a new vtkPolyData, removing from polydata1 the intersection with polydata2.
    """
    # TODO:
    # develop something here to compute the difference between polydata1 and its 
    # intersection with polydata2

    result = vtk.vtkPolyData()
    result.DeepCopy(difference.GetOutput())

    return result

1.3. People involved

Proposal:

  • Name: Tatiana Al-Chueyr
  • Date: 23/03/2009

Who is working on this:

  • Name:
  • Start date:
  • End date:
  • Result:

1.4. References

Attachments