Difference between revisions of "User:Gabbar1947/GSOC17/Report"

From BRL-CAD
m
Line 21: Line 21:
  
 
==='''Support for the 3D->2D projection'''===
 
==='''Support for the 3D->2D projection'''===
 +
 +
{|align="right"
 +
|[[Image:Example_annot.png|thumb|256px|Example annot object created with the in command]]
 +
|}
  
 
*Annotations always remain in the plane of the screen
 
*Annotations always remain in the plane of the screen
Line 29: Line 33:
 
   https://sourceforge.net/p/brlcad/patches/471/#cd2e
 
   https://sourceforge.net/p/brlcad/patches/471/#cd2e
 
   https://sourceforge.net/p/brlcad/patches/471/#acd7
 
   https://sourceforge.net/p/brlcad/patches/471/#acd7
 +
  
  

Revision as of 14:18, 25 August 2017

Annotations: Implement support for 2D annotations | Project Report

The project was divided into two parts:

  • Creating a new primitive for annotations
  • Rendering the primitives to the wireframe view
  • Support for the screen projection

Creating a new primitive for annotations

  • What was basically required was a container to hold things together
  https://sourceforge.net/p/brlcad/patches/469/#ea23
  https://sourceforge.net/p/brlcad/patches/469/#34f1

Rendering the primitive on screen

  • The next part was to add support for the visualization of the primitive
  • Input for the primitive also handled through the 'in' command in the patches mentioned below
 https://sourceforge.net/p/brlcad/patches/471/#97f3
 https://sourceforge.net/p/brlcad/patches/471/#4b72

Support for the 3D->2D projection

Example annot object created with the in command
  • Annotations always remain in the plane of the screen
  • Modifying the projection matrices for all the display managers was another task
  • Scaling the annotations was another issue
  • All of this was handled by the patches mentioned below
  https://sourceforge.net/p/brlcad/patches/471/#cd2e
  https://sourceforge.net/p/brlcad/patches/471/#acd7


Project Extension

After discussions with the mentors, some extension ideas came up:

  • Functionality to set up the annotation properties for the primitive
  • Extension for the geometric shape of the annotation
  • Common functionality for the annotation and the sketch primitive in order to reduce redundancy
  • Features related to the coordinate system like the annotation scaling
  • Algorithm to provide a bounding box for the text using the relative coordinates