Wednesday, May 25, 2011

Tuesday, April 24, 2011
Last submission from me i think.
There are now two rar files dated today.
The one with help is the latest
The only difference is the help section and shortcut key changes.
Both versions have fixed quite a few things.
Give it a look!
Hopefully I won't have to touch it again :p lol
Cheers,
Phil

Monday, April 23, 2011
Have just uploaded more code (the name has todays date)

Ok, so here is where I am now.
  • The status bar shows the total nodes used in the program
  • the status bar shows the number of snapshots taken by the user
  • when in snapshot mode, the status bar will also show the current snapshot index being displayed
  • the rendering of a knot while in snapshot mode will show snapshots ONLY. it will not show what is currently being edited. (see my note below)
  • a couple of the descriptions for buttons have been changed, some have been added 

a couple of things though:
  • i changed some stuff in drawKnotString. i have conducted a number of tests and it seems to work fine. please pay extra attention to the drawing of the strings when testing!
  • something i thought about months ago but forgot to mention: what happens if we are "playing" the animation and we try to do something else at the same time?
  • i still havent managed to fix the loading problem. i don't think i will be able to fix this. we may be able to avoid drawing attention to this problem though if we are careful with our presentation lol
  • i am currently looking at shortcuts and help section as well as the mouse movement

Sunday, April 22, 2011
Today's meeting was rather productive.
We fixed a number of bugs, including issues with:
  • loading
  • undo/redo crashing when no nodes
  • deleting after undoing
  • restored the functionality for undo/redo 

Now we are very close to finishing! :D
I need to add a button to change the width of the strings and a button to change the name of the knot.
I shall also work on the colour issue we had with reading text (shouldn't be hard).
I am feeling rather tired at the moment so my memory is fuzzy.

Monday, April 16, 2011
Have been working on the code by fixing simple things, trying to fix the layout. There seems to be always more that could be done but as the time this is due is getting closer some things are just going to have to be left out. Hopefully I can organise a time to meet with Allen so we can implement the database part of the program. I would like to have this part done by the end of the week. I just need to know when Allen is free, besides this things are looking on track

Monday, April 4, 2011

Slow week 04/04/11

Unfortunately I have not made progress this week due to other commitments.
In the last group meeting, Tim pointed out that there is an issue with the positioning of buttons when switching from full screen to windowed mode on his computer. This is very odd, as I was sure I had fixed this issue.
He is definitely using the latest version of the program, so that is not the problem. This will be the first thing I look at when I get back into the code.

Updated GUI 28/03/11

* Added a couple of functional buttons to the interface
* Added text on Jernej's buttons
* Replaced old sprites with new ones created by Jernej
* Resized the buttons in the program.

Minor Changes 26/03/11

I mainly targeted bugs, as I wanted to eliminate them now before it became too difficult to identify and fix.
Still working on the GUI at the moment. Will update more again later.

* Jun pointed out an issue when changing to the windowed mode where the buttons were not repositioning correctly in my last update. This has been fixed
* I found a bug that had been in the code since Jun's last update where the program assumed that if it was not in fourview mode, then the active view MUST be perspective. This has been fixed.
* I found a new bug caused by my last update when switching between fullscreen and windowed mode while in fourview mode. The calculation of the mouse in the viewport was off. This seems to have been fixed. (I have left my last update in the dropbox for reference, as I don't think I described this fault clearly)
* The resolution of the back buffer when in windowed mode is now a constant. This was done because it was a pain in the arse when the program automatically runs on my smaller monitor and its window is bigger than my screen. This way we can easily resize the window depending on our own screen resolution. Perhaps later I will make this a variable so we can change the setting in program.

Thursday, March 24, 2011

Weekly Report 25/03/2011

In the last week I have done a few things.
  • I have identified a number of bugs, managing to fix some of them and informing the group of the others
  • I have begun integrating concepts from both Jun's code and my own
  • I have reassessed a number of designs and identified a number of areas where the program could be improved
  • I began coding these new designs, though in the last group meeting we decided that this may be a little time consuming and may distract from our main objectives.
In the group meeting we noted that the texturing of string did not render on my computer although using the exact same code on another machine rendered without a problem.

In the following week, I aim to tackle known bugs and add more buttons to the GUI.

Sunday, March 20, 2011

GUI Progress 20/03/11

Just recapping on my progress since my last entry as well as outlining a couple of my objectives.
I presented this to the group and discussed the direction last meeting.
Progress:
  • Read through and tried to understand Jun's code
    • Unfortunately it would seem that when I submitted a code sample of multiple viewports, I had provided an out of date file which was rather inefficient and inflexible. It is still workable, though.
  • Integrated what I had done in a sample piece of code into Jun's code
  • Fixed an issue with detecting the coordinates of the mouse in 3d space when enlarging a single viewport
  • Created a GUI drawable game component to perform tasks such as:
    • Drawing all the buttons for the GUI
    • Detecting rollover and clicking of buttons
    • Determining which button has been pressed and what action the program should perform next
  • Created a struct “ActionEvent” which shall be passed from the keyboard/mouse handler and the GUI. This struct contains information as to what action the program should perform next and what viewport the action is specific to (if any).
  • Edited the structure of the program so now the keyboard/mouse handler now returns an ActionEvent to be dealt with later, thus allowing the reuse of code and improving readabillity.
  • Modified the code so that each of workspaces that are to be drawn have their own viewports, ie. topleft, topright, bottomleft, bottomright, fullscreen and default. This way the program doesn't have to keep calculating the positioning and sizing of each viewport with each render, resulting in improved efficiency at a minimal cost to memory.
  • The GUI class now lets us simply call a function to add a particular button type (eg, filebar or toolbar), passing an image with it and the class will figure out the correct positioning of the button and detect if it has been clicked or not.
    • The buttons specific to each of the different viewports requires a bit more work

Objectives (before last meeting):
  • Separate existing functionality into detection functions and handler functions
  • Create more pictures to be used by the GUI
  • Restructure the GUI class

Objectives (after last meeting):
  • It would seem that Jun has begun a template for the GUI for me and would like me to continue from where he left off
  • I am currently looking at the two designs advantages/disadvantages and what I can do to further the GUI by next group meeting.

Thursday, March 10, 2011

First Two Weeks Back

The project looks like it is coming along well.
Our group met together in person for the first time since last semester and I was reminded how much easier it is to have meetings this way as oppose to over the internet.

Now that the core of the project is shaping up nicely, I put my hand up to implement the user interface that we had discussed in previous meetings.
We decided that we would steer clear of WinForms and implement the GUI entirely in XNA.

My current task is to have some sort of usable GUI up and running, which I plan on having well in advance of our next group meeting.
From there I will address keyboard shortcuts and finalize with the group how we would like the program to work.
Depending on time constraints, after that I will address a couple of bugs in the program that have been pointed out in group meetings and touch up the presentation of the GUI as well as other visual aspects of the program.

Summary of the Summer Break

Over the summer break the team split and worked on their own tasks.
I worked on two areas:

  1. Designing and implementing an alternative prototype to serve as the core of the project.
  2. Designing and implementing a system to manage and render multiple viewports with changeable viewing angles.

Task 1 proved more challenging than I had originally anticipated. After putting my concept to paper I then had to actually implement the design. I learnt from Tim that Jun had made significant progress on his prototype.
After reviewing the progress of my prototype, we decided that, due to the limited time factor, it would be more productive for me to focus my attention on other tasks such as the viewport management.

The basic functionality of the code for task 2 would allow a user to view 4 projections of the workspace simultaneously.
Each one of these projections would be shown within it's own viewport and  for each viewport the user could select which angle the camera would look from.
The user could also enlarge any of the 4 viewports.

With task 2 I encountered a couple of technical setbacks. One such setback was that XNA strangely would not allow for a camera to look directly down the y-axis. I am sure this problem can be resolved, though at this stage the angle of the camera is very slightly off as not to look directly down the axis, something that we can tolerate for now. I made several modifications and improvements to this code and have submitted them for inclusion within the rest of the project.