How can I create a list of AIS_InteractiveObjects ?

I want to "Display()" many InteractiveObject, like AIS_Line or AIS_Circle. Each of this AIS_InteractiveObject have some attached data set with "SetOwner()".

I have used AIS_MultipleConnectedInteractive() and I have appended the AIS_InteractiveObject with "Connect()".

I can see all the objects displayed but the "selection" of theese objects doesn't work !

Are there some other think I have to do ? Or are there some other method to do this ?

Svetlozar Kostadinov's picture

Currently, I'm experiencing the same behavior of AIS_MultipleConnectedInteractive. Probably you should set the selection mode and call Activate of the inter. object.

Marco Balen's picture

Hello Svetlozar,

I have seen in the source code of the AIS_MultipleConnectedInteractive and when the function for manage the "drawing" of the obj is this :

//=======================================================================
//function : Compute
//purpose :
//=======================================================================

void AIS_MultipleConnectedInteractive::Compute
(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,
const Handle(Prs3d_Presentation)& aPresentation,
const Standard_Integer aMode)

{
//cout<<"AIS_MultipleConnectedInteractive::Compute"<Clear(Standard_False);
aPresentation->RemoveAll();
if(HasConnection()) {
for (Standard_Integer I=1 ; I<= myReferences.Length(); I++) {
const Handle (AIS_InteractiveObject)& aReference = myReferences.Value (I);
aPresentationManager->Connect( this, aReference, aMode, aMode);
if(aPresentationManager->Presentation(aReference,aMode)->MustBeUpdated())
aPresentationManager->Update(aReference,aMode);
}
}

aPresentation->ReCompute();

the function for the selection is void :

//=======================================================================
//function : ComputeSelection
//purpose :
//=======================================================================
void AIS_MultipleConnectedInteractive::ComputeSelection(const Handle(SelectMgr_Selection)& /*aSel*/,
const Standard_Integer /*aMode*/)
{
}

I think that the selection of these objects is not implemented.
Do you think that I have to crete my own AIS_MultipleConnectedInteractive class and implement this function ?