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

0027772: Foundation Classes - define Standard_Boolean using C++ type "bool" instead of "unsigned int"

Code has been updated to remove no-op casts and implicit casts to Standard_Boolean.

Places of inproper use of Standard_Boolean instead of Standard_Integer
have been corrected:
- Bnd_Box, Bnd_Box2d
  Bit flags are now defined as private enum
- HLRAlgo_BiPoint, HLRAlgo_EdgesBlock, HLRBRep_EdgeData, HLRBRep_FaceData
  Bit flags are now defined as enum
- HLRAlgo_EdgeStatus, HLRBRep_BiPnt2D, HLRBRep_BiPoint
  Bit flags are now defined as bool fields
- HLRAlgo_PolyData
  Bit flags are now defined as Standard_Integer
- OSD_DirectoryIterator, OSD_FileIterator
  Boolean flag is now defined as Standard_Boolean
- ShapeAnalysis_Surface::SurfaceNewton()
  now returns Standard_Integer (values 0, 1 or 3)
- ChFi2d_FilletAlgo
  now uses TColStd_SequenceOfBoolean instead of TColStd_SequenceOfInteger
  for storing boolean flags

Method IFSelect_Dispatch::PacketsCount() has been dropped from interface.

ShapeFix_Solid::Status() has been fixed to decode requested status
instead of returning integer value.

TopOpeBRepBuild_Builder1 now defines map storing Standard_Boolean values
instead of Standard_Integer.

Persistence for Standard_Boolean type has been corrected
to keep backward compatibility:
- BinMDataStd, BinTools, FSD_BinaryFile

Broken Draw Harness commands vdisplaymode and verasemode have been removed.

BRepMesh_FastDiscretFace::initDataStructure() - workaround old gcc limitations

BRepMesh_IncrementalMesh::clear() - avoid ambiguity
This commit is contained in:
kgv
2016-08-25 14:58:51 +03:00
committed by abv
parent 3fe9ce0edd
commit dde6883382
211 changed files with 1324 additions and 2667 deletions

View File

@@ -6,7 +6,6 @@ HLRAlgo_Array1OfPISeg.hxx
HLRAlgo_Array1OfTData.hxx
HLRAlgo_BiPoint.cxx
HLRAlgo_BiPoint.hxx
HLRAlgo_BiPoint.lxx
HLRAlgo_Coincidence.cxx
HLRAlgo_Coincidence.hxx
HLRAlgo_Coincidence.lxx
@@ -15,10 +14,8 @@ HLRAlgo_EdgeIterator.hxx
HLRAlgo_EdgeIterator.lxx
HLRAlgo_EdgesBlock.cxx
HLRAlgo_EdgesBlock.hxx
HLRAlgo_EdgesBlock.lxx
HLRAlgo_EdgeStatus.cxx
HLRAlgo_EdgeStatus.hxx
HLRAlgo_EdgeStatus.lxx
HLRAlgo_HArray1OfPHDat.hxx
HLRAlgo_HArray1OfPINod.hxx
HLRAlgo_HArray1OfPISeg.hxx

View File

@@ -109,7 +109,7 @@ HLRAlgo_BiPoint::HLRAlgo_BiPoint (const Standard_Real X1,
const Standard_Real YT2,
const Standard_Real ZT2,
const Standard_Integer Index,
const Standard_Boolean flag)
const Standard_Integer flag)
{
PntX1 = X1;
PntY1 = Y1;
@@ -202,7 +202,7 @@ HLRAlgo_BiPoint::HLRAlgo_BiPoint (const Standard_Real X1,
const Standard_Integer i1,
const Standard_Integer i1p1,
const Standard_Integer i1p2,
const Standard_Boolean flag)
const Standard_Integer flag)
{
PntX1 = X1;
PntY1 = Y1;
@@ -305,7 +305,7 @@ HLRAlgo_BiPoint::HLRAlgo_BiPoint (const Standard_Real X1,
const Standard_Integer i2,
const Standard_Integer i2p1,
const Standard_Integer i2p2,
const Standard_Boolean flag)
const Standard_Integer flag)
{
PntX1 = X1;
PntY1 = Y1;

View File

@@ -34,69 +34,80 @@ public:
DEFINE_STANDARD_ALLOC
HLRAlgo_BiPoint();
HLRAlgo_BiPoint() {}
Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Boolean reg1, const Standard_Boolean regn, const Standard_Boolean outl, const Standard_Boolean intl);
Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Boolean flag);
Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Integer flag);
Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Integer i1, const Standard_Integer i1p1, const Standard_Integer i1p2, const Standard_Boolean reg1, const Standard_Boolean regn, const Standard_Boolean outl, const Standard_Boolean intl);
Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Integer i1, const Standard_Integer i1p1, const Standard_Integer i1p2, const Standard_Boolean flag);
Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Integer i1, const Standard_Integer i1p1, const Standard_Integer i1p2, const Standard_Integer flag);
Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Integer i1, const Standard_Integer i1p1, const Standard_Integer i1p2, const Standard_Integer i2, const Standard_Integer i2p1, const Standard_Integer i2p2, const Standard_Boolean reg1, const Standard_Boolean regn, const Standard_Boolean outl, const Standard_Boolean intl);
Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Integer i1, const Standard_Integer i1p1, const Standard_Integer i1p2, const Standard_Integer i2, const Standard_Integer i2p1, const Standard_Integer i2p2, const Standard_Boolean flag);
Standard_Boolean Rg1Line() const;
void Rg1Line (const Standard_Boolean B);
Standard_Boolean RgNLine() const;
void RgNLine (const Standard_Boolean B);
Standard_Boolean OutLine() const;
void OutLine (const Standard_Boolean B);
Standard_Boolean IntLine() const;
void IntLine (const Standard_Boolean B);
Standard_Boolean Hidden() const;
void Hidden (const Standard_Boolean B);
Standard_Address Indices() const;
Standard_Address Coordinates() const;
Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Integer i1, const Standard_Integer i1p1, const Standard_Integer i1p2, const Standard_Integer i2, const Standard_Integer i2p1, const Standard_Integer i2p2, const Standard_Integer flag);
Standard_Boolean Rg1Line() const { return (myIndices[9] & EMskRg1Line) != 0; }
void Rg1Line (const Standard_Boolean B)
{
if (B) myIndices[9] |= EMskRg1Line;
else myIndices[9] &= ~EMskRg1Line;
}
Standard_Boolean RgNLine() const { return (myIndices[9] & EMskRgNLine) != 0; }
void RgNLine (const Standard_Boolean B)
{
if (B) myIndices[9] |= EMskRgNLine;
else myIndices[9] &= ~EMskRgNLine;
}
Standard_Boolean OutLine() const { return (myIndices[9] & EMskOutLine) != 0; }
void OutLine (const Standard_Boolean B)
{
if (B) myIndices[9] |= EMskOutLine;
else myIndices[9] &= ~EMskOutLine;
}
Standard_Boolean IntLine() const { return (myIndices[9] & EMskIntLine) != 0; }
void IntLine (const Standard_Boolean B)
{
if (B) myIndices[9] |= EMskIntLine;
else myIndices[9] &= ~EMskIntLine;
}
Standard_Boolean Hidden() const { return (myIndices[9] & EMskHidden) != 0; }
void Hidden (const Standard_Boolean B)
{
if (B) myIndices[9] |= EMskHidden;
else myIndices[9] &= ~EMskHidden;
}
Standard_Address Indices() const { return const_cast<Standard_Integer* >(myIndices); }
Standard_Address Coordinates() const { return const_cast<Standard_Real* >(myCoordinates); }
protected:
enum EMskFlags
{
EMskRg1Line = 1,
EMskRgNLine = 2,
EMskOutLine = 4,
EMskIntLine = 8,
EMskHidden = 16
};
private:
Standard_Integer myIndices[10];
Standard_Real myCoordinates[12];
};
#include <HLRAlgo_BiPoint.lxx>
#endif // _HLRAlgo_BiPoint_HeaderFile

View File

@@ -1,141 +0,0 @@
// Created on: 1995-06-22
// Created by: Christophe MARION
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#define EMskRg1Line ((Standard_Boolean)1)
#define EMskRgNLine ((Standard_Boolean)2)
#define EMskOutLine ((Standard_Boolean)4)
#define EMskIntLine ((Standard_Boolean)8)
#define EMskHidden ((Standard_Boolean)16)
//=======================================================================
//function : HLRAlgo_BiPoint
//purpose :
//=======================================================================
inline HLRAlgo_BiPoint::HLRAlgo_BiPoint ()
{
}
//=======================================================================
//function : Rg1Line
//purpose :
//=======================================================================
inline Standard_Boolean HLRAlgo_BiPoint::Rg1Line () const
{ return (myIndices[9] & EMskRg1Line) != 0; }
//=======================================================================
//function : Rg1Line
//purpose :
//=======================================================================
inline void HLRAlgo_BiPoint::Rg1Line (const Standard_Boolean B)
{
if (B) myIndices[9] |= EMskRg1Line;
else myIndices[9] &= ~EMskRg1Line;
}
//=======================================================================
//function : RgNLine
//purpose :
//=======================================================================
inline Standard_Boolean HLRAlgo_BiPoint::RgNLine () const
{ return (myIndices[9] & EMskRgNLine) != 0; }
//=======================================================================
//function : RgNLine
//purpose :
//=======================================================================
inline void HLRAlgo_BiPoint::RgNLine (const Standard_Boolean B)
{
if (B) myIndices[9] |= EMskRgNLine;
else myIndices[9] &= ~EMskRgNLine;
}
//=======================================================================
//function : OutLine
//purpose :
//=======================================================================
inline Standard_Boolean HLRAlgo_BiPoint::OutLine () const
{ return (myIndices[9] & EMskOutLine) != 0; }
//=======================================================================
//function : OutLine
//purpose :
//=======================================================================
inline void HLRAlgo_BiPoint::OutLine (const Standard_Boolean B)
{
if (B) myIndices[9] |= EMskOutLine;
else myIndices[9] &= ~EMskOutLine;
}
//=======================================================================
//function : IntLine
//purpose :
//=======================================================================
inline Standard_Boolean HLRAlgo_BiPoint::IntLine () const
{ return (myIndices[9] & EMskIntLine) != 0; }
//=======================================================================
//function : IntLine
//purpose :
//=======================================================================
inline void HLRAlgo_BiPoint::IntLine (const Standard_Boolean B)
{
if (B) myIndices[9] |= EMskIntLine;
else myIndices[9] &= ~EMskIntLine;
}
//=======================================================================
//function : Hidden
//purpose :
//=======================================================================
inline Standard_Boolean HLRAlgo_BiPoint::Hidden () const
{ return (myIndices[9] & EMskHidden) != 0; }
//=======================================================================
//function : Hidden
//purpose :
//=======================================================================
inline void HLRAlgo_BiPoint::Hidden (const Standard_Boolean B)
{
if (B) myIndices[9] |= EMskHidden;
else myIndices[9] &= ~EMskHidden;
}
//=======================================================================
//function : Indices
//purpose :
//=======================================================================
inline Standard_Address HLRAlgo_BiPoint::Indices () const
{ return (Standard_Address)myIndices; }
//=======================================================================
//function : Coordinates
//purpose :
//=======================================================================
inline Standard_Address HLRAlgo_BiPoint::Coordinates () const
{ return (Standard_Address)myCoordinates; }

View File

@@ -26,7 +26,13 @@
//function : HLRAlgo_EdgeStatus
//purpose :
//=======================================================================
HLRAlgo_EdgeStatus::HLRAlgo_EdgeStatus ()
HLRAlgo_EdgeStatus::HLRAlgo_EdgeStatus()
: myStart (0.0),
myEnd (0.0),
myTolStart (0.0f),
myTolEnd (0.0f),
myAllHidden (false),
myAllVisible(false)
{
}
@@ -43,7 +49,8 @@ HLRAlgo_EdgeStatus::HLRAlgo_EdgeStatus (const Standard_Real Start,
myEnd (End),
myTolStart (TolStart),
myTolEnd (TolEnd),
myFlags (0)
myAllHidden (false),
myAllVisible(false)
{
ShowAll();
}

View File

@@ -56,9 +56,15 @@ public:
//! Edge is bounded by the interval <Start>, <End>
//! with the tolerances <TolStart>, <TolEnd>.
Standard_EXPORT void Initialize (const Standard_Real Start, const Standard_ShortReal TolStart, const Standard_Real End, const Standard_ShortReal TolEnd);
void Bounds (Standard_Real& Start, Standard_ShortReal& TolStart, Standard_Real& End, Standard_ShortReal& TolEnd) const;
void Bounds (Standard_Real& theStart, Standard_ShortReal& theTolStart, Standard_Real& theEnd, Standard_ShortReal& theTolEnd) const
{
theStart = myStart;
theTolStart = myTolStart;
theEnd = myEnd;
theTolEnd = myTolEnd;
}
Standard_EXPORT Standard_Integer NbVisiblePart() const;
Standard_EXPORT void VisiblePart (const Standard_Integer Index, Standard_Real& Start, Standard_ShortReal& TolStart, Standard_Real& End, Standard_ShortReal& TolEnd) const;
@@ -71,49 +77,39 @@ public:
//! or inside ) the boundary of the face the flag
//! <OnBoundary> is True ( or False ).
Standard_EXPORT void Hide (const Standard_Real Start, const Standard_ShortReal TolStart, const Standard_Real End, const Standard_ShortReal TolEnd, const Standard_Boolean OnFace, const Standard_Boolean OnBoundary);
//! Hide the whole Edge.
void HideAll();
void HideAll()
{
AllVisible(Standard_False);
AllHidden (Standard_True);
}
//! Show the whole Edge.
void ShowAll();
Standard_Boolean AllHidden() const;
void AllHidden (const Standard_Boolean B);
Standard_Boolean AllVisible() const;
void AllVisible (const Standard_Boolean B);
protected:
void ShowAll()
{
AllVisible(Standard_True);
AllHidden (Standard_False);
}
Standard_Boolean AllHidden() const { return myAllHidden; }
void AllHidden (const Standard_Boolean B) { myAllHidden = B; }
Standard_Boolean AllVisible() const { return myAllVisible; }
void AllVisible (const Standard_Boolean B) { myAllVisible = B; }
private:
Standard_Real myStart;
Standard_Real myEnd;
Standard_ShortReal myTolStart;
Standard_ShortReal myTolEnd;
Standard_Boolean myFlags;
Standard_Boolean myAllHidden;
Standard_Boolean myAllVisible;
Intrv_Intervals myVisibles;
};
#include <HLRAlgo_EdgeStatus.lxx>
#endif // _HLRAlgo_EdgeStatus_HeaderFile

View File

@@ -1,93 +0,0 @@
// Created on: 1992-02-18
// Created by: Christophe MARION
// Copyright (c) 1992-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#define EMaskAllHidden ((Standard_Boolean)1)
#define EMaskAllVisible ((Standard_Boolean)2)
//=======================================================================
//function : Bounds
//purpose :
//=======================================================================
inline void HLRAlgo_EdgeStatus::Bounds
( Standard_Real& Start, Standard_ShortReal& TolStart,
Standard_Real& End , Standard_ShortReal& TolEnd ) const
{
Start = myStart;
TolStart = myTolStart;
End = myEnd;
TolEnd = myTolEnd;
}
//=======================================================================
//function : HideAll
//purpose :
//=======================================================================
inline void HLRAlgo_EdgeStatus::HideAll()
{
AllVisible(Standard_False);
AllHidden (Standard_True);
}
//=======================================================================
//function : ShowAll
//purpose :
//=======================================================================
inline void HLRAlgo_EdgeStatus::ShowAll()
{
AllVisible(Standard_True);
AllHidden (Standard_False);
}
//=======================================================================
//function : AllHidden
//purpose :
//=======================================================================
inline Standard_Boolean HLRAlgo_EdgeStatus::AllHidden () const
{ return (myFlags & EMaskAllHidden) != 0; }
//=======================================================================
//function : AllHidden
//purpose :
//=======================================================================
inline void HLRAlgo_EdgeStatus::AllHidden (const Standard_Boolean B)
{
if (B) myFlags |= EMaskAllHidden;
else myFlags &= ~EMaskAllHidden;
}
//=======================================================================
//function : AllVisible
//purpose :
//=======================================================================
inline Standard_Boolean HLRAlgo_EdgeStatus::AllVisible () const
{ return (myFlags & EMaskAllVisible) != 0; }
//=======================================================================
//function : AllVisible
//purpose :
//=======================================================================
inline void HLRAlgo_EdgeStatus::AllVisible (const Standard_Boolean B)
{
if (B) myFlags |= EMaskAllVisible;
else myFlags &= ~EMaskAllVisible;
}

View File

@@ -49,65 +49,81 @@ class HLRAlgo_EdgesBlock : public MMgt_TShared
public:
//! Create a Block of Edges for a wire.
Standard_EXPORT HLRAlgo_EdgesBlock(const Standard_Integer NbEdges);
Standard_Integer NbEdges() const;
void Edge (const Standard_Integer I, const Standard_Integer EI);
Standard_Integer Edge (const Standard_Integer I) const;
void Orientation (const Standard_Integer I, const TopAbs_Orientation Or);
TopAbs_Orientation Orientation (const Standard_Integer I) const;
Standard_Boolean OutLine (const Standard_Integer I) const;
void OutLine (const Standard_Integer I, const Standard_Boolean B);
Standard_Boolean Internal (const Standard_Integer I) const;
void Internal (const Standard_Integer I, const Standard_Boolean B);
Standard_Boolean Double (const Standard_Integer I) const;
void Double (const Standard_Integer I, const Standard_Boolean B);
Standard_Boolean IsoLine (const Standard_Integer I) const;
void IsoLine (const Standard_Integer I, const Standard_Boolean B);
Standard_Integer NbEdges() const { return myEdges.Upper(); }
void Edge (const Standard_Integer I, const Standard_Integer EI) { myEdges(I) = EI; }
Standard_Integer Edge (const Standard_Integer I) const { return myEdges(I); }
void Orientation (const Standard_Integer I, const TopAbs_Orientation Or)
{
myFlags(I) &= ~EMaskOrient;
myFlags(I) |= (Or & EMaskOrient);
}
TopAbs_Orientation Orientation (const Standard_Integer I) const
{
return ((TopAbs_Orientation)(myFlags(I) & EMaskOrient));
}
Standard_Boolean OutLine (const Standard_Integer I) const { return (myFlags(I) & EMaskOutLine) != 0; }
void OutLine (const Standard_Integer I, const Standard_Boolean B)
{
if (B) myFlags(I) |= EMaskOutLine;
else myFlags(I) &= ~EMaskOutLine;
}
Standard_Boolean Internal (const Standard_Integer I) const { return (myFlags(I) & EMaskInternal) != 0; }
void Internal (const Standard_Integer I, const Standard_Boolean B)
{
if (B) myFlags(I) |= EMaskInternal;
else myFlags(I) &= ~EMaskInternal;
}
Standard_Boolean Double (const Standard_Integer I) const { return (myFlags(I) & EMaskDouble) != 0; }
void Double (const Standard_Integer I, const Standard_Boolean B)
{
if (B) myFlags(I) |= EMaskDouble;
else myFlags(I) &= ~EMaskDouble;
}
Standard_Boolean IsoLine (const Standard_Integer I) const { return (myFlags(I) & EMaskIsoLine) != 0; }
void IsoLine (const Standard_Integer I, const Standard_Boolean B)
{
if (B) myFlags(I) |= EMaskIsoLine;
else myFlags(I) &= ~EMaskIsoLine;
}
Standard_EXPORT void UpdateMinMax (const Standard_Address TotMinMax);
Standard_Address MinMax() const;
Standard_Address MinMax() const { return (Standard_Address )&myMinMax; }
DEFINE_STANDARD_RTTIEXT(HLRAlgo_EdgesBlock,MMgt_TShared)
protected:
enum EMskFlags
{
EMaskOrient = 15,
EMaskOutLine = 16,
EMaskInternal = 32,
EMaskDouble = 64,
EMaskIsoLine = 128
};
private:
TColStd_Array1OfInteger myEdges;
TColStd_Array1OfBoolean myFlags;
TColStd_Array1OfInteger myFlags;
Standard_Integer myMinMax[16];
};
#include <HLRAlgo_EdgesBlock.lxx>
#endif // _HLRAlgo_EdgesBlock_HeaderFile

View File

@@ -1,179 +0,0 @@
// Created on: 1995-04-20
// Created by: Christophe MARION
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#define EMaskOrient ((Standard_Boolean)15)
#define EMaskOutLine ((Standard_Boolean)16)
#define EMaskInternal ((Standard_Boolean)32)
#define EMaskDouble ((Standard_Boolean)64)
#define EMaskIsoLine ((Standard_Boolean)128)
//=======================================================================
//function : NbEdges
//purpose :
//=======================================================================
inline Standard_Integer HLRAlgo_EdgesBlock::NbEdges() const
{
return myEdges.Upper();
}
//=======================================================================
//function : Edge
//purpose :
//=======================================================================
inline void HLRAlgo_EdgesBlock::Edge (const Standard_Integer I,
const Standard_Integer EI)
{
myEdges(I) = EI;
}
//=======================================================================
//function : Edge
//purpose :
//=======================================================================
inline Standard_Integer
HLRAlgo_EdgesBlock::Edge (const Standard_Integer I) const
{
return myEdges(I);
}
//=======================================================================
//function : Orientation
//purpose :
//=======================================================================
inline TopAbs_Orientation
HLRAlgo_EdgesBlock::Orientation (const Standard_Integer I) const
{
return ((TopAbs_Orientation)(myFlags(I) & EMaskOrient));
}
//=======================================================================
//function : Orientation
//purpose :
//=======================================================================
inline void
HLRAlgo_EdgesBlock::Orientation (const Standard_Integer I,
const TopAbs_Orientation Or)
{
myFlags(I) &= ~EMaskOrient;
myFlags(I) |= (((Standard_Boolean)Or) & EMaskOrient);
}
//=======================================================================
//function : OutLine
//purpose :
//=======================================================================
inline Standard_Boolean
HLRAlgo_EdgesBlock::OutLine (const Standard_Integer I) const
{
return (myFlags(I) & EMaskOutLine) != 0;
}
//=======================================================================
//function : OutLine
//purpose :
//=======================================================================
inline void
HLRAlgo_EdgesBlock::OutLine (const Standard_Integer I,
const Standard_Boolean B)
{
if (B) myFlags(I) |= EMaskOutLine;
else myFlags(I) &= ~EMaskOutLine;
}
//=======================================================================
//function : Internal
//purpose :
//=======================================================================
inline Standard_Boolean
HLRAlgo_EdgesBlock::Internal (const Standard_Integer I) const
{
return (myFlags(I) & EMaskInternal) != 0;
}
//=======================================================================
//function : Internal
//purpose :
//=======================================================================
inline void
HLRAlgo_EdgesBlock::Internal (const Standard_Integer I,
const Standard_Boolean B)
{
if (B) myFlags(I) |= EMaskInternal;
else myFlags(I) &= ~EMaskInternal;
}
//=======================================================================
//function : Double
//purpose :
//=======================================================================
inline Standard_Boolean
HLRAlgo_EdgesBlock::Double (const Standard_Integer I) const
{
return (myFlags(I) & EMaskDouble) != 0;
}
//=======================================================================
//function : Double
//purpose :
//=======================================================================
inline void HLRAlgo_EdgesBlock::Double (const Standard_Integer I,
const Standard_Boolean B)
{
if (B) myFlags(I) |= EMaskDouble;
else myFlags(I) &= ~EMaskDouble;
}
//=======================================================================
//function : IsoLine
//purpose :
//=======================================================================
inline Standard_Boolean
HLRAlgo_EdgesBlock::IsoLine (const Standard_Integer I) const
{
return (myFlags(I) & EMaskIsoLine) != 0;
}
//=======================================================================
//function : IsoLine
//purpose :
//=======================================================================
inline void HLRAlgo_EdgesBlock::IsoLine (const Standard_Integer I,
const Standard_Boolean B)
{
if (B) myFlags(I) |= EMaskIsoLine;
else myFlags(I) &= ~EMaskIsoLine;
}
//=======================================================================
//function : MinMax
//purpose :
//=======================================================================
inline Standard_Address HLRAlgo_EdgesBlock::MinMax () const
{ return (Standard_Address)&myMinMax; }

View File

@@ -30,15 +30,15 @@
IMPLEMENT_STANDARD_RTTIEXT(HLRAlgo_PolyAlgo,MMgt_TShared)
#define EMskGrALin1 ((Standard_Boolean) 8)
#define EMskGrALin2 ((Standard_Boolean) 16)
#define EMskGrALin3 ((Standard_Boolean) 32)
#define FMskHiding ((Standard_Boolean) 256)
#define EMskGrALin1 ((Standard_Integer) 8)
#define EMskGrALin2 ((Standard_Integer) 16)
#define EMskGrALin3 ((Standard_Integer) 32)
#define FMskHiding ((Standard_Integer) 256)
#define TriNode1 ((Standard_Integer*)TriIndices)[0]
#define TriNode2 ((Standard_Integer*)TriIndices)[1]
#define TriNode3 ((Standard_Integer*)TriIndices)[2]
#define TriFlags ((Standard_Boolean*)TriIndices)[3]
#define TriFlags ((Standard_Integer*)TriIndices)[3]
#define XV1 myRealPtr[0]
#define XV2 myRealPtr[1]

View File

@@ -14,21 +14,18 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef No_Exception
//#define No_Exception
#endif
#include <HLRAlgo_PolyData.hxx>
#include <HLRAlgo_EdgeStatus.hxx>
#include <HLRAlgo_PolyData.hxx>
#include <Standard_Type.hxx>
IMPLEMENT_STANDARD_RTTIEXT(HLRAlgo_PolyData,MMgt_TShared)
#define EMskGrALin1 ((Standard_Boolean) 8)
#define EMskGrALin2 ((Standard_Boolean) 16)
#define EMskGrALin3 ((Standard_Boolean) 32)
#define FMskHiding ((Standard_Boolean) 256)
#define EMskGrALin1 ((Standard_Integer) 8)
#define EMskGrALin2 ((Standard_Integer) 16)
#define EMskGrALin3 ((Standard_Integer) 32)
#define FMskHiding ((Standard_Integer) 256)
#define FIndex myIndices[0]
#define MinFac myIndices[1]
@@ -37,15 +34,7 @@ IMPLEMENT_STANDARD_RTTIEXT(HLRAlgo_PolyData,MMgt_TShared)
#define TriNode1 ((Standard_Integer*)TriIndices)[0]
#define TriNode2 ((Standard_Integer*)TriIndices)[1]
#define TriNode3 ((Standard_Integer*)TriIndices)[2]
#define TriFlags ((Standard_Boolean*)TriIndices)[3]
#define Crossing ((Standard_Boolean*)BooleanPtr)[0]
#define HideBefore ((Standard_Boolean*)BooleanPtr)[1]
#define TrFlags ((Standard_Boolean*)BooleanPtr)[2]
#define Crosi BooleanPtr[0]
#define HdBef BooleanPtr[1]
#define TFlag BooleanPtr[2]
#define TriFlags ((Standard_Integer*)TriIndices)[3]
#define PntX1 ((Standard_Real*)Coordinates)[ 0]
#define PntY1 ((Standard_Real*)Coordinates)[ 1]
@@ -201,7 +190,10 @@ void HLRAlgo_PolyData::HideByPolyData (const Standard_Address Coordinates,
HLRAlgo_Array1OfPHDat& PHDat = myHPHDat->ChangeArray1();
const HLRAlgo_Array1OfTData& TData = myHTData->Array1();
Standard_Real d1,d2;
Standard_Boolean NotConnex,BooleanPtr[3];
Standard_Boolean NotConnex = Standard_False;
Standard_Boolean isCrossing = Standard_False;
Standard_Boolean toHideBefore = Standard_False;
Standard_Integer TFlag = 0;
Standard_Address PlanPtr,MinMaxPtr,TriIndices;
Standard_Integer h,h2 = PHDat.Upper();
HLRAlgo_PolyHidingData* PH = &(PHDat(1));
@@ -237,8 +229,8 @@ void HLRAlgo_PolyData::HideByPolyData (const Standard_Address Coordinates,
if (d1 > Tolerance) {
if (d2 < -Tolerance) {
Param = d1 / ( d1 - d2 );
HdBef = Standard_False;
Crosi = Standard_True;
toHideBefore = Standard_False;
isCrossing = Standard_True;
TFlag = TriFlags;
const TColgp_Array1OfXYZ& Nodes = myHNodes->Array1();
const gp_XYZ & P1 = Nodes(TriNode1);
@@ -250,18 +242,14 @@ void HLRAlgo_PolyData::HideByPolyData (const Standard_Address Coordinates,
YV2 = P2.Y();
XV3 = P3.X();
YV3 = P3.Y();
HideByOneTriangle(Coordinates,
RealPtr,
&BooleanPtr,
PlanPtr,
status);
hideByOneTriangle (Coordinates, RealPtr, isCrossing, toHideBefore, TFlag, status);
}
}
else if (d1 < -Tolerance) {
if (d2 > Tolerance) {
Param = d1 / ( d1 - d2 );
HdBef = Standard_True;
Crosi = Standard_True;
toHideBefore = Standard_True;
isCrossing = Standard_True;
TFlag = TriFlags;
const TColgp_Array1OfXYZ& Nodes = myHNodes->Array1();
const gp_XYZ & P1 = Nodes(TriNode1);
@@ -273,14 +261,10 @@ void HLRAlgo_PolyData::HideByPolyData (const Standard_Address Coordinates,
YV2 = P2.Y();
XV3 = P3.X();
YV3 = P3.Y();
HideByOneTriangle(Coordinates,
RealPtr,
&BooleanPtr,
PlanPtr,
status);
hideByOneTriangle (Coordinates, RealPtr, isCrossing, toHideBefore, TFlag, status);
}
else {
Crosi = Standard_False;
isCrossing = Standard_False;
TFlag = TriFlags;
const TColgp_Array1OfXYZ& Nodes = myHNodes->Array1();
const gp_XYZ & P1 = Nodes(TriNode1);
@@ -292,15 +276,11 @@ void HLRAlgo_PolyData::HideByPolyData (const Standard_Address Coordinates,
YV2 = P2.Y();
XV3 = P3.X();
YV3 = P3.Y();
HideByOneTriangle(Coordinates,
RealPtr,
&BooleanPtr,
PlanPtr,
status);
hideByOneTriangle (Coordinates, RealPtr, isCrossing, toHideBefore, TFlag, status);
}
}
else if (d2 < -Tolerance) {
Crosi = Standard_False;
isCrossing = Standard_False;
TFlag = TriFlags;
const TColgp_Array1OfXYZ& Nodes = myHNodes->Array1();
const gp_XYZ & P1 = Nodes(TriNode1);
@@ -312,11 +292,7 @@ void HLRAlgo_PolyData::HideByPolyData (const Standard_Address Coordinates,
YV2 = P2.Y();
XV3 = P3.X();
YV3 = P3.Y();
HideByOneTriangle(Coordinates,
RealPtr,
&BooleanPtr,
PlanPtr,
status);
hideByOneTriangle(Coordinates, RealPtr, isCrossing, toHideBefore, TFlag, status);
}
}
}
@@ -326,16 +302,16 @@ void HLRAlgo_PolyData::HideByPolyData (const Standard_Address Coordinates,
}
//=======================================================================
//function : HideByOneTriangle
//purpose :
//function : hideByOneTriangle
//purpose :
//=======================================================================
void HLRAlgo_PolyData::
HideByOneTriangle (const Standard_Address Coordinates,
const Standard_Address RealPtr,
const Standard_Address BooleanPtr,
const Standard_Address ,
HLRAlgo_EdgeStatus& status)
void HLRAlgo_PolyData::hideByOneTriangle (const Standard_Address Coordinates,
const Standard_Address RealPtr,
const Standard_Boolean Crossing,
const Standard_Boolean HideBefore,
const Standard_Integer TrFlags,
HLRAlgo_EdgeStatus& status)
{
Standard_Boolean o[2],m[2];
Standard_Integer l,n1=0,nn1,nn2,npi=-1,npiRej=0;

View File

@@ -70,35 +70,25 @@ public:
Standard_Address Indices();
DEFINE_STANDARD_RTTIEXT(HLRAlgo_PolyData,MMgt_TShared)
protected:
private:
//! evident.
Standard_EXPORT void HideByOneTriangle (const Standard_Address Coordinates, const Standard_Address RealPtr, const Standard_Address BooleanPtr, const Standard_Address PlanPtr, HLRAlgo_EdgeStatus& status);
void hideByOneTriangle (const Standard_Address Coordinates,
const Standard_Address RealPtr,
const Standard_Boolean Crossing,
const Standard_Boolean HideBefore,
const Standard_Integer TrFlags,
HLRAlgo_EdgeStatus& status);
Standard_Integer myIndices[3];
Handle(TColgp_HArray1OfXYZ) myHNodes;
Handle(HLRAlgo_HArray1OfTData) myHTData;
Handle(HLRAlgo_HArray1OfPHDat) myHPHDat;
};
#include <HLRAlgo_PolyData.lxx>
#endif // _HLRAlgo_PolyData_HeaderFile