Editing User:Phoenix/GSoc2012/Proposal

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 14: Line 14:
 
The conversions of implicit primitives to NURBS in BRL-CAD can be seen in functions rt_*_brep() in src/librt/primitives/, and the conversion of each primitive is done in a separate function. The executable file csgbrep.exe can call most of them to produce NURBS represtations of many primitives together for a test.
 
The conversions of implicit primitives to NURBS in BRL-CAD can be seen in functions rt_*_brep() in src/librt/primitives/, and the conversion of each primitive is done in a separate function. The executable file csgbrep.exe can call most of them to produce NURBS represtations of many primitives together for a test.
  
This work is significantly dependent on the OpenNURBS library as its basic NURBS support. The data structures to describe NURBS is based on OpenNURBS, and OpenNURBS provides many useful algorithms for our work. But OpenNURBS is not perfect, with lots of useful and important functionality missing, so we still need lots of work to implement the functionality by hand.
+
This work is significantly dependent on the OpenNURBS library as its basic NURBS support. The data structures to describe NURBS is based on OpenNURBS, and OpenNURBS provides many useful algorithms for our work.  
  
 
Although lots of work has been done in BRL-CAD already, some bugs still exist and some work is still located at the mathematical orgin. It may not work well if the parameters are changed in some occasions. And some primitives are still not included. The robustness need to be improved and the missing ones should be added.
 
Although lots of work has been done in BRL-CAD already, some bugs still exist and some work is still located at the mathematical orgin. It may not work well if the parameters are changed in some occasions. And some primitives are still not included. The robustness need to be improved and the missing ones should be added.
Line 23: Line 23:
 
*When the implicit primitive 'eto' is converted to brep, its shape may change.  
 
*When the implicit primitive 'eto' is converted to brep, its shape may change.  
 
*The primitive 'pipe', cannot work for a wide variety of primitive dimensions.
 
*The primitive 'pipe', cannot work for a wide variety of primitive dimensions.
 
The document /share/brlcad/7.21.0/doc/brep.txt describes the current routine of brep primitives in BRL-CAD.
 
  
 
== Proposal ideas ==
 
== Proposal ideas ==
Line 79: Line 77:
 
***Deduce transformation matrices  
 
***Deduce transformation matrices  
 
***Apply the transformation  
 
***Apply the transformation  
***Test the results and write documents
+
***Test whether it works well
  
 
*July 1 - July 29 (~4 weeks)
 
*July 1 - July 29 (~4 weeks)
 
**Add new conversions to missing primitives
 
**Add new conversions to missing primitives
***Test whether it works well  
+
**Test whether it works well  
***Write clear documents
+
**From easy ones to hard ones
***From easy ones to hard ones
 
 
**July 1 - July 8 (1 week)
 
**July 1 - July 8 (1 week)
 
***rec
 
***rec
Line 107: Line 104:
 
*** Write a function to walk the tree
 
*** Write a function to walk the tree
 
*** Add a command to MGED
 
*** Add a command to MGED
*** Discussions and documents
 
 
**Test the work and fix bugs
 
**Test the work and fix bugs
  
Line 123: Line 119:
 
= Things I have done now (Patches) =
 
= Things I have done now (Patches) =
  
I have made patches related to the project I'm applying. The original revision(48890) of functions rt_ell_brep(), rt_ehy_brep() and rt_hyp_brep() cannot deal with objects centered at a non-origin point. I add rotation, translation and shearing matrices and apply them to do the transformation. They work quiet well in my tests. I hope it's a good start point for my work. This patch can be seen on https://sourceforge.net/tracker/?func=detail&aid=3513288&group_id=105292&atid=640804 .
+
I have made patches related to the project I'm applying. The original revision(48890) of functions rt_ell_brep(), rt_ehy_brep() and rt_hyp_brep() cannot deal with objects centered at a non-origin point. I add rotation, translation and shearing matrices and apply them to do the transformation. They work quiet well in my tests. I hope it's a good start point for my work.
  
I also add an option to the 'brep' command in MGED which can call functions rt_*_brep() to convert an implicit primitive to brep. So I can test the conversion function in MGED, which is a much more convenient way then csgbrep. I also share it as a patch on https://sourceforge.net/tracker/?func=detail&aid=3515194&group_id=105292&atid=640804 .
+
The patches have been uploaded to sourceforge.net.
  
 
= Why BRL-CAD =
 
= Why BRL-CAD =

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)