1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-19 13:40:49 +03:00
Files
occt/src/BRepMesh/BRepMesh_PairOfIndex.hxx
dpasukhi a5a7b3185b Coding - Apply .clang-format formatting #286
Update empty method guards to new style with regex (see PR).
Used clang-format 18.1.8.
New actions to validate code formatting is added.
Update .clang-format with disabling of include sorting.
  It is temporary changes, then include will be sorted.
Apply formatting for /src and /tools folder.
The files with .hxx,.cxx,.lxx,.h,.pxx,.hpp,*.cpp extensions.
2025-01-26 00:43:57 +00:00

114 lines
3.5 KiB
C++

// Created on: 2009-01-29
// Created by: Pavel TELKOV
// Copyright (c) 2009-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.
#ifndef BRepMesh_PairOfIndex_HeaderFile
#define BRepMesh_PairOfIndex_HeaderFile
#include <Standard_OutOfRange.hxx>
//! This class represents a pair of integer indices to store
//! element indices connected to link. It is restricted to
//! store more than two indices in it.
class BRepMesh_PairOfIndex
{
public:
//! Default constructor
BRepMesh_PairOfIndex() { Clear(); }
//! Clears indices.
void Clear() { myIndex[0] = myIndex[1] = -1; }
//! Appends index to the pair.
void Append(const Standard_Integer theIndex)
{
if (myIndex[0] < 0)
myIndex[0] = theIndex;
else
{
if (myIndex[1] >= 0)
throw Standard_OutOfRange("BRepMesh_PairOfIndex::Append, more than two index to store");
myIndex[1] = theIndex;
}
}
//! Prepends index to the pair.
void Prepend(const Standard_Integer theIndex)
{
if (myIndex[1] >= 0)
throw Standard_OutOfRange("BRepMesh_PairOfIndex::Prepend, more than two index to store");
myIndex[1] = myIndex[0];
myIndex[0] = theIndex;
}
//! Returns is pair is empty.
Standard_Boolean IsEmpty() const
{
// Check only first index. It is impossible to update
// second index if the first one is empty.
return (myIndex[0] < 0);
}
//! Returns number of initialized indices.
Standard_Integer Extent() const { return (myIndex[0] < 0 ? 0 : (myIndex[1] < 0 ? 1 : 2)); }
//! Returns first index of pair.
Standard_Integer FirstIndex() const { return myIndex[0]; }
//! Returns last index of pair
Standard_Integer LastIndex() const { return (myIndex[1] < 0 ? myIndex[0] : myIndex[1]); }
//! Returns index corresponding to the given position in the pair.
//! @param thePairPos position of index in the pair (1 or 2).
Standard_Integer Index(const Standard_Integer thePairPos) const
{
if (thePairPos != 1 && thePairPos != 2)
throw Standard_OutOfRange("BRepMesh_PairOfIndex::Index, requested index is out of range");
return myIndex[thePairPos - 1];
}
//! Sets index corresponding to the given position in the pair.
//! @param thePairPos position of index in the pair (1 or 2).
//! @param theIndex index to be stored.
void SetIndex(const Standard_Integer thePairPos, const Standard_Integer theIndex)
{
if (thePairPos != 1 && thePairPos != 2)
throw Standard_OutOfRange("BRepMesh_PairOfIndex::SetIndex, requested index is out of range");
myIndex[thePairPos - 1] = theIndex;
}
//! Remove index from the given position.
//! @param thePairPos position of index in the pair (1 or 2).
void RemoveIndex(const Standard_Integer thePairPos)
{
if (thePairPos != 1 && thePairPos != 2)
throw Standard_OutOfRange(
"BRepMesh_PairOfIndex::RemoveIndex, requested index is out of range");
if (thePairPos == 1)
myIndex[0] = myIndex[1];
myIndex[1] = -1;
}
private:
Standard_Integer myIndex[2];
};
#endif