Warning, /include/opencascade/IntCurve_IntCurveCurveGen.lxx is written in an unsupported language. File is not indexed.
0001 // Created on: 1995-07-25
0002 // Created by: Modelistation
0003 // Copyright (c) 1995-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
0016
0017 #include <Precision.hxx>
0018
0019 //----------------------------------------------------------------------
0020 inline IntCurve_IntCurveCurveGen::IntCurve_IntCurveCurveGen()
0021 : param1inf(-Precision::Infinite()),
0022 param1sup(Precision::Infinite()),
0023 param2inf(-Precision::Infinite()),
0024 param2sup(Precision::Infinite())
0025 {
0026 }
0027
0028 //----------------------------------------------------------------------
0029 inline IntCurve_IntCurveCurveGen::IntCurve_IntCurveCurveGen(const TheCurve& C,
0030 const double TolConf,
0031 const double Tol)
0032 : param1inf(-Precision::Infinite()),
0033 param1sup(Precision::Infinite()),
0034 param2inf(-Precision::Infinite()),
0035 param2sup(Precision::Infinite())
0036 {
0037 Perform(C, TolConf, Tol);
0038 }
0039
0040 //----------------------------------------------------------------------
0041 inline IntCurve_IntCurveCurveGen::IntCurve_IntCurveCurveGen(const TheCurve& C,
0042 const IntRes2d_Domain& D,
0043 const double TolConf,
0044 const double Tol)
0045 : param1inf(-Precision::Infinite()),
0046 param1sup(Precision::Infinite()),
0047 param2inf(-Precision::Infinite()),
0048 param2sup(Precision::Infinite())
0049 {
0050 Perform(C, D, TolConf, Tol);
0051 }
0052
0053 //----------------------------------------------------------------------
0054 inline IntCurve_IntCurveCurveGen::IntCurve_IntCurveCurveGen(const TheCurve& C1,
0055 const TheCurve& C2,
0056 const double TolConf,
0057 const double Tol)
0058 : param1inf(-Precision::Infinite()),
0059 param1sup(Precision::Infinite()),
0060 param2inf(-Precision::Infinite()),
0061 param2sup(Precision::Infinite())
0062 {
0063 Perform(C1, C2, TolConf, Tol);
0064 }
0065
0066 //----------------------------------------------------------------------
0067 inline IntCurve_IntCurveCurveGen::IntCurve_IntCurveCurveGen(const TheCurve& C1,
0068 const IntRes2d_Domain& D1,
0069 const TheCurve& C2,
0070 const double TolConf,
0071 const double Tol)
0072 : param1inf(-Precision::Infinite()),
0073 param1sup(Precision::Infinite()),
0074 param2inf(-Precision::Infinite()),
0075 param2sup(Precision::Infinite())
0076 {
0077 Perform(C1, D1, C2, TolConf, Tol);
0078 }
0079
0080 //----------------------------------------------------------------------
0081 inline IntCurve_IntCurveCurveGen::IntCurve_IntCurveCurveGen(const TheCurve& C1,
0082 const TheCurve& C2,
0083 const IntRes2d_Domain& D2,
0084 const double TolConf,
0085 const double Tol)
0086 : param1inf(-Precision::Infinite()),
0087 param1sup(Precision::Infinite()),
0088 param2inf(-Precision::Infinite()),
0089 param2sup(Precision::Infinite())
0090 {
0091 Perform(C1, C2, D2, TolConf, Tol);
0092 }
0093
0094 //----------------------------------------------------------------------
0095 inline IntCurve_IntCurveCurveGen::IntCurve_IntCurveCurveGen(const TheCurve& C1,
0096 const IntRes2d_Domain& D1,
0097 const TheCurve& C2,
0098 const IntRes2d_Domain& D2,
0099 const double TolConf,
0100 const double Tol)
0101 : param1inf(-Precision::Infinite()),
0102 param1sup(Precision::Infinite()),
0103 param2inf(-Precision::Infinite()),
0104 param2sup(Precision::Infinite())
0105 {
0106 Perform(C1, D1, C2, D2, TolConf, Tol);
0107 }
0108
0109 //---------------------------------------------------------------------
0110 inline void IntCurve_IntCurveCurveGen::Perform(const TheCurve& C1,
0111 const TheCurve& C2,
0112 const double TolConf,
0113 const double Tol)
0114 {
0115 double TolDomain = Tol;
0116 if (TolConf > TolDomain)
0117 {
0118 TolDomain = TolConf;
0119 }
0120 Perform(C1, ComputeDomain(C1, TolDomain), C2, ComputeDomain(C2, TolDomain), TolConf, Tol);
0121 }
0122
0123 //----------------------------------------------------------------------
0124 inline void IntCurve_IntCurveCurveGen::Perform(const TheCurve& C1,
0125 const IntRes2d_Domain& D1,
0126 const TheCurve& C2,
0127 const double TolConf,
0128 const double Tol)
0129 {
0130 double TolDomain = Tol;
0131 if (TolConf > TolDomain)
0132 {
0133 TolDomain = TolConf;
0134 }
0135 Perform(C1, D1, C2, ComputeDomain(C2, TolDomain), TolConf, Tol);
0136 }
0137
0138 //----------------------------------------------------------------------
0139 inline void IntCurve_IntCurveCurveGen::Perform(const TheCurve& C1,
0140 const TheCurve& C2,
0141 const IntRes2d_Domain& D2,
0142 const double TolConf,
0143 const double Tol)
0144 {
0145 double TolDomain = Tol;
0146 if (TolConf > TolDomain)
0147 {
0148 TolDomain = TolConf;
0149 }
0150 Perform(C1, ComputeDomain(C1, TolDomain), C2, D2, TolConf, Tol);
0151 }