1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-16 10:08:36 +03:00
occt/src/Intrv/Intrv_Interval.hxx
abv 42cf5bc1ca 0024002: Overall code and build procedure refactoring -- automatic
Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl":
- WOK-generated header files from inc and sources from drv are moved to src
- CDL files removed
- All packages are converted to nocdlpack
2015-07-12 07:42:38 +03:00

215 lines
7.6 KiB
C++

// Created on: 1991-12-13
// Created by: Christophe MARION
// Copyright (c) 1991-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.
#ifndef _Intrv_Interval_HeaderFile
#define _Intrv_Interval_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Real.hxx>
#include <Standard_ShortReal.hxx>
#include <Standard_Boolean.hxx>
#include <Intrv_Position.hxx>
//! **-----------**** Other
//! ***---* IsBefore
//! ***----------* IsJustBefore
//! ***---------------* IsOverlappingAtStart
//! ***------------------------* IsJustEnclosingAtEnd
//! ***-----------------------------------* IsEnclosing
//! ***----* IsJustOverlappingAtStart
//! ***-------------* IsSimilar
//! ***------------------------* IsJustEnclosingAtStart
//! ***-* IsInside
//! ***------* IsJustOverlappingAtEnd
//! ***-----------------* IsOverlappingAtEnd
//! ***--------* IsJustAfter
//! ***---* IsAfter
class Intrv_Interval
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT Intrv_Interval();
Standard_EXPORT Intrv_Interval(const Standard_Real Start, const Standard_Real End);
Standard_EXPORT Intrv_Interval(const Standard_Real Start, const Standard_ShortReal TolStart, const Standard_Real End, const Standard_ShortReal TolEnd);
Standard_Real Start() const;
Standard_Real End() const;
Standard_ShortReal TolStart() const;
Standard_ShortReal TolEnd() const;
void Bounds (Standard_Real& Start, Standard_ShortReal& TolStart, Standard_Real& End, Standard_ShortReal& TolEnd) const;
void SetStart (const Standard_Real Start, const Standard_ShortReal TolStart);
//! ****+****--------------------> Old one
//! ****+****------------------------> New one to fuse
//! <<< <<<
//! ****+****------------------------> result
void FuseAtStart (const Standard_Real Start, const Standard_ShortReal TolStart);
//! ****+****-----------> Old one
//! <----------**+** Tool for cutting
//! >>> >>>
//! ****+****-----------> result
void CutAtStart (const Standard_Real Start, const Standard_ShortReal TolStart);
void SetEnd (const Standard_Real End, const Standard_ShortReal TolEnd);
//! <---------------------****+**** Old one
//! <-----------------**+** New one to fuse
//! >>> >>>
//! <---------------------****+**** result
void FuseAtEnd (const Standard_Real End, const Standard_ShortReal TolEnd);
//! <-----****+**** Old one
//! **+**------> Tool for cutting
//! <<< <<<
//! <-----****+**** result
void CutAtEnd (const Standard_Real End, const Standard_ShortReal TolEnd);
//! True if myStart+myTolStart > myEnd-myTolEnd
//! or if myEnd+myTolEnd > myStart-myTolStart
Standard_Boolean IsProbablyEmpty() const;
//! True if me is Before Other
//! **-----------**** Other
//! ***-----* Before
//! ***------------* JustBefore
//! ***-----------------* OverlappingAtStart
//! ***--------------------------* JustEnclosingAtEnd
//! ***-------------------------------------* Enclosing
//! ***----* JustOverlappingAtStart
//! ***-------------* Similar
//! ***------------------------* JustEnclosingAtStart
//! ***-* Inside
//! ***------* JustOverlappingAtEnd
//! ***-----------------* OverlappingAtEnd
//! ***--------* JustAfter
//! ***---* After
Standard_EXPORT Intrv_Position Position (const Intrv_Interval& Other) const;
//! True if me is Before Other
//! ***----------------** me
//! **-----------**** Other
Standard_Boolean IsBefore (const Intrv_Interval& Other) const;
//! True if me is After Other
//! **-----------**** me
//! ***----------------** Other
Standard_Boolean IsAfter (const Intrv_Interval& Other) const;
//! True if me is Inside Other
//! **-----------**** me
//! ***--------------------------** Other
Standard_Boolean IsInside (const Intrv_Interval& Other) const;
//! True if me is Enclosing Other
//! ***----------------------------**** me
//! ***------------------** Other
Standard_Boolean IsEnclosing (const Intrv_Interval& Other) const;
//! True if me is just Enclosing Other at start
//! ***---------------------------**** me
//! ***------------------** Other
Standard_Boolean IsJustEnclosingAtStart (const Intrv_Interval& Other) const;
//! True if me is just Enclosing Other at End
//! ***----------------------------**** me
//! ***-----------------**** Other
Standard_Boolean IsJustEnclosingAtEnd (const Intrv_Interval& Other) const;
//! True if me is just before Other
//! ***--------**** me
//! ***-----------** Other
Standard_Boolean IsJustBefore (const Intrv_Interval& Other) const;
//! True if me is just after Other
//! ****-------**** me
//! ***-----------** Other
Standard_Boolean IsJustAfter (const Intrv_Interval& Other) const;
//! True if me is overlapping Other at start
//! ***---------------*** me
//! ***-----------** Other
Standard_Boolean IsOverlappingAtStart (const Intrv_Interval& Other) const;
//! True if me is overlapping Other at end
//! ***-----------** me
//! ***---------------*** Other
Standard_Boolean IsOverlappingAtEnd (const Intrv_Interval& Other) const;
//! True if me is just overlapping Other at start
//! ***-----------*** me
//! ***------------------------** Other
Standard_Boolean IsJustOverlappingAtStart (const Intrv_Interval& Other) const;
//! True if me is just overlapping Other at end
//! ***-----------* me
//! ***------------------------** Other
Standard_Boolean IsJustOverlappingAtEnd (const Intrv_Interval& Other) const;
//! True if me and Other have the same bounds
//! *----------------*** me
//! ***-----------------** Other
Standard_Boolean IsSimilar (const Intrv_Interval& Other) const;
protected:
private:
Standard_Real myStart;
Standard_Real myEnd;
Standard_ShortReal myTolStart;
Standard_ShortReal myTolEnd;
};
#include <Intrv_Interval.lxx>
#endif // _Intrv_Interval_HeaderFile