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 | + | 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. | ||
− | |||
− | |||
== Proposal ideas == | == Proposal ideas == | ||
Line 79: | Line 77: | ||
***Deduce transformation matrices | ***Deduce transformation matrices | ||
***Apply the transformation | ***Apply the transformation | ||
− | ***Test | + | ***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 | |
− | + | **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 | ||
− | |||
**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 | + | 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. |
− | + | The patches have been uploaded to sourceforge.net. | |
= Why BRL-CAD = | = Why BRL-CAD = |