I created two shape,named ashape1 and ashape2.
Now I select one,for example:
MyAisContext->Current()
Now I have some problems:
Is the selection the ashape1 or the ashape2?
Rob Bachrach Thu, 07/27/2006 - 15:12
Current() returns an AIS_InteractiveObject. So, you need to downcast it to an AIS_Shape and get the original shape from it:
If you want to see if aShape (that you got using Rob code) is either one of your ashape1 or ashape2, you'll need the function
IsEqual() (member of TopoDS_Shape)
if(aShape.IsEqual(ashape1))
//The shape selected is ashape1
else if(aShape.IsEqual(ashape2))
//The shape selected is ashape2
If you have an OpenLocalContext
i.e. myAIS_InteractiveContext->OpenLocalContext(),
you may also use myAIS_InteractiveContext->SelectedShape(), which return a TopoDS_Shape.
Thu, 07/27/2006 - 15:12
Current() returns an AIS_InteractiveObject. So, you need to downcast it to an AIS_Shape and get the original shape from it:
aIO = MyAisContext->Current();
aAS = Handle(AIS_Shape)::DownCast(aIO);
aShape = aAS->Shape();
Thu, 07/27/2006 - 19:03
Hello,
If you want to see if aShape (that you got using Rob code) is either one of your ashape1 or ashape2, you'll need the function
IsEqual() (member of TopoDS_Shape)
if(aShape.IsEqual(ashape1))
//The shape selected is ashape1
else if(aShape.IsEqual(ashape2))
//The shape selected is ashape2
If you have an OpenLocalContext
i.e. myAIS_InteractiveContext->OpenLocalContext(),
you may also use myAIS_InteractiveContext->SelectedShape(), which return a TopoDS_Shape.
I hope this answer your question.
Miguel