Tuesday, October 31, 2006

At Last An Update

Sorry for the delay between updates. I was working on another project for another class that kept me tied up. But just today, I was able to do a little work on this thesis.

I came up with a better visual design for the grid. It's now much easier to work with and less overwhelming. I also made it so when the walls get drawn, a more typical drafting style wall is drawn instead of just a straight line. This system isn't perfect though, in that the walls don't line up perfectly, but I'm trying to figure out a way to combat this. That should be pretty challenging.

You can also now delete and move individual walls instead of entire wall group. Eventually, I'm going to incorporate a selection system that attaches a movie when you've selected something to know that you selected it, and if you click of it, it gets deselected. From there you can delete, resize, move, etc. This is much more intuitive and more like PS or Illustrator.

I've also still got to rework the coding so it uses dynamic classes instead of all these crazy functions I've defined. But it's such a big program, that it's gonna be a pain, and I've never classed a system like this before. I don't look forward to it.

I'll edit this post later with links. SCAD's server is being a jerk at the moment.

*edit*
LINK <--- this is design document version 1.5

Thursday, October 12, 2006

Lots of success, lots left

The last few days have been great in the way of progress.

  • I made multi-dimensional arrays my bitch as I got the points to all store in a 3D one.
  • I figured out and implemented how to attach the measurements to each movie clip so they don't stack up uselessly anymore.
  • I changed the code around so when it draws each line, it puts it into it's own seperate movie clip. This way you can undo as you're going along.
  • I implemented that there undo I was just talking about.
  • I got almost finished with a rotate feature for each wall group, but came up upon a snag with the registration points. There's supposedly ways to change it, but everything I find on it doesn't do a good job in explaining it, so I got fed up with it for now. It rotates, but it rotates with a registration point of 0,0. And I just can't use that.
The next things to work on unless more pressing concerns arise will be:

  • Finishing the first iteration of the final design document. This is due in class on Monday by the way.
  • Fixing that damn rotate.
  • Coming up with and implementing a scale feature. Maybe one for both wall groups and one for single walls, or maybe just wall groups. Dunno yet.
  • Tweaking the measurement algorithms so I get more consistent measurements.
  • Ceiling height
  • Clone room (maybe)
In the farther future, after I'm comfortable with all that and whatever ugly things have reared their heads, I'll be starting on these things:

  • Attaching rooms to exterior wall groups
  • Naming and zooming into interior wall groups (rooms)
  • A viable 2nd and 3rd floor system that makes sense
  • Adding doors, windows, and other things that visually effect walls.
I'll be getting into some really complicated stuff soon. Wish me luck.

p.s. Here's is the latest .swf. (---> LINK <---)

Friday, October 06, 2006

Hey Look. A .swf File.

Here at the ---> LINK <--- is the lastest iteration of my Build From Scratch feature.

Keep in mind that this is only for figuring out the code. The final product will look nothing like this.

I just implemented the moving closed wall groups feature and the delete a wall group feature. I'm still working on getting the measurements to move and delete with it. Everything would be much smoother if I could wrap my mind around the multi-dimensional array thing. But I'm getting there.

Thursday, October 05, 2006

Multi-Dimensional Arrays Are The Devil

Well, they're not that bad. But I just had some initial trouble setting one up. I received some help from the prof, but it's still coming slowly. I plan on working on the whole thing all day tomorrow. I should be able to fix it along with implementing the undo and delete feature. And hopefully the figure out something the prof showed me in Illustrator. The point adjustment feature. If I can figure that out, I can grab individual end points of a wall and drag and drop them to any place I need to. The wall would then update in the new position. This would effectively get rid of the single wall edit tool.

Wish me luck. Next I'll post the .swf file of what I have so far.

Tuesday, October 03, 2006

Progresso!

I made some decent progress today. Here's what I've implemented dynamically and completely with ActionScript so far with the Design From Scratch feature.

  • Set up a grid system. (1000 X 700)
  • Allowed user to specify whether he wants to draw an exterior or interior wall.
  • Set up the draw feature, where a user clicks down once, the temporary line shows up, along with a measurement of how long the line is in feet (2 feet = 10 pixels), and connects the two points of the line wherever the user drags the second points. Kind of like the polygon lasso tool in PS.
  • When the user clicks down again, a semi-permanent line is placed where the temporary line showed, the points are entered into an array for later use, the measurement of the line is converted into feet and placed in the exact middle of the line.
  • The user can then draw as many lines as he wants and each one is entered into the array via the endpoints, and semi-permanantly drawn.
  • When the user connects the last line with the start point of the first line, a circle appears indicating you can close off the line. Once clicked and closed the array point info is taken out and used to draw the permanent movie clip onto the stage represented a closed off shape. (this will later be used to move, resize, rotate, name, etc)
  • The user is free to start over with a new shape to draw. Each shape will have it's own identity.
Now for the problems I'm having that need to be fixed in my next iteration, as well as some ideas for improvement.

  • The area to select what kind of wall to draw needs to take off the mouseClickListener so you don't draw at the same time as selecting a choice. (This is a minor issue that probably won't have any bearing on later iterations.)
  • The overall look needs to be improved obviously, but this is also not a big issue since this is early on.
  • The most pressing concern is to figure out an Undo Feature to take one step back if you mess up a single wall and later a delete feature to delete an entire shape.
  • I need to also find a way to make the array creation dynamic so I don't overwrite the array for every new shape. There might be ways around it that I can overwrite it and it be ok, but I think it would improve the flexibility of the code if I found a way to make it more dynamic. Maybe it can save the info into a new array everytime a shape is completed, but the problem is I can't figure out how to dynamically name the arrays so it incrementally creates a new one. There's gotta be a way.
That's all I can think of for now. This post might get updated. Be on the lookout.

Sunday, October 01, 2006

Tentative Schedule and Additions

Here at this ---> LINK <--- is where you can find the detailed schedule for my Studio I class in .pdf format. Right now I'm mired in phase 2. I've got a few questions and a couple problems with it, but nothing unattainable. Also, these list of additions to the site is in the schedule, but I'd better list them here for posterity.
  • Floor additions must make sense
  • Jump to any step previously done
  • Ceiling height
  • Windows
  • Doors
  • Better visuals
  • Calculates square footage and price
  • Draw outside walls
  • Draw inside walls
  • Add label to each room
  • Room editor (rotate, resize (drag and input box), lock, clone, delete, move)
  • New types of styles for Modify section
  • Grid system
  • Zoom feature for individual room setup
  • Ability to put in basic furniture for room size comparison
  • Bigger overall size
  • Roof styles
  • Explanation of different styles
  • Tips for building and designing
  • Fireplace
  • Breakfast Nook
  • Limit the user's options better and more dynamically


I'm constantly adding and taking away from this list so it's by no means comprehensive or final. That's all for now, though.