I would like to develop a rather simple modeling tool similar to SketchUp but less functionality of course. I've read the tutorials, user guides, code samples and already played around with code but I have the impression that I still don't understand some major concept, that is changing a shape after it has been created. For example you want to move a face in the direction of its normal while connected faces that share the same vertices change accordingly (if possible). All tutorials only show how you can build a shape from scratch assuming you know all parameters of the shape.
I tried to make a simple example by moving one face of a box. So I played around with BRepBuilderAPI_Transform and wanted to move a face or the 4 vertices, but none of the results were satisfying. Either the whole box is moved, or copied and moved, or I only copied and moved the face/vertex.
Another thing that is confusing me is that you always get a copy of TopoDS_Shape after any modeling operation, but I want to change the original shape, since this is the one I have displayed to the user though my AiContext. Maybe that's related to my comprehension problem.
Does OCC actually work like this or do I have to build a shape from scratch anyway when I want to move one face?