Work Of The Week 
Report week.
Total worked: 12 hours. Report | |
| All in all, the report is more than 2/3 writen. The presentation has to be converted to a powerpoint. | Time worked: 12 h |
Next Week prevision
Submission week.
Report week.
Total worked: 12 hours. Report | |
| All in all, the report is more than 2/3 writen. The presentation has to be converted to a powerpoint. | Time worked: 12 h |
Submission week.
This was the last development week. After the 18th no more code will be modified, and all non-solved bugs will be added to the bug.txt file given with the software. Few are already in. and it is hoped that few will be.
Total worked: 14 hours. Last release and bugs correction | |
Several small bugs were corrected during that week. One in the selection code (the last vertex was always added during sweep selection). The update selection when running the subdivision algorithm was also taking time, but was not really solved. The subdivision won't be applicable to a selection. The trouble functionalities found so far but not corrected are removed from the release (like the command line options that causes trouble if Qt takes too much time to load). Generating working binaries for windows and linux took time, as verification was needed that everything was as perfect as possible. | Time worked: 7 h |
Report | |
| Of course some efforts were put into the report too, that is growing bigger and bigger. | Time worked: 7 h |
Behold the final Gantt diagram
Next week is the last week before submission. The presentation will be setted up, and the report will be finished.
Mainly worked on the report, but several hours were used for the subdivions. Running it on the selection should be achieved before the end of the project development (~ middle of April).
Total worked: 13 hours 30. Subdivsion | |
| The subdivision works well on the whole mesh but still causes trouble to the selection run. It is based on the storage of the mesh that is not reconstructed correctly. A serious stack overflow happens when normalized very huge meshes (over 10 milion faces). | Time worked: 3 h 30 |
Report | |
| A lot of time was spent to write the report first parts. The time was also used to generate the UML diagrams of the "final" software. | Time worked: 10 h |
Latex websites about organizing a document were largely used.
Continue the report is the first objective. Finding and solving minor bugs too. The subdivision is a bit tricky to be run on the selection, but with a bit of luck may work in the end.
The subdivision was debugged. Hopefully all will be finished by the end of next week. Some more tests were done to verify the loader, especially on "huge" meshes. It worked. The report plan was presented to Eyad during the meeting.
Subdivision | |
| Bug killed. Working to run it on the selection. | Time worked: 6 h |
Loader Testing | |
| Few bigger meshes were loaded with success. Especially the japtriangulated, that is running very slow on the RGU computer. Meshes triangulated into blender seams to be upside-down. | Time worked: 5 h |
Report | |
| Working on the report plan and writing the help. | Time worked: 3 h |
No external references that week.
Finish the subdvision! It is almost here! And work on the report as well.
This week was a debugging week. Running after the bug in the Subdivision algorithm. It was also partially used to learn how to use the debugging tool valgrind.
Total worked: 10 hours.Search of the sigsev | |
Searching and searching for the several known issuses, mainly the subdivision problem. | Time worked: 10 h |
The valgrind manpage was my friend this week.
Continue the debug and solve that problem would be mice: April is comming.
Work to run the median filter on a selectionm and mainly work to implement the sqrt(3)-subdivision algorithm.
Total worked: 9 hours 30.Median Filter And Interface | |
| Finishing the run of the median filter on a selection. Searching and implementation of a ShortcutWidget. Based on a open source project code extract. | Time worked: 3 h 30 |
sqrt(3)-subdivision | |
| Advanced read on the algorithm, and begining of the implementation. An error occurs and create a segmentation fault. | Time worked: 6 h |
Reading on sqrt(3)-subdivision publication in pdf.
Shortcut from lyx-devel mail-list
Fix the errors in the subdivision.
This week was mainly about Median Filtering. Few other interface modifications were made, and the light was finalised.
Median Filter | |
| The creation of the AlogirthmDialog as a base for every algorithm dialogue helps to enable the options of the Median filter. This algorithm was, by the way, finished in the end of the week. | Time worked: 6 h 30 |
Light and OpenGL | |
| The unused Specular and Ambient lights and few other options (colour is useless for instance). Logging every single OpenGL action is enabled. | Time worked: 2 h |
Interface | |
| Few options were removed from the settings (see lights). And correction of a possible buffer overflow during the reading process. A script was created for linux to remove the stored software parameter; and a registry entry removal was created for windows to do the same. | Time worked: 2 h |
Few web search leads me to do the scripts to remove the entries. On linux no problem thus it is a file (just 2 commands to find it). On windows in the other hand it took me some reading. The answer is there: add a minus in front of the key name!
Run the Median Filter on a selection only. Begin the implementation of the Subdivision.
This week was about sweep selection first, then few light modification to finally work on the first bits of the Median filter algorithm.
Total worked: 11 hours. Sweep selection | |
The actual work on sweep selection was to create a rectangular shape on the mouse dragging. It needs to combine Qt and OpenGL drawing, by overloading the paint event. Their was also few modifications on the deselection process, that now work with sweep selection too. | Time worked: 3 h |
Lighting | |
Very few modification were done on the lighting, just adding the normals display and testing the actual work of disabling a light. | Time worked: 2 h |
troubles | |
| The development was mainly done on linux, and an update changes the default opengl driver, it took a while to understand the source of it. | Time worked: 2 h |
Median filter & interface modification | |
Few modification were done on the interface, in order to remove useless options mainly. One hour play on latex to begin the report, creating the basic template. And the first coding section in order to apply a median filter was made. | Time worked: 4 h 30 |
Mainly use of Qt and OpenGL doc. The median filter did not required specified docuementation, even if few searches were made.
Continue the filter development, and certainly finish it.
The idea of the week was to improve the selection. No real work was done on the lightning instead of reading.
Picking and selections | |
A simple option was added to the selection process, inverting it. This allow the user to select a small part of the mesh, and then apply a process to all the image but that part. After Eyad asked for it, a sweep selection process was started. The overall process is working, with still few limitations and details to correct. First of all, a suitable way of displaying the rectangle from the mouse movement should be find, as my solution (using QPainter into the paintGL method of the MeshWidget) created annoying flashing on the screen. Then a review of the signalisation of a selected point was made, and still need to be verified (a sweep selection cannot un-select for a yet unknown reason). | Time worked: 6 h |
Overall modification | |
Most of the Base namespace documentation was updated (mostly created). Producing a overall well-formated (doxygen) documentation will still be an important part of the process, as it is necessary to understand each small action of the software. The overall project have now more than 8000 lines of C++ (without the designer code) and therefore needs the documentation. Few review were made on the Settings in order to incorporates some forgotten or new options (background colour, material intensity, ...). A centroid computation is now done during the loading process, in order to center the mesh on the origin (0, 0, 0). | Time worked: 4 h 30 |
No Gantt state was published since ages, as I have to re-draw it mostly completely. The current trouble of lightning and previous one of picking changed most of the end of the planned development.
No more references were used.
For next week Eyad ask that the sweep selection was done, as for the lightning trouble solved. Therefore I will work quickly to finalise the selection, and spent most of my time on the lightning.
The work was focused on two main points: the lightning and picking problems. The picking was solved, for a single picking action. But on the lightning side, the problem is still there. Few part of the lightning problem were solved, like the light colour is now applied correctly. But there is still a problem of lightning and shading, that makes the mesh looks either too dark or too clear.
No new document nor references were used this week, as it was mostly to continue the previous work.
As the picking problem is solved, it can now be improved. But as my meeting with Eyad was cancelled (snow on Friday), some more efforts will be put on the lightning solving and the picking improvement.
Most of the work was just minor modifications to the interface, in order to link the new options created for the picking. The Middle Project Review was also compiled, and is available there
Middle Project Review writing | |
Review on the project current state, that is late compared to the original planning, but not out of time. More details are available in the document itself. | Time worked: 1 h 30 |
Minor modifications | |
The modifications were mostly on the interface, adapting the button event processing and other issues. This work also introduced a modification on the log code entries, to change all (int)this pointers to long in order to be 64 bits memory width compatible. The OpenGL logging was also creating this week, in order to display understandable returns of errors. Finally a bit of the lightning development was done, mostly light colour deals, and search to understand the source of the problems. | Time worked: 3 h |
The only references this week are about OpenGL lightning, from the OpenGL manual or few lightning tutorials.
Mainly the work of the week was to finalise and correct the issues of the picking process. Even if it was almost working, points were selected but unselectable, or even distant points were selected instead of the good ones.
Picking issues | |
The main work of the week was to read more about picking, to verify that the website were I took the algorithm was correct, and also to review my adaptation of it. The problems were due to tiny differences during the drawing or selection process, that are difficult to find. The algorithm I found was correct, but my interpretation of it had several mistakes, creating sometime the strange behaviours. Most of the original problems (unselection and select unwanted vertex) came from the filling of the picking stack in OpenGL. At the end of the week the problem of unwanted selection is still present, even after the correction of several minor mistakes. Few modification were also done on the update process in order to display the current mesh correctly. The selection does not, for a yet unknown reason, accept display in shaded view. | Time worked: 7 h |
The week reference is a book: Interactive Computer Graphics, a top-down approach using OpenGL, 4th edition, from Edward Angel and published by International Edition. The chapter about lightning and picking were consulted (respectively 3.7 and 6)
Next week is almost the dead-end for the lightning and picking troubles, as the second part of the project has to start soon.
Few was done during this week, especially because the exams were coming.
Minor modifications | |
Several minor modifications were made on the interface, on the settings mostly. New options were added, as drawing the axis according to the settings and other view modification (moving from glFrustum to gluPerspective). | Time worked: 3 h |
were exams' week, no work during that period.
This week focused on the picking development. Some problems occurred during the development of this part of the project, forcing me to develop a simpler software. The picking algorithm is not complicated, but as the overall project code begins to be bigger and bigger, it was quite difficult to understand were could the mistakes be.
Picking Software | |
My first attempt to picking was not successful. Either none or too much points were found on the stack. As the drawing process of the mesh is split in several objects, required by the complicated interface of the viewer, it could have been quite a nightmare to debug. Therefore I created a smaller project, handling only picking and minimal user interaction to find the problems. This software simply draw a pyramid, were the points could be selected. The first development was also a failure, as for a strange reason, when the rotation and translation possibilities were added the picking just fail. Some minor issues were corrected to make it working almost. The real honours project code was then adapted to handle part of the picking process. | Time worked: 7 h 30 |
Selection class | |
Time worked: 1 h 30 | |
Next week the middle project review assessment is due, and should be therefore completed. Moreover several minor points should be revised on the software, as the picking is not perfectly working, nor the lightning and shaded view.
This week work was simply to continue the previous one. It was the last week before the revision for the exams, and therefore I begin my revisions. The main new function that was develop was some command line options for loading directly a mesh into the view. That will be used to apply an algorithm in another window in order to see the effective modification on the mesh.
Several modifications | |
Finally the Segmentation fault source was found. Thanks to linux printing memory status I found the part of the code that was wrong. It was the scaling part, using a not referenced array that was not detected on initialisation on windows. I also created a nwe page for the settings to handle colour and lightning options. They are not used yet in the code. | Time worked: 6 h |
Command line options, and running another application | |
Several options were added, using for the moment a simple loop reading on the char *argc[] parameter from the main function. The available options are listed when --help is set as parameter. A list will also be added to the about message. Running another instance of the software was straightforward as Qt provide all the tools for that (using the QApplication model to get the application path and QProcess to run a new detached process). | Time worked: 4 h |
Next week is reading week in RGU and I won't work on the project. But I will provide a small "revision" of the overall work done for the project, including spend time, completed requirement and adaptation of the working plan.