Home > BrewzNET, Tech geeks > BrewzNET Upgrades

BrewzNET Upgrades

So I’ve spent the better part of the past few months upgrading the BrewzNET infrastructure around a few things. That has resulted in some great new features, but it has also broken several things as well. I think in general it has been a great step forward to what I want, so I guess I’ll take a little time to list what has happened using screenshots as examples to help illustrate my points.

BrewzNET - March 08 001This first picture demonstrates several of the major upgrades.

First, I’ve rewritten the gradient effect such that full alpha channel support for colors is now supported by the pipe and associated classes (like coils). This means that any of the colors can be partially translucent (set by the user). For both the coil and the pipe, you can see thru the component to those behind it (and ultimately the display control’s background image).

The pipe class also received a major overhaul – it is now a subclass of a “CompositeRenderer” class that is kind of like a drawing object group. This allows the unions and pipe sections to have their own unique properties such as widths and colors. To accomodate the sections having different widths, I have also created a “ResizeUnionRenderer” class that allows smooth transitions. The alignment logic has also been replaced with a cascading Delegate functionality that automatically updates pipe section alignment and sizes when the control points are dragged around.

One less obvious upgrade is the implementation of “Designer” classes that are unique to the components and help generalize and administer the updating and drawing during the design process. These designers allow the different Renderer classes to implement their own menu items and drag / drop behavior, which means lots of flexibility. Its no Visual Studio, however the basic functionality is there to allow the same kind of component positioning and manipulation.

BrewzNET March 08 - 002Another upgrade that was shown in the previous shot but not discussed is the CoilRenderer class (or in this screenshot, the ConcentricCoilRenderer class). This class used to inherit from the pipe class, but I have actually rewritten it from the ground up to provide much faster rendering and design-time response. The coil class does not really need all of the overhead of the Pipe class, so it only made sense to create a stripped-down and streamlined version. The results have drastically improved rendering time.

Unfortunately there are many things that no longer work as a result of the overhaul – they have been boarded and I will get to them as I have time:

  • Syncronization between design control clicks and the selection list / property list is now broken.
  • Copy / cut / paste / delete functionality is gone – and has not been reimplemented because I am still working out how I want to handle adding and removing new components.
  • Adding control points doesn’t currently work for the pipe class. This means that I can’t add new pipe sections, but again this gets back to how I want to add in new components.
  • The ConcentricPipe class is MIA. The massive overhaul of the pipe class has done some great things, but now I face a quandry around concentric pipes and how (if) I will implement them given the new architecture.
  • ValveRenderer functionality, which was always only half-implemented, is now only 1/4 implemented. They display as part of a PipeRenderer class, however the outlines are not rendererd properly.

So there you have it. More geekiness than you can shake a stick at. I’m sure this mean next to nothing to most of the folks that will read this post, but I felt like I had to get it out… And isn’t that half of what a blog is for? Exorcising those kinds of things from your mind?

Advertisements
Categories: BrewzNET, Tech geeks
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: