Jump to content
  • Advertisement
  • entries
  • comments
  • views

Opus New features

Sign in to follow this  



Wow. Regular journal updates at the moment. Nice to feel motivated again actually.

The tool panel on the right-hand side of the application always contains a vertical stack of controls and I wanted to be able to show/hide them easily so I've just taken some inspiration from Qt's layout system and created a fairly simple VerticalLayout class. I just add the controls to this layout when I construct the panel, just giving them a starting Y value of zero.

When I call the layout's Update() method, it runs through and arranges the controls vertically. There is also an AddSpace(int) method with a default height.

The layout can also show and hide controls and spaces so it is pretty trivial now to make controls appear and disappear with the layout rearranging the other controls nicely.

So, for example, in the screenshot above, the Create Face and Reverse Vertex Order buttons now appear and disappear on a contextual basis. I prefer this to disabled buttons and I don't have an easy way to draw my custom buttons in a disabled state anyway so this solves two problems really.

Even if you never plan to use Qt, I'd seriously recommend taking a look at the layout system it uses. If I'd been writing this application from scratch, or if I ever start a new Win32 application again, the very first thing I'll do is implement a recursive layout system. For such a simple concept, it is quite remarkable how it takes away all the pain of GUI design without a form designer. It probably isn't just Qt that has this, but it's the first place I've used it so extensively.

I've also implemented a Snap Together command in the new Vertices menu that snaps groups of vertices (you guessed it) together to the average centre point of the selection. I've a few more vertex actions to implement (snap to cursor, welding, unwelding etc) but nothing very exciting.
Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!