void PreviewView2::showMarker(const double &X, const double &Y, const double &Z, const int &mType)
{
if (!aMarkerPrs->IsEmpty()) //is marker exists
{
if (aMarkerData.X == X && aMarkerData.Y == Y &&
aMarkerData.Z == Z && aMarkerData.mType == mType) //on the window, exit
return;
else
aMarkerPrs->Clear(true); //clear prs
}
//create marker
Quantity_Color aColor(0,1,0,Quantity_TOC_RGB);
Handle(Aspect_AspectMarker) aMarker = new Aspect_AspectMarker(aColor,(Aspect_TypeOfMarker)mType,1.);
//Create group
Handle(Graphic3d_Group) TheGroup = Prs3d_Root::CurrentGroup(aMarkerPrs);
TheGroup->SetPrimitivesAspect(aMarker);
//Save new values
aMarkerData.X = X; aMarkerData.Y = Y; aMarkerData.Z = Z; aMarkerData.mType = mType;
//Add point
Graphic3d_Vertex aGrVertex(X,Y,Z);
TheGroup->Marker(aGrVertex);
//Display prs
aMarkerPrs->Display();
myContext->UpdateCurrentViewer();
}