Hi all,
I've always wanted to make a drawing program like Sketchup or AutoCAD, obviously just a lot simpler. I want to make this a long term project to be able to render the objects with a shade so that they seem 3D. I think I have been putting of this project because I don't really know how to accomplish the task of defining a curved object like a curve or ball.

My first idea was to create a structure similar to a point but it has X Y Z instead of only X and Y. Then i would create a class that represents a surface which would be an array of points(or lines) and then I would create a class that represents an object that would be an array of surfaces.

The problem with that design is that it doesn't support objects with curves like a ball. I could always divide it up into lots of smaller shapes like triangles or hexagons , but I don't really like that idea because it seems like a hack or cheating.

Any other ideas or suggestions ?