I have a TopoDS_Shape, which I am displaying with this function:
void Display(TopoDS_Shape& bShape)
Handle(AIS_Shape) ais = new AIS_Shape(bShape);
anAIScontext->SetMaterial(ais, Graphic3d_NOM_GOLD, Standard_False);
HOWEVER, I find the call " Handle(AIS_Shape) ais = new AIS_Shape(bShape);" alters the geometry of bShape!
I get the bounding box of bShape with:
aBounds.Get(aXmin, aYmin, aZmin, aXmax, aYmax, aZmax);
If get the bounding box before calling my Display() function, then after calling it, I get different results!
The difference is not huge, but bigger than it should be , e.g aZmax is 20.000001 before calling Display() ,and 20.003 after .
This surprises me a lot. I thought the "AIS_Shape(bShape)" function would just copy data from bShape, not alter it.
I want to rely on the data in bShape, even after it has been displayed.
Can anyone explain what is going on?
Or am I misunderstanding how things work?