Editing User:Cprecup

From BRL-CAD

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 4: Line 4:
 
==About me==
 
==About me==
 
*Name: Cristina Precup
 
*Name: Cristina Precup
*E-mail address: cp.cristina.pre.cup@gmail.com
+
*E-mail address: cp.cristina.pre.cup@mgmail.com
 
*IRC username: cristina
 
*IRC username: cristina
  
:I am in my third year as a student of Software Engineering at the Babeș-Bolyai University (Cluj-Napoca, Romania).
+
:I am in my third year as a student of Software Engineering at the Babeș-Bolyai University (Cluj-Napoca, Romania).  
  
 
==Background information==
 
==Background information==
Line 63: Line 63:
 
:# source code repository: http://sourceforge.net/projects/goblin2/
 
:# source code repository: http://sourceforge.net/projects/goblin2/
 
* BRL-CAD mged/archer:
 
* BRL-CAD mged/archer:
:source code repository: http://sourceforge.net/projects/brlcad/
+
:# source code repository: http://sourceforge.net/projects/brlcad/
  
 
==Deliverables==
 
==Deliverables==
Line 72: Line 72:
 
==Development schedule==
 
==Development schedule==
 
# April 23 - May 20 (community bonding period)
 
# April 23 - May 20 (community bonding period)
#* Decide how to extract the data about the geometry hierarchy
+
* Decide how to extract the data about the geometry hierarchy
#* Further study of the way in which I will represent the C++ data into Tcl/Tk graphics
+
* Further study of the way in which I will represent the C++ data into Tcl/Tk graphics
#* Further study of potential user actions for the interactive graph visualization tool
+
* Further study of potential user actions for the interactive graph visualization tool
#* Clarify the approach followed, the implementation needed to be done, and the future tasks
+
* Clarify the approach followed, the implementation needed to be done, and the future tasks
 +
 
 
# May 21 - June 03 (coding period start)
 
# May 21 - June 03 (coding period start)
#* Extract BRL-CAD's geometry hierarchy
+
* Extract BRL-CAD's geometry hierarchy
 +
 
 
# June 04 - June 17
 
# June 04 - June 17
#* Format the data extracted so that it can be fed to GOBLIT (either by implementing from scratch or using one of the two file formats Dimacs or Steinlib)
+
* Format the data extracted so that it can be fed to GOBLIT (either by implementing from scratch or using one of the two file formats Dimacs or Steinlib)
 +
 
 
# June 18 - June 24
 
# June 18 - June 24
#* wrap graph algorithms of GOBLIN needed for handling the boolean tree
+
* wrap graph algorithms of GOBLIN needed for handling the boolean tree
#* start representing the C++ data into Tcl/Tk graphics
+
* start representing the C++ data into Tcl/Tk graphics
 +
 
 
# June 25 - July 12
 
# June 25 - July 12
#* continue representing the transition from C++ data to Tcl/Tk graphics
+
* continue representing the transition from C++ data to Tcl/Tk graphics
#* start working on the interactive capabilities of the visual layout
+
* start working on the interactive capabilities of the visual layout
 +
 
 
# July 13 - July 26
 
# July 13 - July 26
#* continue working on the interactive side of the project
+
* continue working on the interactive side of the project
#* study the hooking into mged/archer
+
* study the hooking into mged/archer
 +
 
 
# July 27 - August 17
 
# July 27 - August 17
#* integrate the application into mged/archer
+
* integrate the application into mged/archer
#* bugs tracking: make sure that the work is flawless by testing and carefully checking if there are any errors
+
* bugs tracking: make sure that the work is flawless by testing and carefully checking if there are any errors
#* document the source code
+
* document the source code
 +
 
 
# August 18 - August 24
 
# August 18 - August 24
#* buffer for unexpected delay
+
* buffer for unexpected delay
  
 
==Describe time availability==
 
==Describe time availability==
Line 109: Line 116:
 
==Why you?==
 
==Why you?==
 
The reason why I want to apply for the "Visualizing CSG" project is because I enjoyed working on the previous GSoC project which contributed in forming a CSG background. I am aware that it's not the type of knowledge mostly needed for this project but I hope that my C++ experience along with the desire to learn new interesting things (such as work with Tcl/Tk, GOBLIN, see how mged/archer are implemented) will suite the requirements for it.
 
The reason why I want to apply for the "Visualizing CSG" project is because I enjoyed working on the previous GSoC project which contributed in forming a CSG background. I am aware that it's not the type of knowledge mostly needed for this project but I hope that my C++ experience along with the desire to learn new interesting things (such as work with Tcl/Tk, GOBLIN, see how mged/archer are implemented) will suite the requirements for it.
 
=Development progress=
 
Information regarding my general progress can be found [[User:Cprecup/GSoC2012_progress| here]].
 
 
'''Midterm overview of milestones'''
 
:''Summary:''
 
:* Studied the two potential graph libraries: '''Adaptagrams''' and '''GOBLIN'''. Adaptagrams was eventually chosen to work with.
 
 
:* Integrated the Adaptagrams' '''libavoid''' library into BRL-CAD (see the files: ''misc/CMake/FindADAPTAGRAMS.cmake'', ''src/libged/CMakeLists.txt'', and ''src/libged/Makefile.am'') -- gained knowledge in working with cmake configurations and in how they are set inside BRL-CAD.
 
 
:* Worked on the ''model'' part of this project. It can be found in the ''src/libged/dag.cpp'' file. The accomplished goals so far are:
 
:** traverse a geometry
 
:** identify its objects based on their type: solid / comb
 
:** for each such object, add a shape (Avoid::ShapeRef) to the graph (internally, by attaching it to a router (Avoid::Router))
 
:** there are 3 hash table structures corresponding to each type of objects (solid, regions and groups (the last two are subtypes of comb))
 
:** depending on the type of object do one of these things:
 
:*** for a solid: add a rectangle to the graph
 
:*** for a comb: add a rectangle along with connections between this shape and the ones belonging to its "subtree"
 
:** assign IDs to each object. This helped in avoiding node duplications which rose when an object was first considered a solid and then, later, a comb.
 
 
:''Updated goals for the next period:''
 
:* Milestone 1: create a user-visible feature in Archer/MGED, i.e., a command (possibly, called "'''igl'''") that opens a window showing the graph for the currently displayed geometry.
 
:* Milestone 2: align the graph's nodes and structure it.
 
:* Milestone 3: work on the interactive capabilities of the visual layout: commands such as '''delete''' and '''move''' for nodes.
 
:* Milestone 4: track bugs; make tests. Document the source code.
 

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)