Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions

mitk::LineMapper2D Class Reference
[Mapper Classes]

OpenGL-based mapper to display Lines. More...

#include <mitkLineMapper2D.h>

Inheritance diagram for mitk::LineMapper2D:
Inheritance graph
[legend]
Collaboration diagram for mitk::LineMapper2D:
Collaboration graph
[legend]

List of all members.

Public Types

typedef LineMapper2D Self
typedef PointSetGLMapper2D Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer

Public Member Functions

virtual const char * GetClassName () const
const PointSetGetInput (void)
 Get the PointDataList to map.
virtual void Paint (mitk::BaseRenderer *renderer)
 Do the painting into the renderer.

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 LineMapper2D ()
virtual ~LineMapper2D ()

Detailed Description

OpenGL-based mapper to display Lines.

uses the information from the PointSet to build up the lines. Only lines in 2D in one Slice are drawn, not between slices!

Definition at line 37 of file mitkLineMapper2D.h.


Member Typedef Documentation

typedef itk::SmartPointer<const Self> mitk::LineMapper2D::ConstPointer

Reimplemented from mitk::PointSetGLMapper2D.

Definition at line 40 of file mitkLineMapper2D.h.

typedef itk::SmartPointer<Self> mitk::LineMapper2D::Pointer

Reimplemented from mitk::PointSetGLMapper2D.

Definition at line 40 of file mitkLineMapper2D.h.

Reimplemented from mitk::PointSetGLMapper2D.

Definition at line 40 of file mitkLineMapper2D.h.

Reimplemented from mitk::PointSetGLMapper2D.

Definition at line 40 of file mitkLineMapper2D.h.


Constructor & Destructor Documentation

mitk::LineMapper2D::LineMapper2D (  ) [protected]

Definition at line 29 of file mitkLineMapper2D.cpp.

mitk::LineMapper2D::~LineMapper2D (  ) [protected, virtual]

Definition at line 35 of file mitkLineMapper2D.cpp.

{
}

Member Function Documentation

virtual const char* mitk::LineMapper2D::GetClassName (  ) const [virtual]

Reimplemented from mitk::PointSetGLMapper2D.

const mitk::PointSet * mitk::LineMapper2D::GetInput ( void   ) [virtual]

Get the PointDataList to map.

Reimplemented from mitk::PointSetGLMapper2D.

Definition at line 39 of file mitkLineMapper2D.cpp.

{
  return static_cast<const mitk::PointSet * > ( GetData() );
}
static Pointer mitk::LineMapper2D::New (  ) [static]
void mitk::LineMapper2D::Paint ( mitk::BaseRenderer renderer ) [virtual]

Do the painting into the renderer.

!!! !??!!

!define a new ColorProp to be able to pass alpha value

!define a new ColorProp to be able to pass alpha value

Reimplemented from mitk::PointSetGLMapper2D.

Definition at line 44 of file mitkLineMapper2D.cpp.

References mitk::BaseRenderer::GetDisplayGeometry(), GL_LINES, glBegin(), glEnd(), glVertex2f(), and mitk::PointSetGLMapper2D::Paint().

{
  if(IsVisible(renderer)==false) 
    return;

  bool updateNeccesary = true;

  if (updateNeccesary) 
  {
    mitk::PointSet::Pointer input  = const_cast<mitk::PointSet*>(this->GetInput());
    mitk::DisplayGeometry::Pointer displayGeometry = renderer->GetDisplayGeometry();
    assert(displayGeometry.IsNotNull());

    //apply color and opacity read from the PropertyList
    ApplyProperties(renderer);

    vtkLinearTransform* transform = GetDataNode()->GetVtkTransform();

    //List of the Points
    PointSet::DataType::PointsContainerConstIterator it, end;
    it = input->GetPointSet()->GetPoints()->Begin();
    end = input->GetPointSet()->GetPoints()->End();//the last before end, because lines from n to n+1
    if (end!=it)  // otherwise PointSet is empty
        end--;

    //bool list for the selection of the points
    PointSet::DataType::PointDataContainerIterator selIt, selItNext;
    selIt=input->GetPointSet()->GetPointData()->Begin();
    
    int j=0;
    while(it!=end)
    {
      mitk::Point3D p, q, projected_p, projected_q;
      float vtkp[3];
      itk2vtk(it->Value(), vtkp);
      transform->TransformPoint(vtkp, vtkp);
      vtk2itk(vtkp,p);
      
      //next point n+1
      it++;
      itk2vtk(it->Value(), vtkp);
      transform->TransformPoint(vtkp, vtkp);
      vtk2itk(vtkp,q);
      it--;

      displayGeometry->Project(p, projected_p);
      displayGeometry->Project(q, projected_q);

      Vector3D diffp=p-projected_p, diffq=q-projected_q;
      if((diffp.GetSquaredNorm()<4.0) &&
         (diffq.GetSquaredNorm()<4.0))
      {
        Point2D p2d, q2d, tmp;
        
        displayGeometry->Map(projected_p, p2d);
        displayGeometry->WorldToDisplay(p2d, p2d);
        displayGeometry->Map(projected_q, q2d);
        displayGeometry->WorldToDisplay(q2d, q2d);

        //outlined, cause iterators behave strange and multiple points can't be selected anyway by now!
        //selItNext = selIt++;//Iterator to the next Element, cause only when the two points ar selected, then the Line is Selected
        //if (selIt->Value() && selItNext->Value())//selected
        //{
        //  float colorSel[]={1.0,0.0,0.6}; //for selected!

        //  //current color for changing to a diferent color if selected
        //  float currCol[4];
        //  glGetFloatv(GL_CURRENT_COLOR,currCol);

        //  glColor3f(colorSel[0],colorSel[1],colorSel[2]);//red


        //  glBegin (GL_LINES);
        //    glVertex2f(p2d[0], p2d[1]);
        //    glVertex2f(q2d[0], q2d[1]);
        //  glEnd ();

        //  glColor3f(currCol[0],currCol[1],currCol[2]);//the color before changing to select!

        //}
        //else
        //{
          glBegin (GL_LINES);
            glVertex2f(p2d[0], p2d[1]);
            glVertex2f(q2d[0], q2d[1]);
          glEnd ();
        //}
      }
      ++it;
      ++selIt;
       j++;
    }
    //drawing the points
    PointSetGLMapper2D::Paint(renderer);
  }
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines