For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings

 

Need to speed up your development?
Have a look at our:

Samples & Tools

 

Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

Related pages

how do i select a point?

Anonymous's picture
Forums: 

I created a PointMesh class . This class helps to store and display Point Cloud vertices in a fast way. The method is as follows.

Handle(Graphic3d_Structure) theStructure = Handle(Graphic3d_Structure)::DownCast(aPresentation);
Handle(Graphic3d_Group) theGroup= new Graphic3d_Group(theStructure);
Handle(Prs3d_AspectMarker3d) asp;
asp = myDrawer->PointAspect();
asp->SetTypeOfMarker(Aspect_TOM_POINT);
theGroup->SetGroupPrimitivesAspect(asp->Aspect());
Graphic3d_Array1OfVertex& theArray = GetVertices(); //my points
theGroup->MarkerSet(theArray);

But I want to allow the user to select a point

As these point clouds are not part of TopoDS classes, but merely coordinates which I inserted into the display, the existing selection tools doesn't allow me to select a point and highlight it?

ComputeSelection (const Handle_SelectMgr_Selection& aSelection,const Standard_Integer /*aMode*/)
{
for ( Standard_Integer theIndex = 1 ; theIndex {
Handle_cmtkMesh_Vertex theVertex = theVertices.FindKey(theIndex);
Pnt P = theVertex->Point();
aSelection->Add(new Select3D_SensitivePoint(Ownr,P));
}

Now, if user select a point, all points selected.
I want to select only selected point.
But i don't know how to do i?