Editing User:Jasleen Kaur

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 6: Line 6:
  
 
Brief Background Information:
 
Brief Background Information:
 
 
An open source programmer with background of C/C++ .
 
An open source programmer with background of C/C++ .
 
 
1) I am familiar with Qt and I am working for the LibreCAD organisation, which uses Qt framework.
 
1) I am familiar with Qt and I am working for the LibreCAD organisation, which uses Qt framework.
 
 
2) My Interest is in Computer Graphics, Data Structures.
 
2) My Interest is in Computer Graphics, Data Structures.
 
 
3) I recently added 6 new features in LibreCAD
 
3) I recently added 6 new features in LibreCAD
 
   http://forum.librecad.org/New-Features-for-LC-2-1-td5707958.html#a5707970
 
   http://forum.librecad.org/New-Features-for-LC-2-1-td5707958.html#a5707970
 
 
4) Final year B.Tech student of Information and Technology at Guru Nanak Dev Engineering College, Ludhiana, India.
 
4) Final year B.Tech student of Information and Technology at Guru Nanak Dev Engineering College, Ludhiana, India.
 
  
 
Phone number: +91 887 240 9561
 
Phone number: +91 887 240 9561
Line 27: Line 21:
 
Project Title: Cross-Platform 3D Display Manager.
 
Project Title: Cross-Platform 3D Display Manager.
  
Brief summary:  
+
Brief summary: This project's main goal is to make a Cross Platform Display Manager. Currently, their are canvas specific Display Managers (wgl, ogl, ps, plot, tk, rtgl, X). To make a cross platform Display Manager, I am using Qt framework. Qt is used to make a cross platform applications. Based on Qt's QCanvas, a cross platform Display Manager will be made. This Display manager will work on any window system. dm-qt.c will be my new cross platform Display Manager's C file, which will based Qt's canvas, which is a cross platform canvas. Its header will be /src/include/dm-qt.c . I will hook this cross platform Display manager in Cmake file (/src/libdm/CMakeLists.txt).
 
 
This project's main goal is to make a Cross Platform Display Manager. Currently, their are canvas specific Display Managers (wgl, ogl, ps, plot, tk, rtgl, X). To make a cross platform Display Manager, I am using Qt framework. Qt is used to make a cross platform applications. Based on Qt's QCanvas, a cross platform Display Manager will be made. This Display manager will work on any window system. dm-qt.c will be my new cross platform Display Manager's C file, which will based Qt's canvas, which is a cross platform canvas. Its header will be /src/include/dm-qt.c . I will hook this cross platform Display manager in Cmake file (/src/libdm/CMakeLists.txt).
 
 
 
  
 
Detailed description:  
 
Detailed description:  
 
   
 
   
 
1) In a cross platform display manager, I will use Qt classes. Qt's QCanvas, Qt OpenGL, QPixmap, QObject, QPalette, QPainter, QFrame, QTransform, QMouseEvent,QKeyEvent etc will be used. QPainter class has functions like drawPoint(), drawLine(), drawPixmap().
 
1) In a cross platform display manager, I will use Qt classes. Qt's QCanvas, Qt OpenGL, QPixmap, QObject, QPalette, QPainter, QFrame, QTransform, QMouseEvent,QKeyEvent etc will be used. QPainter class has functions like drawPoint(), drawLine(), drawPixmap().
 
 
2) I will hook this cross platform Display manager in Cmake file (/src/libdm/CMakeLists.txt). Cmake utility generates a makefile which will compile this C code.
 
2) I will hook this cross platform Display manager in Cmake file (/src/libdm/CMakeLists.txt). Cmake utility generates a makefile which will compile this C code.
 
 
3) For Keyboard and mouse Integration,the QWidget::setEnable() function can be used to enable or disable mouse and keyboard events for a widget. The event handlers Widget::keyPressEvent(), Widget::keyReleaseEvent(), QGraphicsItem::keyPressEvent() and QGraphicsItem::keyReleaseEvent() receive key events.
 
3) For Keyboard and mouse Integration,the QWidget::setEnable() function can be used to enable or disable mouse and keyboard events for a widget. The event handlers Widget::keyPressEvent(), Widget::keyReleaseEvent(), QGraphicsItem::keyPressEvent() and QGraphicsItem::keyReleaseEvent() receive key events.
 
 
4) To get Qt running with Tk window (MGED/Archer), I will use a binding(suggested by developers) to integrate Qt with Tk/Tcl (if necessary). Otherwise, I will create an integration between them in my code myself.
 
4) To get Qt running with Tk window (MGED/Archer), I will use a binding(suggested by developers) to integrate Qt with Tk/Tcl (if necessary). Otherwise, I will create an integration between them in my code myself.
 
 
5) Testing: I will create a new database file (.g), where I will examine the working of operations by performing these operations on Qt's canvas which will work on any platform.
 
5) Testing: I will create a new database file (.g), where I will examine the working of operations by performing these operations on Qt's canvas which will work on any platform.
 
 
6) Documentation: It will obvious the part of my project. I will deliver this project with a complete Developer's Documentation. So that if anyone wants to involve in it, can easily get involved. This documentation will contain all its workflow. For documentation I will use Doxygen or latex or any software suggested by developers.
 
6) Documentation: It will obvious the part of my project. I will deliver this project with a complete Developer's Documentation. So that if anyone wants to involve in it, can easily get involved. This documentation will contain all its workflow. For documentation I will use Doxygen or latex or any software suggested by developers.
 
 
7) Maintenance: I will be active on IRC, mailing list and will continue my contribution. I will contribute even after GSoC overs. I will take care of all bugs/issues related to my project and also contribute my time to solve others bugs/issues too.
 
7) Maintenance: I will be active on IRC, mailing list and will continue my contribution. I will contribute even after GSoC overs. I will take care of all bugs/issues related to my project and also contribute my time to solve others bugs/issues too.
 
  
 
Framework I intend to use: Qt is a cross-platform application framework that is widely used for developing application software with a graphical user interface (GUI) (in which cases Qt is classified as a widget toolkit), and also used for developing non-GUI programs such as command-line tools and consoles for servers.http://qt-project.org/
 
Framework I intend to use: Qt is a cross-platform application framework that is widely used for developing application software with a graphical user interface (GUI) (in which cases Qt is classified as a widget toolkit), and also used for developing non-GUI programs such as command-line tools and consoles for servers.http://qt-project.org/
 
 
   
 
   
 
Deliverables: Fully functional, thoroughly tested, cross platform Display manager.
 
Deliverables: Fully functional, thoroughly tested, cross platform Display manager.
 
 
   
 
   
 
Milestones:
 
Milestones:
 
+
1) Revision of Existing code. an routines of libdm. Exploring http://diyhpl.us/~bryan/papers2/cad/brlcad/doc/html/manuals/libdm/index.html
1) Revision of Existing code. an routines of libdm. Exploring  
 
http://diyhpl.us/~bryan/papers2/cad/brlcad/doc/html/manuals/libdm/index.html
 
 
2) Making a patch to show my ability of programming.
 
2) Making a patch to show my ability of programming.
 
3) Create dm-qt.c (src/libdm/) and its header dm-qt.h in (src/include/). First by copying the exiting code ok dm-tk.c to dm-qt.c files.
 
3) Create dm-qt.c (src/libdm/) and its header dm-qt.h in (src/include/). First by copying the exiting code ok dm-tk.c to dm-qt.c files.
Line 68: Line 48:
 
9) Making a patch of my work.
 
9) Making a patch of my work.
 
10) Submitting it to Google.
 
10) Submitting it to Google.
11) Maintenance (future work).
+
11) Maintenance (future work)
 
 
 
   
 
   
  
Line 77: Line 56:
 
May 1 - May 26:  (Getting familiar and making patch )
 
May 1 - May 26:  (Getting familiar and making patch )
 
I am making patches to show them my ability to code. Interacting with developers on IRC, Mailing List. Discussions with developers to innovate this idea with more useful features.
 
I am making patches to show them my ability to code. Interacting with developers on IRC, Mailing List. Discussions with developers to innovate this idea with more useful features.
 +
 
Link to Patches:
 
Link to Patches:
 +
 
[1]  https://sourceforge.net/p/brlcad/patches/181/
 
[1]  https://sourceforge.net/p/brlcad/patches/181/
 
   
 
   
 +
 +
 
May 27 - June 2: (Explore existing code)
 
May 27 - June 2: (Explore existing code)
 
Till now I explored exiting code with the help of this link http://diyhpl.us/~bryan/papers2/cad/brlcad/doc/html/manuals/libdm/index.html
 
Till now I explored exiting code with the help of this link http://diyhpl.us/~bryan/papers2/cad/brlcad/doc/html/manuals/libdm/index.html
Line 87: Line 70:
 
And If In case I am not selected, I will continue my contribution to BrlCad.
 
And If In case I am not selected, I will continue my contribution to BrlCad.
 
   
 
   
 +
 
June 3 - June 9: ( Use Qt classes)  
 
June 3 - June 9: ( Use Qt classes)  
 
Create a new file dm-qt.c and run exiting code to that file.
 
Create a new file dm-qt.c and run exiting code to that file.
Line 93: Line 77:
 
Will use existing features to implement in Qt and add more features there.
 
Will use existing features to implement in Qt and add more features there.
 
   
 
   
 +
 
June 10 - June 22: ( Qt running with Tk window- MGED)
 
June 10 - June 22: ( Qt running with Tk window- MGED)
 
I will create an option in Mged window, like
 
I will create an option in Mged window, like
Line 120: Line 105:
 
Sept. 23 - Sept. 27: ( Final evaluation and Submit code to Google)
 
Sept. 23 - Sept. 27: ( Final evaluation and Submit code to Google)
 
Final review of code. After solving issues or bugs, I will finally upload my project to Google-melange's site.
 
Final review of code. After solving issues or bugs, I will finally upload my project to Google-melange's site.
 
+
 
+
 
Future work:  Maintainability of its code.
 
Future work:  Maintainability of its code.
 
 
 
Future scope:  Cross platform display manager with more features and good functionality. This Display manager will work with both Tk Windows (MGED/Archer)
 
Future scope:  Cross platform display manager with more features and good functionality. This Display manager will work with both Tk Windows (MGED/Archer)
 
  
 
Time Availability: I will be available 40 hours / week. If needed, can spend more. No restriction of time.
 
Time Availability: I will be available 40 hours / week. If needed, can spend more. No restriction of time.
Line 142: Line 124:
  
 
[Blog]  http://jasleen7956.wordpress.com/
 
[Blog]  http://jasleen7956.wordpress.com/
 
 
[Github]  https://github.com/jasleenkaur
 
[Github]  https://github.com/jasleenkaur

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)