User:Izak/Design document

From BRL-CAD
< User:Izak
Revision as of 15:32, 10 June 2013 by IIIzzzaaakkk (talk | contribs) (Short description and Development plan)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

INTRODUCTION

PROJECT SUMMARY

In our world today , we observe that all solid objects are simply combinations of basic ones like cubes,spheres,cones,etc and we frequently have to manipulate objects which have surfaces such as gadgets and devices . With the explosion in ubiquitous technology, Computer-aided design (CAD) software help us create digital content in adverts and movies as well as visualize some solid objects like perfume bottles and shampoo before they are actually manufactured. In this project, we propose that BRL-CAD, which aspires to be the best CAD software, should incorporate a heart, a symbol of love, into its core functionality as one of its basic solid objects in order to increase its customer base and differentiate itself amongst its competitors. Indeed, this heart structure ( also called a heart primitive ) shall be used by those producing cartoons and designing electronic cards, gifts and presents during celebrations such as birthdays, weddings,family reunions, anniversaries and Valentine's day which deeply appeals to many individuals,families and communities.So during the summer, this heart primitive will be included into the raytrace library as a set of routines with corresponding support added to other parts of the source code.


DELIVERABLES

Pre mid term evaluation period

  • Edit include/ header files like raytrace.h, rtgeom.h, magic.h and db.h /db5.h
  • Write src/librt/primitives/hrt/hrt.c

Post mid term evaluation period

  • Add support to other files in BRL-CAD like primitives/table.c, primitives/mirror.c, src/librt/db_scan.c, mged/tedit.c, mged/sedit.h and Makefile.am .


DEVELOPMENT SCHEDULE AND TIMELINE

June 17th to July 26th : Work period (Pre-mid term evaluation)

(1 week)

  • Edit include/ header files like raytrace.h, rtgeom.h, magic.h and db.h /db5.h .

(1 week)

  • Write hrt_specific structure .
  • Write rt_hrt_prep() function to determine if system is dealing with a valid heart .
  • Write rt_hrt_print() function to display some properties of the heart .
  • Write rt_hrt_shot() function to intersect a ray with a hrt .
  • Testing and debugging functions in hrt.c


(1 week)

  • Write rt_hrt_norm() function to return the normal, entry and exit points of a ray .
  • Write rt_hrt_curve() function to return th curvature of the heart .
  • Write rt_hrt_uv() function to return the polar cooordinates of a point hit by a ray .
  • Write rt_hrt_free() function .
  • Testing and debugging routines in hrt.c.

(1 week)

  • Write rt_hrt_plot() function .
  • Write rt_hrt_import() function from database format to internal format .
  • Write rt_hrt_export5() function to export from internal format to external format .
  • Testing and debugging routines in hrt.c.

(1 week)

  • Write rt_hrt_tess() function .
  • Write rt_hrt_describe() function to present the heart in human-readable format.
  • Write rt_hrt_params() function .
  • Testing and debugging routines in hrt.c

(1 week)

  • Submission of hrt.c to mentors for final review .
  • Final corrections of hrt.c .


June 29th to August 2nd : Mid-term evaluation

(1 week)

  • Submission of preliminary hrt.c to Google .


Aug 5th to Sept 13th : Work period (Post mid-term evaluation)

(2 weeks)

  • Edit the table to support librt in table.c .
  • Edit mirror.c to help mirror objects across some axis.

(2 weeks)

  • Write database interaction support in db_scan.c .
  • Edit Makefile.am to include hrt support .

(2 weeks)

  • Create necessary support for heart primitive in src/mged/?edit.? files .


Sep 16th to Sep 27th: Testing and Documentation period

(1 week)

  • Final testing and debugging of src/librt/primitives/hrt/hrt.c code .
  • Documenting heart primitive in BRL-CAD .
  • Final review of hrt.c by BRL-CAD mentors .
  • Final corrections of hrt.c .

(1 week)

  • Final submission of hrt.c code to Google.


PROJECT PLAN

Still to be uploaded

POSSIBLE DEVIATIONS

As proposed in the project proposal - www.brlcad.org/wiki/User:Izak, the sextic equation of the heart can be used alongside differential calculus to add the heart primitive to the BRL-CAD package. A possible deviation from this approach will be to implement a pseudo primitive that is, a primitive created using other primitives but usable as a C.S.G. primitive e.g. a ell created using a sph. We could use a metaball to create a heart by mapping the heart's properties like lobe size and aspect ratio as metaball properties.

DIFFICULTIES ENCOUNTERED

Still to be uploaded

FUTURE DIRECTIONS

Still to be uploaded

RESOURCES USED

Still to be uploaded