Ok, my TopoDS_Compound gets translated, even with this code:
gp_Trsf trans;
trans.SetTranslation(gp_Vec(x, y, z));
TopLoc_Location tpTrans(trans);
compoundGrandFather.Move(tpTrans);
or this one
gp_Trsf trans;
trans.SetTranslation(gp_Vec(x, y, z));
BRepBuilderAPI_Transform trsf (trans);
trsf.Perform(compoundGrandFather);
TopoDS_Shape result = trsf.Shape();
if (result.ShapeType() == TopAbs_COMPOUND)
compoundGrandFather= TopoDS::Compound(result);
I know it because if I create a new AIS_Shape and display it, I realize that compound has been translated.
So my original problem is not how to translate, but how to bound my AIS_Shape with the new compound translated or how to refresh AIS_Shape in the viewer.
I thought both objects were linked, and with "myAISContext->UpdateCurrentViewer();" instruction was enough.
Thanks in advance.