Wed, 06/10/2020 - 09:47
Hello everyone, I don't know if you use OCAF framework. During use, I am full of confusion, can you please help me explain by referring to the attached picture?
Attachment picture 1 is the result of viewing the XmlOcaf file through DFBrowser. Attachment picture 2 is a code snippet of me.
1)Attachment picture 1 mark 1 and mark 2 are two different spheres, mark 3 is a new shape obtained by Boolean addition,
I am referring to the code written by the ocaf example program, and one of the code fragments is shown in the attached picture 2. Why use the code at mark 3
of attachment picture 2, what is the role here?
void Generated (const TopoDS_Shape& newShape);
void Generated (const TopoDS_Shape& oldShape,
const TopoDS_Shape& newShape);void Delete (const TopoDS_Shape& oldShape);
void Modify (const TopoDS_Shape& oldShape, const TopoDS_Shape& newShape);
void Select (const TopoDS_Shape& aShape, const TopoDS_Shape& inShape);
What are these 5 functions for?
2)After the code at the mark 3 of the attachment picture 2, a shape at the mark 3 of the attachment picture 1 is obtained. However, in V3d_Viewer, the two spheres at
the mark 1 and mark 2 of the attachment picture 1 are still displayed,What do I need to do to make it disappear?
That is to say, when I pass the Boolean addition operation, how to delete the two shapes before the Boolean addition?
3)In order to solve the problem in 2), I added the Erase process at the mark 4 of the attachment picture 2, so that in V3d_Viewer, the two spheres at the mark 1
of the attachment picture 1 and the mark 2 at the attachment picture 1 really disappeared, reaching my Purpose, is this correct?
4)What is the role of the last <shapes><shapes> in the XmlOcaf format file? What is the data in this tag used for? Attachment picture 1
mark 4 SOLID: MODIFY What is the use? I refer to occt's document about ocaf, and found no explanation about it.
5)Can you provide me a TFunction_Driver for (Move, Zoom, Rotate) model and undo (Move, Zoom, Rotate) model?I defined one, refer to the attached picture 3.
This TFunction_Driver is normal in some cases and will crash in some cases. I wonder if there is any problem with this TFunction_Driver?
Can every shape operation (delete a face, add a point, etc.) to a model use this TFunction_Driver to realize the undo redo function?
What effect does this operation have on memory and file size?
6)I refer to occt's documentation about ocaf and find that it assigns a label to each child of a Shape. Is this necessary? What is the use of doing this?
Thank you all.