lundi 7 décembre 2009

Week 09 [30/11 to 06/12]


Work Of The Week



I worked quite a lot this week, mostly because I enjoyed it and had time. The interface part was, after all, far more important than expected.


Most of the work was adaptation. I introduced the final architecture for the software, or most of it, this week, and therefore needed to modify most of the interface to make it work.


The other main part was the introduction of the NormalizedMesh that is, as its names indicates it, a mesh that handles shaded view and lightning. It also handles the Wireframe view, that was first part of the SimpleMesh organisation.


As it's been a long time I didn't post a version of the software on that blog, and as the current version is almost finished (for the interface point of view) you can go on my sendpsace to get both sources or win32 executable (that includes sources as well).




Total worked: 23 hours 30.




Adaptation


There is a lot to say about the adaptation, as it was in fact multiple adaptations. Most of them concerned the MeshWidget that were handling most of the operation that it now delegate.


First I continue to work on the CameraWidgwet (that is the camera dock in the interface) and therefore needed to modify the MeshWidget to use it as the centre of all the view informations (translation, rotation are saved in that widget, the MeshWidget is just the user action listener).

Time worked:
1 h 30

Then I introduced the SettingsWidget, that is a window to save, load or reset the global default settings. It is using the QSetting object, that permit to be system independent (saving on the registry in Windows, in XML files for OS X and configuration files for Unix). This required some work, more than expected, and will need some few review before the end. Otherwise it is almost finished.

Time worked:
8 h 30

I created a new type of button: the ColourButton that represent a colour choice, shows it, and allow the user to re-define it by click on it.

Time worked:
1 h

I finally added the last widgets: the SelectionListWidget and the SelectionWidget that are both really important. The second one will handle the whole display machine, containing a selection or the original mesh. The first will contain the list of selection and display it. For the moment only one selection is allowed: the loaded mesh, but it will evolve to more soon. I needed to adapt most of the Interface components to deal with that new architecture, as the MainWindow and the MeshWidget were the most concerned.

Time worked:
4 h

Little and simple work, but I created the icons picture for the interface. They are not pretty but are, as far as I known, obvious.

Time worked:
1 h

NormalizedMesh and the shaded view



This was the most important modification of the week, as it makes me change most of the current code. The changes were smalls, but very important. And some revisions will certainly be needed to improve the current software.


First of all I created the object itself, that is a sub-class of the previous SimpleMesh. Now, as SimpleMesh is just a point cloud representation. The whole faces are handles by the NormalizedMesh. I also worked on the faces and vertices normals computation, and thanks to a good website listed bellow I was pretty much quick. I think I will adapt the algorithm for the vertices computation, as it looks pretty much time consuming for big meshes (doing too much loops that could be avoided by some indexing). This works also contains the adaptation of all the interface object that were using the SimpleMesh to handles the new functionalities.

Time worked:
6 h 30

Project Structure



This work was basically adapting the .pro, that represents a Qt project. This files handles the creation of the Makefiles, and contains all the information about the project itself (source files, designer files, resources, ...). I updated it in order to have a better organisation, and to handle the "install" process that will create a folder with all that is needed to run the software.

Time worked:
2 h


Gantt State



I didn't publish a Gantt chart since a while. It didn't changes a lot. I just make the current task to run longuer (interface creation) as I had some delays and as it takes more time that planned. However the delays are not important at all, and I still have some free time between the second part planned end and the begining of the report writing.




Current task:



General view:




Information And References



I didn't read a lot for this week work, even if I worked a lot. Most of it was Qt documentation.


I used several good websites to understand the normal computation. It is barely simple:

The first one was the one I used to understand more in details how the normals are computed, and the second one was used for the coding part. I mostly copied the code, and adapt it for my purposes.

Next Week prevision

The interface main actions are almost finished. Was is left is the picking part, that is a milestone in this part of the software.

I will also work on a multi-window software (create one new window by loaded mesh).

If I have time I will also work on the loading and saving process, to be handle by threads, in order to do not make the application to freeze during long processes. I will also try to make a special "work in progress" widget that will display few messages and a progress bar about a current time-consuming work.

  • OpenGl picking with Qt
  • Multiple window soft
  • Work in progress widget for loading and saving processes.

Aucun commentaire:

Enregistrer un commentaire