Difference between revisions of "User:Ali Haydar/GSOC19/project"

From BRL-CAD
Line 1: Line 1:
 
=='''Annotations: Implement more annotation support: labels, notes, and dimensions'''==
 
=='''Annotations: Implement more annotation support: labels, notes, and dimensions'''==
  
The project is divided into three consepts:
+
The project is divided into three concepts:
 
*extending the MGED and Archer commands to inculde the new annotation types:  
 
*extending the MGED and Archer commands to inculde the new annotation types:  
*calculating each type templet diemntions if nedded like the fields in the annotation box   
+
*calculating each type templet dimensions if nedded like the fields in the annotation box   
 
*drawing the new types in the wire frame view  
 
*drawing the new types in the wire frame view  
  
==='''extending the MGED and Archer comands to inculde the new annotation types'''===
+
==='''extending the MGED and Archer commands to inculde the new Annotations types'''===
 
*New types of annotaions :
 
*New types of annotaions :
 
**dimention line  
 
**dimention line  
 
**angular dimention
 
**angular dimention
 
**multible lables in multible fields box  
 
**multible lables in multible fields box  
**lable in a box  
+
**label in a box  
 
**single or multible line note in a box
 
**single or multible line note in a box
 
 
Line 21: Line 21:
 
Enter name of solid: annot_1
 
Enter name of solid: annot_1
 
Enter solid type: annot
 
Enter solid type: annot
Enter annotation type : dimention line
+
Enter annotation type : dimension_line
 
"sudo "  
 
"sudo "  
 
Enter starting point of the dimention line  
 
Enter starting point of the dimention line  
 
Enter end point of the dimention line  
 
Enter end point of the dimention line  
Enter dimentinon ( or the dimention can be calculated (this chois can be taken if the usuer wants to over ride the acutl dimention )
+
Enter dimension ( or the dimention can be calculated (this choice can be taken if the user wants to override the actual dimention )
 
          
 
          
 
</pre>
 
</pre>
  
 
*all the annotions types should be entered in the same annotaion primative so this will require modifications on the current primative  
 
*all the annotions types should be entered in the same annotaion primative so this will require modifications on the current primative  
*We can consider the same abrouch of manual annotions as an example in the multible field annotion the usuer will provide the number of fields and the lables or we can consider a spcific characteer like (@) when encounterd the program considers it the end of the field and the lable existed in it and the end of this lable vlist( this will help withe the calculation of the the field ( cell ) dimentions so the user enters all the lables in the same line.( this can be discused withe the socity) .
+
*We can consider the same approach of manual annotions as an example in the multible field annotion the usuer will provide the number of fields and the lables or we can consider half manual abrouch a spcific characteer like (@) when encounterd the program considers it the end of the field and the label existed in it and the end of this label vlist( this will help with the calculation of the the field ( cell ) dimentions so the user enters all the lables in the same line.( this can be discused withe the socity)
 +
Example : Enter the text label: sudo1@sudo2 this annotation will be constructed from two vlist and calculte the dimentions accordingly.
  
 
*The leader lines will be constructed in correspondance with each type.
 
*The leader lines will be constructed in correspondance with each type.
 
*rendering each primative type in wire frame.  
 
*rendering each primative type in wire frame.  
==='''calculating each type diemntions if nedded like the fields in the annotation box'''===
+
==='''calculating each type dimentions if nedded like the fields in the annotation box'''===
*in the case of  
+
*in the case of the single line note in a box once the annotation became a vlist the containing box dimentions will be calculated doing simple mathematical operation on the vlist points coordinates
 
+
wedth=[(max X+const)-(min X+ const)] the same for the hight, since the box will be drawn with respect to the refrance point of the annotation just like the lable.
*The annotation primitive will comprise of various parameters that define the labels.
+
*in the case of multible cells annotation if we considerd the half manual approch each label will be a separat vlist and the cell dimentions can be calcuated as above.
*Here we are aiming for manual annotations. The parameters will be provided by the user through the command line. ”in” followed by various parameters some of which are:
+
**Position
+
=='''drawing the new types in the wire frame view '''==
**Text - leader line
+
*all the new types of annotaions will be converted to a vlist either inside the lable vlist or separate one and can be drawn in the same way as the lable .
**Additional object reference name
+
*in the case of angular dimentions we will need to add two appropriate leader lines and an arc also we have to choose an appropriate place for the lable containng the value of the angle.
 
 
'''Container for annotations'''
 

Revision as of 20:09, 20 May 2019

Annotations: Implement more annotation support: labels, notes, and dimensions

The project is divided into three concepts:

  • extending the MGED and Archer commands to inculde the new annotation types:
  • calculating each type templet dimensions if nedded like the fields in the annotation box
  • drawing the new types in the wire frame view

extending the MGED and Archer commands to inculde the new Annotations types

  • New types of annotaions :
    • dimention line
    • angular dimention
    • multible lables in multible fields box
    • label in a box
    • single or multible line note in a box
  • the extending in mged will be like:


mged> in
Enter name of solid: annot_1
Enter solid type: annot
Enter annotation type : dimension_line
"sudo " 
Enter starting point of the dimention line 
Enter end point of the dimention line 
Enter dimension ( or the dimention can be calculated (this choice can be taken if the user wants to override the actual dimention )
        
  • all the annotions types should be entered in the same annotaion primative so this will require modifications on the current primative
  • We can consider the same approach of manual annotions as an example in the multible field annotion the usuer will provide the number of fields and the lables or we can consider half manual abrouch a spcific characteer like (@) when encounterd the program considers it the end of the field and the label existed in it and the end of this label vlist( this will help with the calculation of the the field ( cell ) dimentions so the user enters all the lables in the same line.( this can be discused withe the socity)

Example : Enter the text label: sudo1@sudo2 this annotation will be constructed from two vlist and calculte the dimentions accordingly.

  • The leader lines will be constructed in correspondance with each type.
  • rendering each primative type in wire frame.

calculating each type dimentions if nedded like the fields in the annotation box

  • in the case of the single line note in a box once the annotation became a vlist the containing box dimentions will be calculated doing simple mathematical operation on the vlist points coordinates

wedth=[(max X+const)-(min X+ const)] the same for the hight, since the box will be drawn with respect to the refrance point of the annotation just like the lable.

  • in the case of multible cells annotation if we considerd the half manual approch each label will be a separat vlist and the cell dimentions can be calcuated as above.

drawing the new types in the wire frame view

  • all the new types of annotaions will be converted to a vlist either inside the lable vlist or separate one and can be drawn in the same way as the lable .
  • in the case of angular dimentions we will need to add two appropriate leader lines and an arc also we have to choose an appropriate place for the lable containng the value of the angle.