#include <Graphic3d_BndBox4f.hxx>
#include <SelectMgr_Selection.hxx>
-#include <SelectMgr_SelectionManager.hxx>
#include <Select3D_SensitivePoint.hxx>
#include <TopLoc_Location.hxx>
#include <AIS_InteractiveContext.hxx>
#include <OpenGl_PointSprite.hxx>
#include <OpenGl_VertexBuffer.hxx>
#include <OpenGl_ShaderManager.hxx>
-#include <OpenGl_VertexBufferCompat.hxx>
-#include <OpenGl_GraphicDriver.hxx>
#ifdef WIN32
# define FSEP "\\"
}
void SketcherPrs_SymbolPrs::HilightOwnerWithColor(const Handle(PrsMgr_PresentationManager3d)& thePM,
- const Quantity_NameOfColor theColor, const Handle(SelectMgr_EntityOwner)& theOwner)
+ const Quantity_NameOfColor theColor,
+ const Handle(SelectMgr_EntityOwner)& theOwner)
{
thePM->Color(this, theColor);
mySPoints.Clear();
for (int i = 1; i <= aNbVertex; i++) {
- Handle(SketcherPrs_SensitivePoint) aSP = new SketcherPrs_SensitivePoint(myOwner, myPntArray, i);
+ Handle(SketcherPrs_SensitivePoint) aSP = new SketcherPrs_SensitivePoint(myOwner, i);
mySPoints.Append(aSP);
}
}
aGroup->UserDraw(this, true);
+
+ // Disable frustum culling for this object by marking it as mutable
+ aGroup->Structure()->SetMutable(true);
//aGroup->AddPrimitiveArray(myPntArray);
}
if (theWorkspace->NamedStatus & OPENGL_NS_HIGHLIGHT)
aLineColor = theWorkspace->HighlightColor;
+ if (toHilight)
+ aCtx->core11fwd->glDisable (GL_LIGHTING);
+ else
+ aCtx->core11fwd->glEnable (GL_LIGHTING);
+
aCtx->SetColor4fv(*(const OpenGl_Vec4* )(aLineColor->rgb));
// Update selection position only if there is no selected object
// because it can corrupt selection of other objects
if ((GetContext()->NbCurrents() == 0) && (GetContext()->NbSelected() == 0))
- GetContext()->RecomputeSelectionOnly(this);
+ {
+ GetContext()->MainSelector()->RebuildSensitivesTree (this);
+ GetContext()->MainSelector()->RebuildObjectsTree (false);
+ }
}
}
}
+void SketcherPrs_SymbolPrs::BoundingBox (Bnd_Box& theBndBox)
+{
+ Select3D_BndBox3d aTmpBox;
+ for (Select3D_EntitySequenceIter aPntIter (mySPoints); aPntIter.More(); aPntIter.Next())
+ {
+ const Handle(Select3D_SensitiveEntity)& anEnt = aPntIter.Value();
+ aTmpBox.Combine (anEnt->BoundingBox());
+ }
+
+ theBndBox.Update (aTmpBox.CornerMin().x(), aTmpBox.CornerMin().y(), aTmpBox.CornerMin().z(),
+ aTmpBox.CornerMax().x(), aTmpBox.CornerMax().y(), aTmpBox.CornerMax().z());
+}
+