Warning, /include/opencascade/BOPDS_Curve.lxx is written in an unsupported language. File is not indexed.
0001 // Created by: Peter KURNEV
0002 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0003 //
0004 // This file is part of Open CASCADE Technology software library.
0005 //
0006 // This library is free software; you can redistribute it and/or modify it under
0007 // the terms of the GNU Lesser General Public License version 2.1 as published
0008 // by the Free Software Foundation, with special exception defined in the file
0009 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0010 // distribution for complete text of the license and disclaimer of any warranty.
0011 //
0012 // Alternatively, this file may be used under the terms of Open CASCADE
0013 // commercial license or contractual agreement.
0014
0015 #include <BOPDS_PaveBlock.hxx>
0016
0017 //=======================================================================
0018 //function :
0019 //purpose :
0020 //=======================================================================
0021 inline BOPDS_Curve::BOPDS_Curve()
0022 :
0023 myAllocator(NCollection_BaseAllocator::CommonBaseAllocator()),
0024 myPaveBlocks(myAllocator),
0025 myTechnoVertices(myAllocator),
0026 myTolerance(0.)
0027 {
0028 }
0029 //=======================================================================
0030 //function :
0031 //purpose :
0032 //=======================================================================
0033 inline BOPDS_Curve::BOPDS_Curve(const Handle(NCollection_BaseAllocator)& theAllocator)
0034 :
0035 myAllocator(theAllocator),
0036 myPaveBlocks(myAllocator),
0037 myTechnoVertices(myAllocator),
0038 myTolerance(0.)
0039 {
0040 }
0041 //=======================================================================
0042 //function :
0043 //purpose :
0044 //=======================================================================
0045 inline BOPDS_Curve::~BOPDS_Curve()
0046 {
0047 }
0048 //=======================================================================
0049 //function : SetCurve
0050 //purpose :
0051 //=======================================================================
0052 inline void BOPDS_Curve::SetCurve(const IntTools_Curve& theCurve)
0053 {
0054 myCurve=theCurve;
0055 }
0056 //=======================================================================
0057 //function : Curve
0058 //purpose :
0059 //=======================================================================
0060 inline const IntTools_Curve& BOPDS_Curve::Curve()const
0061 {
0062 return myCurve;
0063 }
0064 //=======================================================================
0065 //function : SetPaveBlocks
0066 //purpose :
0067 //=======================================================================
0068 inline void BOPDS_Curve::SetPaveBlocks(const BOPDS_ListOfPaveBlock& theLPB)
0069 {
0070 BOPDS_ListIteratorOfListOfPaveBlock aIt;
0071 //
0072 myPaveBlocks.Clear();
0073 aIt.Initialize(theLPB);
0074 for (; aIt.More(); aIt.Next()) {
0075 myPaveBlocks.Append(aIt.Value());
0076 }
0077 }
0078 //=======================================================================
0079 //function : PaveBlocks
0080 //purpose :
0081 //=======================================================================
0082 inline const BOPDS_ListOfPaveBlock& BOPDS_Curve::PaveBlocks()const
0083 {
0084 return myPaveBlocks;
0085 }
0086 //=======================================================================
0087 //function : ChangePaveBlocks
0088 //purpose :
0089 //=======================================================================
0090 inline BOPDS_ListOfPaveBlock& BOPDS_Curve::ChangePaveBlocks()
0091 {
0092 return myPaveBlocks;
0093 }
0094 //=======================================================================
0095 //function : InitPaveBlock1
0096 //purpose :
0097 //=======================================================================
0098 inline void BOPDS_Curve::InitPaveBlock1()
0099 {
0100 if (!myPaveBlocks.Extent()) {
0101 Handle(BOPDS_PaveBlock) aPB=new BOPDS_PaveBlock;
0102 myPaveBlocks.Append(aPB);
0103 }
0104 }
0105 //=======================================================================
0106 //function : ChangePaveBlock1
0107 //purpose :
0108 //=======================================================================
0109 inline Handle(BOPDS_PaveBlock)& BOPDS_Curve::ChangePaveBlock1()
0110 {
0111 Handle(BOPDS_PaveBlock)* pPB=(Handle(BOPDS_PaveBlock)*)&myPaveBlocks.First();
0112 return *pPB;
0113 }
0114 //=======================================================================
0115 //function : TechnoVertices
0116 //purpose :
0117 //=======================================================================
0118 inline const TColStd_ListOfInteger& BOPDS_Curve::TechnoVertices()const
0119 {
0120 return myTechnoVertices;
0121 }
0122 //=======================================================================
0123 //function : ChangeTechnoVertices
0124 //purpose :
0125 //=======================================================================
0126 inline TColStd_ListOfInteger& BOPDS_Curve::ChangeTechnoVertices()
0127 {
0128 return myTechnoVertices;
0129 }
0130 //=======================================================================
0131 //function : SetBox
0132 //purpose :
0133 //=======================================================================
0134 inline void BOPDS_Curve::SetBox(const Bnd_Box& theBox)
0135 {
0136 myBox=theBox;
0137 }
0138 //=======================================================================
0139 //function : Box
0140 //purpose :
0141 //=======================================================================
0142 inline const Bnd_Box& BOPDS_Curve::Box()const
0143 {
0144 return myBox;
0145 }
0146 //=======================================================================
0147 //function : ChangeBox
0148 //purpose :
0149 //=======================================================================
0150 inline Bnd_Box& BOPDS_Curve::ChangeBox()
0151 {
0152 return myBox;
0153 }
0154 //=======================================================================
0155 //function : HasEdge
0156 //purpose :
0157 //=======================================================================
0158 inline Standard_Boolean BOPDS_Curve::HasEdge()const
0159 {
0160 Standard_Boolean bFlag;
0161 BOPDS_ListIteratorOfListOfPaveBlock aItPB;
0162 //
0163 bFlag=Standard_False;
0164 aItPB.Initialize(myPaveBlocks);
0165 for (; aItPB.More(); aItPB.Next()) {
0166 const Handle(BOPDS_PaveBlock)& aPB=aItPB.Value();
0167 bFlag=aPB->HasEdge();
0168 if (bFlag) {
0169 break;
0170 }
0171 }
0172 return bFlag;
0173 }