Difference between revisions of "User:Ali Haydar/GSOC19/project"
From BRL-CAD
Ali Haydar (talk | contribs) |
Ali Haydar (talk | contribs) |
||
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 | + | 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 | + | *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 | + | ==='''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 | ||
− | ** | + | **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 : | + | 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 | + | 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 | + | *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 | + | ==='''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. | |
− | + | *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. | |
− | |||
− | ''' |
Revision as of 20:09, 20 May 2019
Contents
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.