Set Selection for a circular edge and a circle, or linear edge and a line

I need to set selection to include the circular edges for a shape as well as a circle defined independently.

Say I Create an Arc and a Circle

gp_Dir Zaxis(0,0,1);
gp_Dir XvAxis(1,0,0);
gp_Pnt Origin(0,0,0);
gp_Ax2 Csys(Origin,Zaxis,XvAxis);
Handle(Geom_Circle) Circ = new Geom_Circle(Csys,300);
Handle(AIS_Circle) acircle = new AIS_Circle(Circ,0,3.1415,Standard_True);
myAISContext->Display(acircle);

BRepPrimAPI_MakeCylinder C(150.,100.);
aCylinder = new AIS_Shape(C.Shape());
myAISContext->SetMaterial(aCylinder,Graphic3d_NOM_PEWTER);
myAISContext->SetDisplayMode(aCylinder,1);
myAISContext->Display(aCylinder);

// And I want to allow the circular edges, and the circle to be selectable at the same time
// I have tried a number of things,
// the following seemed promising, but it filters out the circle

myAISContext->CloseAllContexts();
myAISContext->OpenLocalContext();
myAISContext->Activate(acircle,0);
myAISContext->Activate(aCylinder,2);
Handle(StdSelect_EdgeFilter) EdgeFilterCircle =
new StdSelect_EdgeFilter(StdSelect_Circle);
myAISContext->AddFilter(EdgeFilterCircle);

In my actual case I have a complicated shape with many different edge types rather than just circular...
Any Ideas?

christopher.m.muir@kodak.com's picture

Filters Work...This will do faces, verticies, points and line....

myAISContext->CloseAllContexts();
myAISContext->OpenLocalContext();
myAISContext->ActivateStandardMode(TopAbs_FACE);
myAISContext->ActivateStandardMode(TopAbs_VERTEX);
Handle(AIS_SignatureFilter) F1 = new
AIS_SignatureFilter(AIS_KOI_Datum,AIS_SD_Point);
myAISContext->AddFilter(F1);
Handle(AIS_SignatureFilter) F2 = new
AIS_SignatureFilter(AIS_KOI_Datum,AIS_SD_Line);
myAISContext->AddFilter(F2);