return shapes;
}
+#include <SelectMgr_Selection.hxx>
+#include <SelectMgr_ViewerSelector.hxx>
+#include <SelectMgr_SensitiveEntitySet.hxx>
+#include <BVH_PrimitiveSet.hxx>
+#include <BVH_QueueBuilder.hxx>
+class BVHB_dummy: public BVH_QueueBuilder<double,3>
+{
+ BVHB_dummy();
+ ~BVHB_dummy();
+public:
+ int* getNbThreads() {return &this->myNumOfThreads;}
+};
void HYDROGUI_ShapeBathymetry::UpdateWithColorScale( const Handle(AIS_ColorScale)& theColorScale )
{
if (!myCoords || getAISObjects().isEmpty())
myColors->SetValue( i, aColor );
}
Handle(HYDROGUI_BathymetryPrs) aPntCloud = Handle(HYDROGUI_BathymetryPrs)::DownCast( getAISObjects()[0] );
+ //const Handle(SelectMgr_Selection)& sel0 = aPntCloud->Selection(0);
+ //const Handle(SelectMgr_SensitiveEntity)& sens = sel0->Sensitive();
aPntCloud->SetPoints( myCoords, myColors );
getContext()->RecomputePrsOnly( aPntCloud, Standard_True );
+ Handle(StdSelect_ViewerSelector3d) VS = getContext()->MainSelector();
+ Handle(SelectMgr_ViewerSelector) VSD = Handle(SelectMgr_ViewerSelector)::DownCast(VS);
+ //size_t VSDsize = sizeof(VSD);
+ size_t VSDsize1 = sizeof(SelectMgr_ViewerSelector);
+ size_t mapSensSize = sizeof(SelectMgr_MapOfObjectSensitives);
+ SelectMgr_MapOfObjectSensitives* mapS = (SelectMgr_MapOfObjectSensitives*)((char*)VSD.get() + (VSDsize1 - mapSensSize));
+ try
+ {
+ mapS->Size();
+ NCollection_Handle<SelectMgr_SensitiveEntitySet>& anEntitySet = mapS->ChangeFind (aPntCloud);
+ NCollection_Handle<BVH_Builder<double,3>> BVH_Builder = anEntitySet->Builder();
+ BVH_QueueBuilder<double,3>* BVH_QB = dynamic_cast<BVH_QueueBuilder<double,3>*>(BVH_Builder.get());
+ int* nbt = static_cast<BVHB_dummy*>(BVH_QB)->getNbThreads();
+ if (*nbt == 1)
+ *nbt = 4;
+ }
+ catch (...)
+ {
+
+ }
+
+ //getContext()->LocalSelector();
+ //aPntCloud->ComputeSelection(sel0, 0);
getContext()->RecomputeSelectionOnly( aPntCloud );
}