1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0024023: Revamp the OCCT Handle -- general

Missing headers added; includes of headers "Handle_...hxx" removed.

Misuses of macro Handle() and its use in typedefs corrected.

Alias classes Profile and Option are removed from IFSelect; ones defined in MoniTool are used directly.

Removed header files defining only Handle classes (except Image_PixMap_Handle.hxx)

Classes SelectMgr_BaseFrustum and now inherit Standard_Transient and can be manipulated by Handle (not NCollection_Handle)

Fixed reference-type local variable pointing to temporary object

Use of handle in conditional expressions and comparisons to NULL are replaced by call to method IsNull()
This commit is contained in:
abv
2015-06-30 10:25:12 +03:00
parent 35c0599a42
commit c04c30b3ee
311 changed files with 725 additions and 1175 deletions

View File

@@ -1927,8 +1927,6 @@ Handle(Geom_Circle) CreateCircle(gp_Pnt theCenter, Standard_Real theRadius)
return aCircle;
}
DEFINE_STANDARD_HANDLE(FilledCircle, AIS_InteractiveObject)
class FilledCircle : public AIS_InteractiveObject
{
public:
@@ -3134,7 +3132,7 @@ static int VComputeHLR (Draw_Interpretor& di,
// This class is a wrap for Graphic3d_ArrayOfPrimitives; it is used for
// manipulating and displaying such an array with AIS context
DEFINE_STANDARD_HANDLE(MyPArrayObject, AIS_InteractiveObject)
class MyPArrayObject : public AIS_InteractiveObject
{
@@ -4329,7 +4327,7 @@ static Standard_Integer VSelectionPrevious(Draw_Interpretor& /*theDI*/,
//purpose : creates Triangle based on AIS_InteractiveObject.
// This class was implemented for testing Select3D_SensitiveTriangle
//===========================================================================
DEFINE_STANDARD_HANDLE(Triangle, AIS_InteractiveObject)
class Triangle: public AIS_InteractiveObject
{
public:
@@ -4523,7 +4521,7 @@ static Standard_Integer VTriangle (Draw_Interpretor& /*di*/,
//class : SegmentObject
//purpose: creates segment based on AIS_InteractiveObject.
// This class was implemented for testing Select3D_SensitiveCurve
DEFINE_STANDARD_HANDLE(SegmentObject, AIS_InteractiveObject)
class SegmentObject: public AIS_InteractiveObject
{
public:
@@ -4902,7 +4900,7 @@ static Standard_Integer VShowFaceBoundary (Draw_Interpretor& /*di*/,
}
// This class is used for testing markers.
DEFINE_STANDARD_HANDLE(ViewerTest_MarkersArrayObject, AIS_InteractiveObject)
class ViewerTest_MarkersArrayObject : public AIS_InteractiveObject
{

View File

@@ -52,11 +52,12 @@ extern Standard_Boolean VDisplayAISObject (const TCollection_AsciiString& theNam
Standard_Boolean theReplaceIfExists = Standard_True);
extern ViewerTest_DoubleMapOfInteractiveAndName& GetMapOfAIS();
namespace {
//=======================================================================
//function : VUserDraw
//purpose : Checks availability and operation of UserDraw feature
//=======================================================================
DEFINE_STANDARD_HANDLE(VUserDrawObj, AIS_InteractiveObject)
class VUserDrawObj : public AIS_InteractiveObject
{
@@ -126,7 +127,6 @@ private:
friend class Element;
};
void VUserDrawObj::Compute(const Handle(PrsMgr_PresentationManager3d)& /*thePresentationManager*/,
const Handle(Prs3d_Presentation)& thePresentation,
const Standard_Integer /*theMode*/)
@@ -196,6 +196,8 @@ void VUserDrawObj::Render(const Handle(OpenGl_Workspace)& theWorkspace) const
glPopAttrib();
}
} // end of anonymous namespace
OpenGl_Element* VUserDrawCallback(const CALL_DEF_USERDRAW * theUserDraw)
{
Handle(VUserDrawObj) anIObj = (VUserDrawObj*)theUserDraw->Data;

View File

@@ -4568,8 +4568,6 @@ static int VZLayer (Draw_Interpretor& di, Standard_Integer argc, const char** ar
return 0;
}
DEFINE_STANDARD_HANDLE(V3d_TextItem, Visual3d_LayerItem)
// this class provides a presentation of text item in v3d view under-/overlayer
class V3d_TextItem : public Visual3d_LayerItem
{
@@ -4640,8 +4638,6 @@ void V3d_TextItem::RedrawLayerPrs ()
myLayer->DrawText (myText.ToCString (), myX1, myY1, myHeight);
}
DEFINE_STANDARD_HANDLE(V3d_LineItem, Visual3d_LayerItem)
// The Visual3d_LayerItem line item for "vlayerline" command
// it provides a presentation of line with user-defined
// linewidth, linetype and transparency.