Coding - Refactor HArray and HSequence Definitions (#962)

- Replaced custom DEFINE_HARRAY1 and DEFINE_HSEQUENCE macros with typedefs to NCollection_HArray1 and NCollection_HSequence for various data types across multiple files.
- Updated header files in the following modules:
  - HLRAlgo
  - TKShHealing
  - TKBRep
  - TKG2d
  - TKG3d
  - TKGeomBase
  - TKMeshVS
  - TKV3d
- This change improves consistency and reduces the complexity of the codebase by utilizing the standard NCollection templates.
This commit is contained in:
Pasukhin Dmitry
2025-12-28 11:42:24 +00:00
committed by GitHub
parent 4c975e6a62
commit b5d2fc73fb
289 changed files with 1133 additions and 1341 deletions

View File

@@ -19,8 +19,6 @@
#include <Bnd_Box.hxx>
#include <Bnd_Array1OfBox.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(Bnd_HArray1OfBox, Bnd_Array1OfBox)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Bnd_Box> Bnd_HArray1OfBox;
#endif

View File

@@ -18,8 +18,6 @@
#define Bnd_HArray1OfBox2d_HeaderFile
#include <Bnd_Array1OfBox2d.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(Bnd_HArray1OfBox2d, Bnd_Array1OfBox2d)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Bnd_Box2d> Bnd_HArray1OfBox2d;
#endif

View File

@@ -18,8 +18,6 @@
#define Bnd_HArray1OfSphere_HeaderFile
#include <Bnd_Array1OfSphere.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(Bnd_HArray1OfSphere, Bnd_Array1OfSphere)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Bnd_Sphere> Bnd_HArray1OfSphere;
#endif

View File

@@ -18,8 +18,6 @@
#define Poly_HArray1OfTriangle_HeaderFile
#include <Poly_Array1OfTriangle.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(Poly_HArray1OfTriangle, Poly_Array1OfTriangle)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Poly_Triangle> Poly_HArray1OfTriangle;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Circ2d.hxx>
#include <TColgp_Array1OfCirc2d.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColgp_HArray1OfCirc2d, TColgp_Array1OfCirc2d)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<gp_Circ2d> TColgp_HArray1OfCirc2d;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Dir.hxx>
#include <TColgp_Array1OfDir.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColgp_HArray1OfDir, TColgp_Array1OfDir)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<gp_Dir> TColgp_HArray1OfDir;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Dir2d.hxx>
#include <TColgp_Array1OfDir2d.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColgp_HArray1OfDir2d, TColgp_Array1OfDir2d)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<gp_Dir2d> TColgp_HArray1OfDir2d;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Lin2d.hxx>
#include <TColgp_Array1OfLin2d.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColgp_HArray1OfLin2d, TColgp_Array1OfLin2d)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<gp_Lin2d> TColgp_HArray1OfLin2d;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Pnt.hxx>
#include <TColgp_Array1OfPnt.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColgp_HArray1OfPnt, TColgp_Array1OfPnt)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<gp_Pnt> TColgp_HArray1OfPnt;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Pnt2d.hxx>
#include <TColgp_Array1OfPnt2d.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColgp_HArray1OfPnt2d, TColgp_Array1OfPnt2d)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<gp_Pnt2d> TColgp_HArray1OfPnt2d;
#endif

View File

@@ -18,8 +18,6 @@
#define TColgp_HArray1OfVec_HeaderFile
#include <TColgp_Array1OfVec.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColgp_HArray1OfVec, TColgp_Array1OfVec)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<gp_Vec> TColgp_HArray1OfVec;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Vec2d.hxx>
#include <TColgp_Array1OfVec2d.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColgp_HArray1OfVec2d, TColgp_Array1OfVec2d)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<gp_Vec2d> TColgp_HArray1OfVec2d;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_XY.hxx>
#include <TColgp_Array1OfXY.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColgp_HArray1OfXY, TColgp_Array1OfXY)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<gp_XY> TColgp_HArray1OfXY;
#endif

View File

@@ -18,8 +18,6 @@
#define TColgp_HArray1OfXYZ_HeaderFile
#include <TColgp_Array1OfXYZ.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColgp_HArray1OfXYZ, TColgp_Array1OfXYZ)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<gp_XYZ> TColgp_HArray1OfXYZ;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Circ2d.hxx>
#include <TColgp_Array2OfCirc2d.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColgp_HArray2OfCirc2d, TColgp_Array2OfCirc2d)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<gp_Circ2d> TColgp_HArray2OfCirc2d;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Dir.hxx>
#include <TColgp_Array2OfDir.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColgp_HArray2OfDir, TColgp_Array2OfDir)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<gp_Dir> TColgp_HArray2OfDir;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Dir2d.hxx>
#include <TColgp_Array2OfDir2d.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColgp_HArray2OfDir2d, TColgp_Array2OfDir2d)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<gp_Dir2d> TColgp_HArray2OfDir2d;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Lin2d.hxx>
#include <TColgp_Array2OfLin2d.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColgp_HArray2OfLin2d, TColgp_Array2OfLin2d)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<gp_Lin2d> TColgp_HArray2OfLin2d;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Pnt.hxx>
#include <TColgp_Array2OfPnt.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColgp_HArray2OfPnt, TColgp_Array2OfPnt)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<gp_Pnt> TColgp_HArray2OfPnt;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Pnt2d.hxx>
#include <TColgp_Array2OfPnt2d.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColgp_HArray2OfPnt2d, TColgp_Array2OfPnt2d)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<gp_Pnt2d> TColgp_HArray2OfPnt2d;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Vec.hxx>
#include <TColgp_Array2OfVec.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColgp_HArray2OfVec, TColgp_Array2OfVec)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<gp_Vec> TColgp_HArray2OfVec;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Vec2d.hxx>
#include <TColgp_Array2OfVec2d.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColgp_HArray2OfVec2d, TColgp_Array2OfVec2d)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<gp_Vec2d> TColgp_HArray2OfVec2d;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_XY.hxx>
#include <TColgp_Array2OfXY.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColgp_HArray2OfXY, TColgp_Array2OfXY)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<gp_XY> TColgp_HArray2OfXY;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_XYZ.hxx>
#include <TColgp_Array2OfXYZ.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColgp_HArray2OfXYZ, TColgp_Array2OfXYZ)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<gp_XYZ> TColgp_HArray2OfXYZ;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Dir.hxx>
#include <TColgp_SequenceOfDir.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColgp_HSequenceOfDir, TColgp_SequenceOfDir)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<gp_Dir> TColgp_HSequenceOfDir;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Dir2d.hxx>
#include <TColgp_SequenceOfDir2d.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColgp_HSequenceOfDir2d, TColgp_SequenceOfDir2d)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<gp_Dir2d> TColgp_HSequenceOfDir2d;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Pnt.hxx>
#include <TColgp_SequenceOfPnt.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColgp_HSequenceOfPnt, TColgp_SequenceOfPnt)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<gp_Pnt> TColgp_HSequenceOfPnt;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Pnt2d.hxx>
#include <TColgp_SequenceOfPnt2d.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColgp_HSequenceOfPnt2d, TColgp_SequenceOfPnt2d)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<gp_Pnt2d> TColgp_HSequenceOfPnt2d;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Vec.hxx>
#include <TColgp_SequenceOfVec.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColgp_HSequenceOfVec, TColgp_SequenceOfVec)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<gp_Vec> TColgp_HSequenceOfVec;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_Vec2d.hxx>
#include <TColgp_SequenceOfVec2d.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColgp_HSequenceOfVec2d, TColgp_SequenceOfVec2d)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<gp_Vec2d> TColgp_HSequenceOfVec2d;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_XY.hxx>
#include <TColgp_SequenceOfXY.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColgp_HSequenceOfXY, TColgp_SequenceOfXY)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<gp_XY> TColgp_HSequenceOfXY;
#endif

View File

@@ -19,8 +19,6 @@
#include <gp_XYZ.hxx>
#include <TColgp_SequenceOfXYZ.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColgp_HSequenceOfXYZ, TColgp_SequenceOfXYZ)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<gp_XYZ> TColgp_HSequenceOfXYZ;
#endif

View File

@@ -25,10 +25,7 @@ set(OCCT_NCollection_FILES
NCollection_DataMap.hxx
NCollection_DefaultHasher.hxx
NCollection_DefineAlloc.hxx
NCollection_DefineHArray1.hxx
NCollection_DefineHArray2.hxx
NCollection_DefineHasher.hxx
NCollection_DefineHSequence.hxx
NCollection_DoubleMap.hxx
NCollection_DynamicArray.hxx
NCollection_EBTree.hxx

View File

@@ -1,72 +0,0 @@
// Created on: 2002-04-29
// Created by: Alexander KARTOMIN (akm)
// Copyright (c) 2002-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.
// Automatically created from NCollection_HArray1.hxx by GAWK
#ifndef NCollection_DefineHArray1_HeaderFile
#define NCollection_DefineHArray1_HeaderFile
#include <Standard_Type.hxx>
#include <Standard_Transient.hxx>
// Declaration of Array1 class managed by Handle
#define DEFINE_HARRAY1(HClassName, _Array1Type_) \
class HClassName : public _Array1Type_, public Standard_Transient \
{ \
public: \
DEFINE_STANDARD_ALLOC \
DEFINE_NCOLLECTION_ALLOC \
HClassName() \
: _Array1Type_() \
{ \
} \
HClassName(const Standard_Integer theLower, const Standard_Integer theUpper) \
: _Array1Type_(theLower, theUpper) \
{ \
} \
HClassName(const Standard_Integer theLower, \
const Standard_Integer theUpper, \
const _Array1Type_::value_type& theValue) \
: _Array1Type_(theLower, theUpper) \
{ \
Init(theValue); \
} \
explicit HClassName(const typename _Array1Type_::value_type& theBegin, \
const Standard_Integer theLower, \
const Standard_Integer theUpper, \
const bool) \
: _Array1Type_(theBegin, theLower, theUpper) \
{ \
} \
HClassName(const _Array1Type_& theOther) \
: _Array1Type_(theOther) \
{ \
} \
const _Array1Type_& Array1() const noexcept \
{ \
return *this; \
} \
_Array1Type_& ChangeArray1() noexcept \
{ \
return *this; \
} \
DEFINE_STANDARD_RTTI_INLINE(HClassName, Standard_Transient) \
}; \
DEFINE_STANDARD_HANDLE(HClassName, Standard_Transient)
#define IMPLEMENT_HARRAY1(HClassName)
#endif

View File

@@ -1,66 +0,0 @@
// Created on: 2002-04-29
// Created by: Alexander KARTOMIN (akm)
// Copyright (c) 2002-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.
// Automatically created from NCollection_HArray2.hxx by GAWK
#ifndef NCollection_DefineHArray2_HeaderFile
#define NCollection_DefineHArray2_HeaderFile
#include <Standard_Type.hxx>
#include <Standard_Transient.hxx>
// Declaration of Array2 class managed by Handle
#define DEFINE_HARRAY2(HClassName, _Array2Type_) \
class HClassName : public _Array2Type_, public Standard_Transient \
{ \
public: \
DEFINE_STANDARD_ALLOC \
DEFINE_NCOLLECTION_ALLOC \
HClassName(const Standard_Integer theRowLow, \
const Standard_Integer theRowUpp, \
const Standard_Integer theColLow, \
const Standard_Integer theColUpp) \
: _Array2Type_(theRowLow, theRowUpp, theColLow, theColUpp) \
{ \
} \
HClassName(const Standard_Integer theRowLow, \
const Standard_Integer theRowUpp, \
const Standard_Integer theColLow, \
const Standard_Integer theColUpp, \
const _Array2Type_::value_type& theValue) \
: _Array2Type_(theRowLow, theRowUpp, theColLow, theColUpp) \
{ \
Init(theValue); \
} \
HClassName(const _Array2Type_& theOther) \
: _Array2Type_(theOther) \
{ \
} \
const _Array2Type_& Array2() const noexcept \
{ \
return *this; \
} \
_Array2Type_& ChangeArray2() noexcept \
{ \
return *this; \
} \
DEFINE_STANDARD_RTTI_INLINE(HClassName, Standard_Transient) \
}; \
DEFINE_STANDARD_HANDLE(HClassName, Standard_Transient)
#define IMPLEMENT_HARRAY2(HClassName)
#endif

View File

@@ -1,66 +0,0 @@
// Created on: 2001-01-29
// Created by: Alexander GRIGORIEV
// Copyright (c) 2001-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.
// Automatically created from NCollection_HSequence.hxx by GAWK
#ifndef NCollection_DefineHSequence_HeaderFile
#define NCollection_DefineHSequence_HeaderFile
#include <Standard_Type.hxx>
#include <Standard_Transient.hxx>
// Declaration of Sequence class managed by Handle
#define DEFINE_HSEQUENCE(HClassName, _SequenceType_) \
class HClassName : public _SequenceType_, public Standard_Transient \
{ \
public: \
DEFINE_STANDARD_ALLOC \
DEFINE_NCOLLECTION_ALLOC \
HClassName() {} \
HClassName(const _SequenceType_& theOther) \
: _SequenceType_(theOther) \
{ \
} \
const _SequenceType_& Sequence() const noexcept \
{ \
return *this; \
} \
void Append(const _SequenceType_::value_type& theItem) \
{ \
_SequenceType_::Append(theItem); \
} \
void Append(_SequenceType_& theSequence) \
{ \
_SequenceType_::Append(theSequence); \
} \
_SequenceType_& ChangeSequence() noexcept \
{ \
return *this; \
} \
template <class T> \
void Append(const Handle(T)& theOther, \
typename opencascade::std::enable_if< \
opencascade::std::is_base_of<HClassName, T>::value>::type* = 0) \
{ \
_SequenceType_::Append(theOther->ChangeSequence()); \
} \
DEFINE_STANDARD_RTTI_INLINE(HClassName, Standard_Transient) \
}; \
DEFINE_STANDARD_HANDLE(HClassName, Standard_Transient)
#define IMPLEMENT_HSEQUENCE(HClassName)
#endif

View File

@@ -1,6 +1,4 @@
// Created on: 2002-04-29
// Created by: Alexander KARTOMIN (akm)
// Copyright (c) 2002-2014 OPEN CASCADE SAS
// Copyright (c) 2002-2024 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
@@ -17,10 +15,76 @@
#define NCollection_HArray1_HeaderFile
#include <NCollection_Array1.hxx>
#include <NCollection_DefineHArray1.hxx>
#include <Standard_Type.hxx>
#include <Standard_Transient.hxx>
// Declaration of Array1 class managed by Handle
//! Template class for Handle-managed 1D arrays.
//! Inherits from both NCollection_Array1<TheItemType> and Standard_Transient,
//! providing reference-counted array functionality.
template <typename TheItemType>
class NCollection_HArray1 : public NCollection_Array1<TheItemType>, public Standard_Transient
{
public:
DEFINE_STANDARD_ALLOC
DEFINE_NCOLLECTION_ALLOC
#define NCOLLECTION_HARRAY1(HClassName, Type) DEFINE_HARRAY1(HClassName, NCollection_Array1<Type>)
typedef NCollection_Array1<TheItemType> Array1Type;
typedef TheItemType value_type;
#endif
public:
//! Default constructor.
NCollection_HArray1()
: Array1Type()
{
}
//! Constructor with bounds.
//! @param theLower lower bound of the array
//! @param theUpper upper bound of the array
NCollection_HArray1(const Standard_Integer theLower, const Standard_Integer theUpper)
: Array1Type(theLower, theUpper)
{
}
//! Constructor with bounds and initial value.
//! @param theLower lower bound of the array
//! @param theUpper upper bound of the array
//! @param theValue initial value for all elements
NCollection_HArray1(const Standard_Integer theLower,
const Standard_Integer theUpper,
const TheItemType& theValue)
: Array1Type(theLower, theUpper)
{
Array1Type::Init(theValue);
}
//! Constructor from C array.
//! @param theBegin reference to the first element of a C array
//! @param theLower lower bound of the array
//! @param theUpper upper bound of the array
//! @param theUseBuffer flag indicating whether to use external buffer (must be explicit)
explicit NCollection_HArray1(const TheItemType& theBegin,
const Standard_Integer theLower,
const Standard_Integer theUpper,
const bool theUseBuffer)
: Array1Type(theBegin, theLower, theUpper, theUseBuffer)
{
}
//! Copy constructor from array.
//! @param theOther the array to copy from
NCollection_HArray1(const Array1Type& theOther)
: Array1Type(theOther)
{
}
//! Returns const reference to the underlying array.
const Array1Type& Array1() const noexcept { return *this; }
//! Returns mutable reference to the underlying array.
Array1Type& ChangeArray1() noexcept { return *this; }
DEFINE_STANDARD_RTTI_INLINE(NCollection_HArray1, Standard_Transient)
};
#endif // NCollection_HArray1_HeaderFile

View File

@@ -1,6 +1,4 @@
// Created on: 2002-04-29
// Created by: Alexander KARTOMIN (akm)
// Copyright (c) 2002-2014 OPEN CASCADE SAS
// Copyright (c) 2002-2024 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
@@ -17,10 +15,66 @@
#define NCollection_HArray2_HeaderFile
#include <NCollection_Array2.hxx>
#include <NCollection_DefineHArray2.hxx>
#include <Standard_Type.hxx>
#include <Standard_Transient.hxx>
// Declaration of Array2 class managed by Handle
//! Template class for Handle-managed 2D arrays.
//! Inherits from both NCollection_Array2<TheItemType> and Standard_Transient,
//! providing reference-counted 2D array functionality.
template <typename TheItemType>
class NCollection_HArray2 : public NCollection_Array2<TheItemType>, public Standard_Transient
{
public:
DEFINE_STANDARD_ALLOC
DEFINE_NCOLLECTION_ALLOC
#define NCOLLECTION_HARRAY2(HClassName, Type) DEFINE_HARRAY2(HClassName, NCollection_Array2<Type>)
typedef NCollection_Array2<TheItemType> Array2Type;
typedef TheItemType value_type;
#endif
public:
//! Constructor with bounds.
//! @param theRowLow lower row bound
//! @param theRowUpp upper row bound
//! @param theColLow lower column bound
//! @param theColUpp upper column bound
NCollection_HArray2(const Standard_Integer theRowLow,
const Standard_Integer theRowUpp,
const Standard_Integer theColLow,
const Standard_Integer theColUpp)
: Array2Type(theRowLow, theRowUpp, theColLow, theColUpp)
{
}
//! Constructor with bounds and initial value.
//! @param theRowLow lower row bound
//! @param theRowUpp upper row bound
//! @param theColLow lower column bound
//! @param theColUpp upper column bound
//! @param theValue initial value for all elements
NCollection_HArray2(const Standard_Integer theRowLow,
const Standard_Integer theRowUpp,
const Standard_Integer theColLow,
const Standard_Integer theColUpp,
const TheItemType& theValue)
: Array2Type(theRowLow, theRowUpp, theColLow, theColUpp)
{
Array2Type::Init(theValue);
}
//! Copy constructor from array.
//! @param theOther the array to copy from
NCollection_HArray2(const Array2Type& theOther)
: Array2Type(theOther)
{
}
//! Returns const reference to the underlying array.
const Array2Type& Array2() const noexcept { return *this; }
//! Returns mutable reference to the underlying array.
Array2Type& ChangeArray2() noexcept { return *this; }
DEFINE_STANDARD_RTTI_INLINE(NCollection_HArray2, Standard_Transient)
};
#endif // NCollection_HArray2_HeaderFile

View File

@@ -1,6 +1,4 @@
// Created on: 2001-01-29
// Created by: Alexander GRIGORIEV
// Copyright (c) 2001-2014 OPEN CASCADE SAS
// Copyright (c) 2001-2024 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
@@ -16,12 +14,58 @@
#ifndef NCollection_HSequence_HeaderFile
#define NCollection_HSequence_HeaderFile
#include <NCollection_DefineHSequence.hxx>
#include <NCollection_Sequence.hxx>
#include <Standard_Type.hxx>
#include <Standard_Transient.hxx>
// Declaration of Sequence class managed by Handle
//! Template class for Handle-managed sequences.
//! Inherits from both NCollection_Sequence<TheItemType> and Standard_Transient,
//! providing reference-counted sequence functionality.
template <typename TheItemType>
class NCollection_HSequence : public NCollection_Sequence<TheItemType>, public Standard_Transient
{
public:
DEFINE_STANDARD_ALLOC
DEFINE_NCOLLECTION_ALLOC
#define NCOLLECTION_HSEQUENCE(HClassName, Type) \
DEFINE_HSEQUENCE(HClassName, NCollection_Sequence<Type>)
typedef NCollection_Sequence<TheItemType> SequenceType;
typedef TheItemType value_type;
#endif
public:
//! Default constructor.
NCollection_HSequence() {}
//! Copy constructor from sequence.
//! @param theOther the sequence to copy from
NCollection_HSequence(const SequenceType& theOther)
: SequenceType(theOther)
{
}
//! Returns const reference to the underlying sequence.
const SequenceType& Sequence() const noexcept { return *this; }
//! Returns mutable reference to the underlying sequence.
SequenceType& ChangeSequence() noexcept { return *this; }
//! Append single item.
//! @param theItem the item to append
void Append(const TheItemType& theItem) { SequenceType::Append(theItem); }
//! Append another sequence.
//! @param theSequence the sequence to append
void Append(SequenceType& theSequence) { SequenceType::Append(theSequence); }
//! Append items from another HSequence.
//! @param theOther handle to another HSequence
template <class T>
void Append(const opencascade::handle<T>& theOther,
typename std::enable_if<std::is_base_of<NCollection_HSequence, T>::value>::type* = 0)
{
SequenceType::Append(theOther->ChangeSequence());
}
DEFINE_STANDARD_RTTI_INLINE(NCollection_HSequence, Standard_Transient)
};
#endif // NCollection_HSequence_HeaderFile

View File

@@ -18,8 +18,6 @@
#define Quantity_HArray1OfColor_HeaderFile
#include <Quantity_Array1OfColor.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(Quantity_HArray1OfColor, Quantity_Array1OfColor)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Quantity_Color> Quantity_HArray1OfColor;
#endif

View File

@@ -18,8 +18,6 @@
#define Storage_HArrayOfCallBack_HeaderFile
#include <Storage_ArrayOfCallBack.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(Storage_HArrayOfCallBack, Storage_ArrayOfCallBack)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Handle(Storage_CallBack)> Storage_HArrayOfCallBack;
#endif

View File

@@ -18,8 +18,6 @@
#define Storage_HArrayOfSchema_HeaderFile
#include <Storage_ArrayOfSchema.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(Storage_HArrayOfSchema, Storage_ArrayOfSchema)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Handle(Storage_Schema)> Storage_HArrayOfSchema;
#endif

View File

@@ -18,8 +18,6 @@
#define Storage_HPArray_HeaderFile
#include <Storage_PArray.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(Storage_HPArray, Storage_PArray)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Handle(Standard_Persistent)> Storage_HPArray;
#endif

View File

@@ -18,8 +18,6 @@
#define Storage_HSeqOfRoot_HeaderFile
#include <Storage_SeqOfRoot.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(Storage_HSeqOfRoot, Storage_SeqOfRoot)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<Handle(Storage_Root)> Storage_HSeqOfRoot;
#endif

View File

@@ -17,8 +17,6 @@
#include <TCollection_AsciiString.hxx>
#include <TColStd_Array1OfAsciiString.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColStd_HArray1OfAsciiString, TColStd_Array1OfAsciiString)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<TCollection_AsciiString> TColStd_HArray1OfAsciiString;
#endif

View File

@@ -16,8 +16,6 @@
#define TColStd_HArray1OfBoolean_HeaderFile
#include <TColStd_Array1OfBoolean.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColStd_HArray1OfBoolean, TColStd_Array1OfBoolean)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Standard_Boolean> TColStd_HArray1OfBoolean;
#endif

View File

@@ -16,8 +16,6 @@
#define TColStd_HArray1OfByte_HeaderFile
#include <TColStd_Array1OfByte.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColStd_HArray1OfByte, TColStd_Array1OfByte)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Standard_Byte> TColStd_HArray1OfByte;
#endif

View File

@@ -17,8 +17,6 @@
#include <Standard_Character.hxx>
#include <TColStd_Array1OfCharacter.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColStd_HArray1OfCharacter, TColStd_Array1OfCharacter)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Standard_Character> TColStd_HArray1OfCharacter;
#endif

View File

@@ -17,8 +17,6 @@
#include <TCollection_ExtendedString.hxx>
#include <TColStd_Array1OfExtendedString.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColStd_HArray1OfExtendedString, TColStd_Array1OfExtendedString)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<TCollection_ExtendedString> TColStd_HArray1OfExtendedString;
#endif

View File

@@ -17,8 +17,6 @@
#include <Standard_Integer.hxx>
#include <TColStd_Array1OfInteger.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColStd_HArray1OfInteger, TColStd_Array1OfInteger)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Standard_Integer> TColStd_HArray1OfInteger;
#endif

View File

@@ -16,8 +16,6 @@
#define TColStd_HArray1OfListOfInteger_HeaderFile
#include <TColStd_Array1OfListOfInteger.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColStd_HArray1OfListOfInteger, TColStd_Array1OfListOfInteger)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<TColStd_ListOfInteger> TColStd_HArray1OfListOfInteger;
#endif

View File

@@ -16,8 +16,6 @@
#define TColStd_HArray1OfReal_HeaderFile
#include <TColStd_Array1OfReal.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColStd_HArray1OfReal, TColStd_Array1OfReal)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Standard_Real> TColStd_HArray1OfReal;
#endif

View File

@@ -17,8 +17,6 @@
#include <Standard_Transient.hxx>
#include <TColStd_Array1OfTransient.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TColStd_HArray1OfTransient, TColStd_Array1OfTransient)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Handle(Standard_Transient)> TColStd_HArray1OfTransient;
#endif

View File

@@ -17,8 +17,6 @@
#include <Standard_Boolean.hxx>
#include <TColStd_Array2OfBoolean.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColStd_HArray2OfBoolean, TColStd_Array2OfBoolean)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<Standard_Boolean> TColStd_HArray2OfBoolean;
#endif

View File

@@ -17,8 +17,6 @@
#include <Standard_Character.hxx>
#include <TColStd_Array2OfCharacter.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColStd_HArray2OfCharacter, TColStd_Array2OfCharacter)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<Standard_Character> TColStd_HArray2OfCharacter;
#endif

View File

@@ -17,8 +17,6 @@
#include <Standard_Integer.hxx>
#include <TColStd_Array2OfInteger.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColStd_HArray2OfInteger, TColStd_Array2OfInteger)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<Standard_Integer> TColStd_HArray2OfInteger;
#endif

View File

@@ -16,8 +16,6 @@
#define TColStd_HArray2OfReal_HeaderFile
#include <TColStd_Array2OfReal.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColStd_HArray2OfReal, TColStd_Array2OfReal)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<Standard_Real> TColStd_HArray2OfReal;
#endif

View File

@@ -17,8 +17,6 @@
#include <Standard_Transient.hxx>
#include <TColStd_Array2OfTransient.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TColStd_HArray2OfTransient, TColStd_Array2OfTransient)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<Handle(Standard_Transient)> TColStd_HArray2OfTransient;
#endif

View File

@@ -17,8 +17,6 @@
#include <TCollection_AsciiString.hxx>
#include <TColStd_SequenceOfAsciiString.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColStd_HSequenceOfAsciiString, TColStd_SequenceOfAsciiString)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<TCollection_AsciiString> TColStd_HSequenceOfAsciiString;
#endif

View File

@@ -17,8 +17,6 @@
#include <TCollection_ExtendedString.hxx>
#include <TColStd_SequenceOfExtendedString.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColStd_HSequenceOfExtendedString, TColStd_SequenceOfExtendedString)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<TCollection_ExtendedString> TColStd_HSequenceOfExtendedString;
#endif

View File

@@ -16,8 +16,6 @@
#define TColStd_HSequenceOfHAsciiString_HeaderFile
#include <TColStd_SequenceOfHAsciiString.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColStd_HSequenceOfHAsciiString, TColStd_SequenceOfHAsciiString)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<Handle(TCollection_HAsciiString)> TColStd_HSequenceOfHAsciiString;
#endif

View File

@@ -16,8 +16,7 @@
#define TColStd_HSequenceOfHExtendedString_HeaderFile
#include <TColStd_SequenceOfHExtendedString.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColStd_HSequenceOfHExtendedString, TColStd_SequenceOfHExtendedString)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<Handle(TCollection_HExtendedString)>
TColStd_HSequenceOfHExtendedString;
#endif

View File

@@ -17,8 +17,6 @@
#include <Standard_Integer.hxx>
#include <TColStd_SequenceOfInteger.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColStd_HSequenceOfInteger, TColStd_SequenceOfInteger)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<Standard_Integer> TColStd_HSequenceOfInteger;
#endif

View File

@@ -16,8 +16,6 @@
#define TColStd_HSequenceOfReal_HeaderFile
#include <TColStd_SequenceOfReal.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColStd_HSequenceOfReal, TColStd_SequenceOfReal)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<Standard_Real> TColStd_HSequenceOfReal;
#endif

View File

@@ -17,8 +17,6 @@
#include <Standard_Transient.hxx>
#include <TColStd_SequenceOfTransient.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TColStd_HSequenceOfTransient, TColStd_SequenceOfTransient)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<Handle(Standard_Transient)> TColStd_HSequenceOfTransient;
#endif

View File

@@ -62,7 +62,7 @@
#include <NCollection_BaseAllocator.hxx>
#include <NCollection_Buffer.hxx>
#include <NCollection_DataMap.hxx>
#include <NCollection_DefineHArray1.hxx>
#include <NCollection_HArray1.hxx>
#include <NCollection_IndexedDataMap.hxx>
#include <NCollection_IndexedMap.hxx>
#include <NCollection_List.hxx>

View File

@@ -17,8 +17,6 @@
#include <Standard_ShortReal.hxx>
#include <TShort_Array1OfShortReal.hxx>
#include <NCollection_DefineHArray1.hxx>
DEFINE_HARRAY1(TShort_HArray1OfShortReal, TShort_Array1OfShortReal)
#include <NCollection_HArray1.hxx>
typedef NCollection_HArray1<Standard_ShortReal> TShort_HArray1OfShortReal;
#endif

View File

@@ -17,8 +17,6 @@
#include <Standard_ShortReal.hxx>
#include <TShort_Array2OfShortReal.hxx>
#include <NCollection_DefineHArray2.hxx>
DEFINE_HARRAY2(TShort_HArray2OfShortReal, TShort_Array2OfShortReal)
#include <NCollection_HArray2.hxx>
typedef NCollection_HArray2<Standard_ShortReal> TShort_HArray2OfShortReal;
#endif

View File

@@ -17,8 +17,6 @@
#include <Standard_ShortReal.hxx>
#include <TShort_SequenceOfShortReal.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(TShort_HSequenceOfShortReal, TShort_SequenceOfShortReal)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<Standard_ShortReal> TShort_HSequenceOfShortReal;
#endif

View File

@@ -18,8 +18,6 @@
#define Units_QuantitiesSequence_HeaderFile
#include <Units_QtsSequence.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(Units_QuantitiesSequence, Units_QtsSequence)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<Handle(Units_Quantity)> Units_QuantitiesSequence;
#endif

View File

@@ -18,8 +18,6 @@
#define Units_TokensSequence_HeaderFile
#include <Units_TksSequence.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(Units_TokensSequence, Units_TksSequence)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<Handle(Units_Token)> Units_TokensSequence;
#endif

View File

@@ -19,8 +19,6 @@
#include <Units_Unit.hxx>
#include <Units_UtsSequence.hxx>
#include <NCollection_DefineHSequence.hxx>
DEFINE_HSEQUENCE(Units_UnitsSequence, Units_UtsSequence)
#include <NCollection_HSequence.hxx>
typedef NCollection_HSequence<Handle(Units_Unit)> Units_UnitsSequence;
#endif