VTK/Geovis vision toolkit

From KitwarePublic
Jump to navigationJump to search

Requirements

There are two parts to the project:

  • Video / related meta data rendering and interactions.
  • Displaying video / meta data in geospatial context.

As per our discussion we have gathered following requirements for the project.

  • Easy to put together.
  • Provides 2D and 3D mode where in 2D it will allow quick validation, manipulation abilities.
  • Provides the ability to visualize, video, track, and associated ranking.
  • Ability to provide input as sequence of images or a video file.
  • Provides the ability to manipulate track data. User should be able to insert a new one, modify the existing one.
  • Provides the ability to select a region with pixel level accuracy and draw a track on top of it.
  • Provides the ability to play many video files (small or large video) files.
  • Provides a layout for the videos in space so that each can be seen clearly for a view point.
  • Allows the videos to play individually or globally.1
  • Provides the ability to toggle different layers of information.
  • Provides geo spatial context.

Design

This is a graph with borders and nodes. Maybe there is an Imagemap used so the nodes may be linking to some Pages.

vtkVideoElementRepresentation would contain all the information layers and make sure that they are in sink. Also this is the representation thats responsible for consuming the data for each video.

<source lang="cpp"> class vtkVideoElementRepresentation : public vtkRenderedRepresentation { public:

 void AddTrackRepresentation(vtkTrackRepresentation* tr); 
 void AddVideoRepresentation(vtkVideoRepresentation* vr); 
 void AddTrackRepresentation(vtkScalarRepresentation* sr); 
 
 // Update all the layers and call \c PrepareForRendering(....) on each. 
 virtual void PrepareForRendering(vtkRenderView* view);
 void setUseWorldMatrix(vtkMatrix4x4 mat);

private:

Internal* Implementation; };


class vtkTrackRepresentation : public vtkRenderedRepresentation { public:

 template<t>
 void SetScalarProperty(T value);
 // Can have 0 or many scalar representations. 
 void AddScalarRepresentation(ScalarRepMode);
 virtual void PrepareForRendering(vtkRenderView* view);

}


class vtkVideoRepresentation : public vtkRenderedRepresentation { public:

 virtual void PrepareForRendering(vtkRenderView* view);

}

</source>