--- /dev/null
+// File generated by CPPExt (Transient)
+//
+// Copyright (C) 1991 - 2000 by
+// Matra Datavision SA. All rights reserved.
+//
+// Copyright (C) 2001 - 2004 by
+// Open CASCADE SA. All rights reserved.
+//
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#ifndef _Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_HeaderFile
+#define _Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_HeaderFile
+
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+
+#ifndef _Handle_TCollection_MapNode_HeaderFile
+#include <Handle_TCollection_MapNode.hxx>
+#endif
+
+class Standard_Transient;
+class Handle_Standard_Type;
+class Handle(TCollection_MapNode);
+class NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo;
+Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo);
+
+class Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo) : public Handle(TCollection_MapNode) {
+ public:
+ Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo)():Handle(TCollection_MapNode)() {}
+ Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo)(const Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo)& aHandle) : Handle(TCollection_MapNode)(aHandle)
+ {
+ }
+
+ Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo)(const NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo* anItem) : Handle(TCollection_MapNode)((TCollection_MapNode *)anItem)
+ {
+ }
+
+ Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo)& operator=(const Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo)& aHandle)
+ {
+ Assign(aHandle.Access());
+ return *this;
+ }
+
+ Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo)& operator=(const NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo* anItem)
+ {
+ Assign((Standard_Transient *)anItem);
+ return *this;
+ }
+
+ NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo* operator->() const
+ {
+ return (NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo *)ControlAccess();
+ }
+
+// Standard_EXPORT ~Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo)();
+
+ Standard_EXPORT static const Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo) DownCast(const Handle(Standard_Transient)& AnObject);
+};
+#endif
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
# GEOM NMTTools : partition algorithm
# File : Makefile.in
# Author : Julia DOROVSKIKH
# Modified by : Alexander BORODIN (OCN) - autotools usage
# Module : GEOM
-# $Header$
-#
+
include $(top_srcdir)/adm_local/unix/make_common_starter.am
-# header files
+# header files
salomeinclude_HEADERS = \
- Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx \
- Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx \
+ Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx \
+ Handle_NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx \
Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx \
Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx \
Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx \
Handle_NMTTools_ListNodeOfListOfCommonBlock.hxx \
Handle_NMTTools_ListNodeOfListOfCoupleOfShape.hxx \
+ Handle_NMTTools_StdMapNodeOfMapOfPaveBlock.hxx \
NMTTools_CheckerSI.hxx \
NMTTools_CheckerSI.ixx \
NMTTools_CheckerSI.jxx \
NMTTools_CoupleOfShape.hxx \
NMTTools_CoupleOfShape.ixx \
NMTTools_CoupleOfShape.jxx \
+ NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo.hxx \
+ NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx \
+ NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx \
+ NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx \
+ NMTTools_DataMapOfIntegerFaceInfo.hxx \
+ NMTTools_DataMapOfIntegerListOfPaveBlock.hxx \
NMTTools_DEProcessor.hxx \
NMTTools_DEProcessor.ixx \
NMTTools_DEProcessor.jxx \
+ NMTTools_FaceInfo.hxx \
+ NMTTools_FaceInfo.ixx \
+ NMTTools_FaceInfo.jxx \
+ NMTTools_FaceInfo.lxx \
NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx \
NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx \
NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx \
NMTTools_ListNodeOfListOfCoupleOfShape.hxx \
NMTTools_ListOfCommonBlock.hxx \
NMTTools_ListOfCoupleOfShape.hxx \
+ NMTTools_MapIteratorOfMapOfPaveBlock.hxx \
+ NMTTools_MapOfPaveBlock.hxx \
NMTTools_PaveFiller.hxx \
NMTTools_PaveFiller.ixx \
NMTTools_PaveFiller.jxx \
NMTTools_Tools.hxx \
NMTTools_Tools.ixx \
NMTTools_Tools.jxx \
- Handle_NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx \
- Handle_NMTTools_StdMapNodeOfMapOfPaveBlock.hxx \
- NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx \
- NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx \
- NMTTools_DataMapOfIntegerListOfPaveBlock.hxx \
- NMTTools_MapIteratorOfMapOfPaveBlock.hxx \
- NMTTools_MapOfPaveBlock.hxx \
NMTTools_StdMapNodeOfMapOfPaveBlock.hxx
# Libraries targets
NMTTools_CommonBlock.cxx \
NMTTools_CommonBlockPool_0.cxx \
NMTTools_CoupleOfShape.cxx \
+ NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo_0.cxx \
+ NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock_0.cxx \
+ NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_0.cxx \
+ NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock_0.cxx \
+ NMTTools_DataMapOfIntegerFaceInfo_0.cxx \
+ NMTTools_DataMapOfIntegerListOfPaveBlock_0.cxx \
NMTTools_DEProcessor.cxx \
+ NMTTools_FaceInfo.cxx \
NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_0.cxx \
NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_0.cxx \
NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_0.cxx \
NMTTools_ListNodeOfListOfCoupleOfShape_0.cxx \
NMTTools_ListOfCommonBlock_0.cxx \
NMTTools_ListOfCoupleOfShape_0.cxx \
+ NMTTools_MapIteratorOfMapOfPaveBlock_0.cxx \
+ NMTTools_MapOfPaveBlock_0.cxx \
NMTTools_PaveFiller_0.cxx \
NMTTools_PaveFiller_1.cxx \
NMTTools_PaveFiller_2.cxx \
NMTTools_PaveFiller_9.cxx \
NMTTools_PaveFiller.cxx \
NMTTools_Tools.cxx \
- NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock_0.cxx \
- NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock_0.cxx \
- NMTTools_DataMapOfIntegerListOfPaveBlock_0.cxx \
- NMTTools_MapIteratorOfMapOfPaveBlock_0.cxx \
- NMTTools_MapOfPaveBlock_0.cxx \
NMTTools_StdMapNodeOfMapOfPaveBlock_0.cxx
# additional information to compile and link file
NMTTools_CommonBlockAPI.cdl \
NMTTools_CoupleOfShape.cdl \
NMTTools_DEProcessor.cdl \
+ NMTTools_FaceInfo.cdl \
NMTTools_IteratorOfCoupleOfShape.cdl \
NMTTools_PaveFiller.cdl \
NMTTools_Tools.cdl
NMTDS
is
- --class IteratorOfCoupleOfShape;
- --class DSFiller;
class PaveFiller;
class Tools;
class CommonBlock;
class CommonBlockAPI;
- --class PCurveMaker;
class DEProcessor;
class CoupleOfShape;
- --modified by NIZNHY-PKV Mon Feb 19 11:39:24 2007f
class CheckerSI;
- --modified by NIZNHY-PKV Mon Feb 19 11:39:27 2007t
+ class FaceInfo;
pointer PPaveFiller to PaveFiller from NMTTools;
- --pointer PDSFiller to DSFiller from NMTTools;
class ListOfCommonBlock instantiates
List from TCollection(CommonBlock from NMTTools);
class MapOfPaveBlock instantiates
Map from TCollection (PaveBlock from BOPTools,
- PaveBlockMapHasher from BOPTools);
+ PaveBlockMapHasher from BOPTools);
+
+ class DataMapOfIntegerFaceInfo instantiates
+ DataMap from TCollection(Integer from Standard,
+ FaceInfo from NMTTools,
+ MapIntegerHasher from TColStd);
+
--
end NMTTools;
--- /dev/null
+// File generated by CPPExt (Value)
+//
+// Copyright (C) 1991 - 2000 by
+// Matra Datavision SA. All rights reserved.
+//
+// Copyright (C) 2001 - 2004 by
+// Open CASCADE SA. All rights reserved.
+//
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#ifndef _NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo_HeaderFile
+#define _NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo_HeaderFile
+
+#ifndef _TCollection_BasicMapIterator_HeaderFile
+#include <TCollection_BasicMapIterator.hxx>
+#endif
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_HeaderFile
+#include <Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx>
+#endif
+class Standard_NoSuchObject;
+class NMTTools_FaceInfo;
+class TColStd_MapIntegerHasher;
+class NMTTools_DataMapOfIntegerFaceInfo;
+class NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo;
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo : public TCollection_BasicMapIterator {
+
+public:
+
+ void* operator new(size_t,void* anAddress)
+ {
+ return anAddress;
+ }
+ void* operator new(size_t size)
+ {
+ return Standard::Allocate(size);
+ }
+ void operator delete(void *anAddress)
+ {
+ if (anAddress) Standard::Free((Standard_Address&)anAddress);
+ }
+ // Methods PUBLIC
+ //
+
+
+Standard_EXPORT NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo();
+
+
+Standard_EXPORT NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo(const NMTTools_DataMapOfIntegerFaceInfo& aMap);
+
+
+Standard_EXPORT void Initialize(const NMTTools_DataMapOfIntegerFaceInfo& aMap) ;
+
+
+Standard_EXPORT const Standard_Integer& Key() const;
+
+
+Standard_EXPORT const NMTTools_FaceInfo& Value() const;
+
+
+
+
+
+protected:
+
+ // Methods PROTECTED
+ //
+
+
+ // Fields PROTECTED
+ //
+
+
+private:
+
+ // Methods PRIVATE
+ //
+
+
+ // Fields PRIVATE
+ //
+
+
+};
+
+
+
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
--- /dev/null
+// File generated by CPPExt (Value)
+//
+// Copyright (C) 1991 - 2000 by
+// Matra Datavision SA. All rights reserved.
+//
+// Copyright (C) 2001 - 2004 by
+// Open CASCADE SA. All rights reserved.
+//
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#include <NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo.hxx>
+
+#ifndef _Standard_NoSuchObject_HeaderFile
+#include <Standard_NoSuchObject.hxx>
+#endif
+#ifndef _NMTTools_FaceInfo_HeaderFile
+#include <NMTTools_FaceInfo.hxx>
+#endif
+#ifndef _TColStd_MapIntegerHasher_HeaderFile
+#include <TColStd_MapIntegerHasher.hxx>
+#endif
+#ifndef _NMTTools_DataMapOfIntegerFaceInfo_HeaderFile
+#include <NMTTools_DataMapOfIntegerFaceInfo.hxx>
+#endif
+#ifndef _NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_HeaderFile
+#include <NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx>
+#endif
+
+
+#define TheKey Standard_Integer
+#define TheKey_hxx <Standard_Integer.hxx>
+#define TheItem NMTTools_FaceInfo
+#define TheItem_hxx <NMTTools_FaceInfo.hxx>
+#define Hasher TColStd_MapIntegerHasher
+#define Hasher_hxx <TColStd_MapIntegerHasher.hxx>
+#define TCollection_DataMapNode NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo
+#define TCollection_DataMapNode_hxx <NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx>
+#define TCollection_DataMapIterator NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo
+#define TCollection_DataMapIterator_hxx <NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo.hxx>
+#define Handle_TCollection_DataMapNode Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo
+#define TCollection_DataMapNode_Type_() NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_Type_()
+#define TCollection_DataMap NMTTools_DataMapOfIntegerFaceInfo
+#define TCollection_DataMap_hxx <NMTTools_DataMapOfIntegerFaceInfo.hxx>
+#include <TCollection_DataMapIterator.gxx>
+
--- /dev/null
+// File generated by CPPExt (Transient)
+//
+//
+// Copyright (C) 1991 - 2000 by
+// Matra Datavision SA. All rights reserved.
+//
+// Copyright (C) 2001 - 2004 by
+// Open CASCADE SA. All rights reserved.
+//
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#ifndef _NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_HeaderFile
+#define _NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_HeaderFile
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_HeaderFile
+#include <Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx>
+#endif
+
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _NMTTools_FaceInfo_HeaderFile
+#include <NMTTools_FaceInfo.hxx>
+#endif
+#ifndef _TCollection_MapNode_HeaderFile
+#include <TCollection_MapNode.hxx>
+#endif
+#ifndef _TCollection_MapNodePtr_HeaderFile
+#include <TCollection_MapNodePtr.hxx>
+#endif
+class NMTTools_FaceInfo;
+class TColStd_MapIntegerHasher;
+class NMTTools_DataMapOfIntegerFaceInfo;
+class NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo;
+
+
+
+class NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo : public TCollection_MapNode {
+
+public:
+ // Methods PUBLIC
+ //
+
+NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo(const Standard_Integer& K,const NMTTools_FaceInfo& I,const TCollection_MapNodePtr& n);
+
+ Standard_Integer& Key() const;
+
+ NMTTools_FaceInfo& Value() const;
+//Standard_EXPORT ~NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo();
+
+
+
+
+ // Type management
+ //
+ Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
+ //Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const;
+
+protected:
+
+ // Methods PROTECTED
+ //
+
+
+ // Fields PROTECTED
+ //
+
+
+private:
+
+ // Methods PRIVATE
+ //
+
+
+ // Fields PRIVATE
+ //
+Standard_Integer myKey;
+NMTTools_FaceInfo myValue;
+
+
+};
+
+#define TheKey Standard_Integer
+#define TheKey_hxx <Standard_Integer.hxx>
+#define TheItem NMTTools_FaceInfo
+#define TheItem_hxx <NMTTools_FaceInfo.hxx>
+#define Hasher TColStd_MapIntegerHasher
+#define Hasher_hxx <TColStd_MapIntegerHasher.hxx>
+#define TCollection_DataMapNode NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo
+#define TCollection_DataMapNode_hxx <NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx>
+#define TCollection_DataMapIterator NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo
+#define TCollection_DataMapIterator_hxx <NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo.hxx>
+#define Handle_TCollection_DataMapNode Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo
+#define TCollection_DataMapNode_Type_() NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_Type_()
+#define TCollection_DataMap NMTTools_DataMapOfIntegerFaceInfo
+#define TCollection_DataMap_hxx <NMTTools_DataMapOfIntegerFaceInfo.hxx>
+
+#include <TCollection_DataMapNode.lxx>
+
+#undef TheKey
+#undef TheKey_hxx
+#undef TheItem
+#undef TheItem_hxx
+#undef Hasher
+#undef Hasher_hxx
+#undef TCollection_DataMapNode
+#undef TCollection_DataMapNode_hxx
+#undef TCollection_DataMapIterator
+#undef TCollection_DataMapIterator_hxx
+#undef Handle_TCollection_DataMapNode
+#undef TCollection_DataMapNode_Type_
+#undef TCollection_DataMap
+#undef TCollection_DataMap_hxx
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
--- /dev/null
+// File generated by CPPExt (Transient)
+//
+// Copyright (C) 1991 - 2000 by
+// Matra Datavision SA. All rights reserved.
+//
+// Copyright (C) 2001 - 2004 by
+// Open CASCADE SA. All rights reserved.
+//
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#include <NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx>
+
+#ifndef _Standard_TypeMismatch_HeaderFile
+#include <Standard_TypeMismatch.hxx>
+#endif
+
+#ifndef _NMTTools_FaceInfo_HeaderFile
+#include <NMTTools_FaceInfo.hxx>
+#endif
+#ifndef _TColStd_MapIntegerHasher_HeaderFile
+#include <TColStd_MapIntegerHasher.hxx>
+#endif
+#ifndef _NMTTools_DataMapOfIntegerFaceInfo_HeaderFile
+#include <NMTTools_DataMapOfIntegerFaceInfo.hxx>
+#endif
+#ifndef _NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo_HeaderFile
+#include <NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo.hxx>
+#endif
+//NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo::~NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo() {}
+
+
+
+Standard_EXPORT Handle_Standard_Type& NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_Type_()
+{
+
+ static Handle_Standard_Type aType1 = STANDARD_TYPE(TCollection_MapNode);
+ static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared);
+ static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient);
+
+
+ static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL};
+ static Handle_Standard_Type _aType = new Standard_Type("NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo",
+ sizeof(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo),
+ 1,
+ (Standard_Address)_Ancestors,
+ (Standard_Address)NULL);
+
+ return _aType;
+}
+
+
+// DownCast method
+// allow safe downcasting
+//
+const Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo) Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo)::DownCast(const Handle(Standard_Transient)& AnObject)
+{
+ Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo) _anOtherObject;
+
+ if (!AnObject.IsNull()) {
+ if (AnObject->IsKind(STANDARD_TYPE(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo))) {
+ _anOtherObject = Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo)((Handle(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo)&)AnObject);
+ }
+ }
+
+ return _anOtherObject ;
+}
+const Handle(Standard_Type)& NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo::DynamicType() const
+{
+ return STANDARD_TYPE(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo) ;
+}
+//Standard_Boolean NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo::IsKind(const Handle(Standard_Type)& AType) const
+//{
+// return (STANDARD_TYPE(NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo) == AType || TCollection_MapNode::IsKind(AType));
+//}
+//Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo::~Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo() {}
+#define TheKey Standard_Integer
+#define TheKey_hxx <Standard_Integer.hxx>
+#define TheItem NMTTools_FaceInfo
+#define TheItem_hxx <NMTTools_FaceInfo.hxx>
+#define Hasher TColStd_MapIntegerHasher
+#define Hasher_hxx <TColStd_MapIntegerHasher.hxx>
+#define TCollection_DataMapNode NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo
+#define TCollection_DataMapNode_hxx <NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx>
+#define TCollection_DataMapIterator NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo
+#define TCollection_DataMapIterator_hxx <NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo.hxx>
+#define Handle_TCollection_DataMapNode Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo
+#define TCollection_DataMapNode_Type_() NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_Type_()
+#define TCollection_DataMap NMTTools_DataMapOfIntegerFaceInfo
+#define TCollection_DataMap_hxx <NMTTools_DataMapOfIntegerFaceInfo.hxx>
+#include <TCollection_DataMapNode.gxx>
+
--- /dev/null
+// File generated by CPPExt (Value)
+//
+// Copyright (C) 1991 - 2000 by
+// Matra Datavision SA. All rights reserved.
+//
+// Copyright (C) 2001 - 2004 by
+// Open CASCADE SA. All rights reserved.
+//
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#ifndef _NMTTools_DataMapOfIntegerFaceInfo_HeaderFile
+#define _NMTTools_DataMapOfIntegerFaceInfo_HeaderFile
+
+#ifndef _TCollection_BasicMap_HeaderFile
+#include <TCollection_BasicMap.hxx>
+#endif
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_HeaderFile
+#include <Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx>
+#endif
+#ifndef _Standard_Boolean_HeaderFile
+#include <Standard_Boolean.hxx>
+#endif
+class Standard_DomainError;
+class Standard_NoSuchObject;
+class NMTTools_FaceInfo;
+class TColStd_MapIntegerHasher;
+class NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo;
+class NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo;
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class NMTTools_DataMapOfIntegerFaceInfo : public TCollection_BasicMap {
+
+public:
+
+ void* operator new(size_t,void* anAddress)
+ {
+ return anAddress;
+ }
+ void* operator new(size_t size)
+ {
+ return Standard::Allocate(size);
+ }
+ void operator delete(void *anAddress)
+ {
+ if (anAddress) Standard::Free((Standard_Address&)anAddress);
+ }
+ // Methods PUBLIC
+ //
+
+
+Standard_EXPORT NMTTools_DataMapOfIntegerFaceInfo(const Standard_Integer NbBuckets = 1);
+
+
+Standard_EXPORT NMTTools_DataMapOfIntegerFaceInfo& Assign(const NMTTools_DataMapOfIntegerFaceInfo& Other) ;
+ NMTTools_DataMapOfIntegerFaceInfo& operator =(const NMTTools_DataMapOfIntegerFaceInfo& Other)
+{
+ return Assign(Other);
+}
+
+
+
+Standard_EXPORT void ReSize(const Standard_Integer NbBuckets) ;
+
+
+Standard_EXPORT void Clear() ;
+~NMTTools_DataMapOfIntegerFaceInfo()
+{
+ Clear();
+}
+
+
+
+Standard_EXPORT Standard_Boolean Bind(const Standard_Integer& K,const NMTTools_FaceInfo& I) ;
+
+
+Standard_EXPORT Standard_Boolean IsBound(const Standard_Integer& K) const;
+
+
+Standard_EXPORT Standard_Boolean UnBind(const Standard_Integer& K) ;
+
+
+Standard_EXPORT const NMTTools_FaceInfo& Find(const Standard_Integer& K) const;
+ const NMTTools_FaceInfo& operator()(const Standard_Integer& K) const
+{
+ return Find(K);
+}
+
+
+
+Standard_EXPORT NMTTools_FaceInfo& ChangeFind(const Standard_Integer& K) ;
+ NMTTools_FaceInfo& operator()(const Standard_Integer& K)
+{
+ return ChangeFind(K);
+}
+
+
+
+
+
+
+protected:
+
+ // Methods PROTECTED
+ //
+
+
+ // Fields PROTECTED
+ //
+
+
+private:
+
+ // Methods PRIVATE
+ //
+
+
+Standard_EXPORT NMTTools_DataMapOfIntegerFaceInfo(const NMTTools_DataMapOfIntegerFaceInfo& Other);
+
+
+ // Fields PRIVATE
+ //
+
+
+};
+
+
+
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
--- /dev/null
+// File generated by CPPExt (Value)
+//
+// Copyright (C) 1991 - 2000 by
+// Matra Datavision SA. All rights reserved.
+//
+// Copyright (C) 2001 - 2004 by
+// Open CASCADE SA. All rights reserved.
+//
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#include <NMTTools_DataMapOfIntegerFaceInfo.hxx>
+
+#ifndef _Standard_DomainError_HeaderFile
+#include <Standard_DomainError.hxx>
+#endif
+#ifndef _Standard_NoSuchObject_HeaderFile
+#include <Standard_NoSuchObject.hxx>
+#endif
+#ifndef _NMTTools_FaceInfo_HeaderFile
+#include <NMTTools_FaceInfo.hxx>
+#endif
+#ifndef _TColStd_MapIntegerHasher_HeaderFile
+#include <TColStd_MapIntegerHasher.hxx>
+#endif
+#ifndef _NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_HeaderFile
+#include <NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx>
+#endif
+#ifndef _NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo_HeaderFile
+#include <NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo.hxx>
+#endif
+
+
+#define TheKey Standard_Integer
+#define TheKey_hxx <Standard_Integer.hxx>
+#define TheItem NMTTools_FaceInfo
+#define TheItem_hxx <NMTTools_FaceInfo.hxx>
+#define Hasher TColStd_MapIntegerHasher
+#define Hasher_hxx <TColStd_MapIntegerHasher.hxx>
+#define TCollection_DataMapNode NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo
+#define TCollection_DataMapNode_hxx <NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx>
+#define TCollection_DataMapIterator NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo
+#define TCollection_DataMapIterator_hxx <NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo.hxx>
+#define Handle_TCollection_DataMapNode Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo
+#define TCollection_DataMapNode_Type_() NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo_Type_()
+#define TCollection_DataMap NMTTools_DataMapOfIntegerFaceInfo
+#define TCollection_DataMap_hxx <NMTTools_DataMapOfIntegerFaceInfo.hxx>
+#include <TCollection_DataMap.gxx>
+
--- /dev/null
+-- Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
+--
+-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+--
+-- This library is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU Lesser General Public
+-- License as published by the Free Software Foundation; either
+-- version 2.1 of the License.
+--
+-- This library is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-- Lesser General Public License for more details.
+--
+-- You should have received a copy of the GNU Lesser General Public
+-- License along with this library; if not, write to the Free Software
+-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+--
+-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+--
+
+-- File: NMTTools_FaceInfo.cdl
+-- Created: Tue Dec 9 12:11:48 2003
+-- Author: Peter KURNEV
+-- <pkv@irinox>
+--
+class FaceInfo from NMTTools
+
+ ---Purpose:
+
+uses
+ MapOfInteger from TColStd,
+ MapOfPaveBlock from NMTTools
+--raises
+
+is
+
+ Create
+ returns FaceInfo from NMTTools;
+ ---C++: inline
+ ---C++: alias "virtual ~NMTTools_FaceInfo();"
+ ---Purpose:
+ --- Empty contructor
+ ---
+
+ Clear(me:out);
+ ---Purpose:
+ --- Clears the contents
+
+ SetIndex(me:out;
+ theI: Integer from Standard);
+ ---C++: inline
+ ---Purpose:
+ --- Modifier
+ --- Sets the index of the face <theI>
+
+ Index(me)
+ returns Integer from Standard;
+ ---C++: inline
+ ---Purpose:
+ --- Selector
+ --- Returns the index of the face
+ --
+ -- In
+ --
+ PaveBlocksIn(me)
+ returns MapOfPaveBlock from NMTTools;
+ ---C++: return const &
+ ---C++: inline
+ ---Purpose:
+ --- Selector
+ --- Returns the pave blocks of the face
+ --- that have state In
+
+ ChangePaveBlocksIn(me:out)
+ returns MapOfPaveBlock from NMTTools;
+ ---C++: return &
+ ---C++: inline
+ ---Purpose:
+ --- Selector/Modifier
+ --- Returns the pave blocks
+ -- of the face
+ --- that have state In
+
+ VerticesIn(me)
+ returns MapOfInteger from TColStd;
+ ---C++: return const &
+ ---C++: inline
+ ---Purpose:
+ --- Selector
+ --- Returns the list of indices for vertices
+ -- of the face
+ --- that have state In
+
+ ChangeVerticesIn(me:out)
+ returns MapOfInteger from TColStd;
+ ---C++: return &
+ ---C++: inline
+ ---Purpose:
+ --- Selector/Modifier
+ --- Returns the list of indices for vertices
+ -- of the face
+ --- that have state In
+ --
+ -- On
+ --
+ PaveBlocksOn(me)
+ returns MapOfPaveBlock from NMTTools;
+ ---C++: return const &
+ ---C++: inline
+ ---Purpose:
+ --- Selector
+ --- Returns the pave blocks of the face
+ --- that have state On
+
+ ChangePaveBlocksOn(me:out)
+ returns MapOfPaveBlock from NMTTools;
+ ---C++: return &
+ ---C++: inline
+ ---Purpose:
+ --- Selector/Modifier
+ --- Returns the pave blocks
+ -- of the face
+ --- that have state On
+ VerticesOn(me)
+ returns MapOfInteger from TColStd;
+ ---C++: return const &
+ ---C++: inline
+ ---Purpose:
+ --- Selector
+ --- Returns the list of indices for vertices
+ -- of the face
+ --- that have state On
+
+ ChangeVerticesOn(me:out)
+ returns MapOfInteger from TColStd;
+ ---C++: return &
+ ---C++: inline
+ ---Purpose:
+ --- Selector/Modifier
+ --- Returns the list of indices for vertices
+ -- of the face
+ --- that have state On
+
+fields
+ myIndex : Integer from Standard is protected;
+ myPaveBlocksIn: MapOfPaveBlock from NMTTools is protected;
+ myVerticesIn : MapOfInteger from TColStd is protected;
+ myPaveBlocksOn: MapOfPaveBlock from NMTTools is protected;
+ myVerticesOn : MapOfInteger from TColStd is protected;
+
+end FaceInfo;
+
+
+
+
+
+
+
+
--- /dev/null
+// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+// File: NMTTools_FaceInfo.cxx
+// Created: Tue Dec 9 12:23:29 2003
+// Author: Peter KURNEV
+// <pkv@irinox>
+//
+#include <NMTTools_FaceInfo.ixx>
--- /dev/null
+// File generated by CPPExt (Value)
+//
+// Copyright (C) 1991 - 2000 by
+// Matra Datavision SA. All rights reserved.
+//
+// Copyright (C) 2001 - 2004 by
+// Open CASCADE SA. All rights reserved.
+//
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#ifndef _NMTTools_FaceInfo_HeaderFile
+#define _NMTTools_FaceInfo_HeaderFile
+
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _NMTTools_MapOfPaveBlock_HeaderFile
+#include <NMTTools_MapOfPaveBlock.hxx>
+#endif
+#ifndef _TColStd_MapOfInteger_HeaderFile
+#include <TColStd_MapOfInteger.hxx>
+#endif
+class NMTTools_MapOfPaveBlock;
+class TColStd_MapOfInteger;
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class NMTTools_FaceInfo {
+
+public:
+
+ void* operator new(size_t,void* anAddress)
+ {
+ return anAddress;
+ }
+ void* operator new(size_t size)
+ {
+ return Standard::Allocate(size);
+ }
+ void operator delete(void *anAddress)
+ {
+ if (anAddress) Standard::Free((Standard_Address&)anAddress);
+ }
+ // Methods PUBLIC
+ //
+
+//! Empty contructor <br>
+//! <br>
+NMTTools_FaceInfo();
+virtual ~NMTTools_FaceInfo();
+
+
+//! Clears the contents <br>
+Standard_EXPORT void Clear() ;
+
+//! Modifier <br>
+//! Sets the index of the face <theI> <br>
+ void SetIndex(const Standard_Integer theI) ;
+
+//! Selector <br>
+//! Returns the index of the face <br>
+//! <br>
+//! In <br>
+//! <br>
+ Standard_Integer Index() const;
+
+//! Selector <br>
+//! Returns the pave blocks of the face <br>
+//! that have state In <br>
+ const NMTTools_MapOfPaveBlock& PaveBlocksIn() const;
+
+//! Selector/Modifier <br>
+//! Returns the pave blocks <br>
+//! of the face <br>
+//! that have state In <br>
+ NMTTools_MapOfPaveBlock& ChangePaveBlocksIn() ;
+
+//! Selector <br>
+//! Returns the list of indices for vertices <br>
+//! of the face <br>
+//! that have state In <br>
+ const TColStd_MapOfInteger& VerticesIn() const;
+
+//! Selector/Modifier <br>
+//! Returns the list of indices for vertices <br>
+//! of the face <br>
+//! that have state In <br>
+//! <br>
+//! On <br>
+//! <br>
+ TColStd_MapOfInteger& ChangeVerticesIn() ;
+
+//! Selector <br>
+//! Returns the pave blocks of the face <br>
+//! that have state On <br>
+ const NMTTools_MapOfPaveBlock& PaveBlocksOn() const;
+
+//! Selector/Modifier <br>
+//! Returns the pave blocks <br>
+//! of the face <br>
+//! that have state On <br>
+ NMTTools_MapOfPaveBlock& ChangePaveBlocksOn() ;
+
+//! Selector <br>
+//! Returns the list of indices for vertices <br>
+//! of the face <br>
+//! that have state On <br>
+ const TColStd_MapOfInteger& VerticesOn() const;
+
+//! Selector/Modifier <br>
+//! Returns the list of indices for vertices <br>
+//! of the face <br>
+//! that have state On <br>
+ TColStd_MapOfInteger& ChangeVerticesOn() ;
+
+
+
+
+
+protected:
+
+ // Methods PROTECTED
+ //
+
+
+ // Fields PROTECTED
+ //
+Standard_Integer myIndex;
+NMTTools_MapOfPaveBlock myPaveBlocksIn;
+TColStd_MapOfInteger myVerticesIn;
+NMTTools_MapOfPaveBlock myPaveBlocksOn;
+TColStd_MapOfInteger myVerticesOn;
+
+
+private:
+
+ // Methods PRIVATE
+ //
+
+
+ // Fields PRIVATE
+ //
+
+
+};
+
+
+#include <NMTTools_FaceInfo.lxx>
+
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
--- /dev/null
+// File generated by CPPExt (Value)
+//
+// Copyright (C) 1991 - 2000 by
+// Matra Datavision SA. All rights reserved.
+//
+// Copyright (C) 2001 - 2004 by
+// Open CASCADE SA. All rights reserved.
+//
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#include <NMTTools_FaceInfo.jxx>
+
+
+
+
--- /dev/null
+#ifndef _NMTTools_MapOfPaveBlock_HeaderFile
+#include <NMTTools_MapOfPaveBlock.hxx>
+#endif
+#ifndef _TColStd_MapOfInteger_HeaderFile
+#include <TColStd_MapOfInteger.hxx>
+#endif
+#ifndef _NMTTools_FaceInfo_HeaderFile
+#include <NMTTools_FaceInfo.hxx>
+#endif
--- /dev/null
+// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// File: NMTTools_FaceInfo.lxx
+// Created: Tue Dec 9 12:23:29 2003
+// Author: Peter KURNEV
+// <pkv@irinox>
+//
+
+//=======================================================================
+//function :
+//purpose :
+//=======================================================================
+inline NMTTools_FaceInfo::NMTTools_FaceInfo()
+:
+ myIndex(-1)
+{
+}
+//=======================================================================
+//function : ~
+//purpose :
+//=======================================================================
+inline NMTTools_FaceInfo::~NMTTools_FaceInfo()
+{
+ Clear();
+}
+//=======================================================================
+//function : Clear
+//purpose :
+//=======================================================================
+inline void NMTTools_FaceInfo::Clear()
+{
+ myIndex=-1;
+ myPaveBlocksIn.Clear();
+ myVerticesIn.Clear();
+ myPaveBlocksOn.Clear();
+ myVerticesOn.Clear();
+}
+//=======================================================================
+//function : SetIndex
+//purpose :
+//=======================================================================
+ inline void NMTTools_FaceInfo::SetIndex(const Standard_Integer theI)
+{
+ myIndex=theI;
+}
+//=======================================================================
+//function : Index
+//purpose :
+//=======================================================================
+ inline Standard_Integer NMTTools_FaceInfo::Index()const
+{
+ return myIndex;
+}
+//=======================================================================
+//function : PaveBlockIn
+//purpose :
+//=======================================================================
+ inline const NMTTools_MapOfPaveBlock& NMTTools_FaceInfo::PaveBlocksIn()const
+{
+ return myPaveBlocksIn;
+}
+//=======================================================================
+//function : ChangePaveBlocksIn
+//purpose :
+//=======================================================================
+ inline NMTTools_MapOfPaveBlock& NMTTools_FaceInfo::ChangePaveBlocksIn()
+{
+ return myPaveBlocksIn;
+}
+//=======================================================================
+//function : VerticesIn
+//purpose :
+//=======================================================================
+ inline const TColStd_MapOfInteger& NMTTools_FaceInfo::VerticesIn()const
+{
+ return myVerticesIn;
+}
+//=======================================================================
+//function : ChangeVerticesIn
+//purpose :
+//=======================================================================
+ inline TColStd_MapOfInteger& NMTTools_FaceInfo::ChangeVerticesIn()
+{
+ return myVerticesIn;
+}
+//=======================================================================
+//function : PaveBlockOn
+//purpose :
+//=======================================================================
+ inline const NMTTools_MapOfPaveBlock& NMTTools_FaceInfo::PaveBlocksOn()const
+{
+ return myPaveBlocksOn;
+}
+//=======================================================================
+//function : ChangePaveBlocksOn
+//purpose :
+//=======================================================================
+ inline NMTTools_MapOfPaveBlock& NMTTools_FaceInfo::ChangePaveBlocksOn()
+{
+ return myPaveBlocksOn;
+}
+//=======================================================================
+//function : VerticesOn
+//purpose :
+//=======================================================================
+ inline const TColStd_MapOfInteger& NMTTools_FaceInfo::VerticesOn()const
+{
+ return myVerticesOn;
+}
+//=======================================================================
+//function : ChangeVerticesOn
+//purpose :
+//=======================================================================
+ inline TColStd_MapOfInteger& NMTTools_FaceInfo::ChangeVerticesOn()
+{
+ return myVerticesOn;
+}
---Purpose:
uses
- DataMapOfIntegerInteger from TColStd,
+ DataMapOfIntegerInteger from TColStd,
+ ListOfInteger from TColStd,
+ MapOfInteger from TColStd,
+
Pnt from gp,
ShapeEnum from TopAbs,
Vertex from TopoDS,
Edge from TopoDS,
ListOfShape from TopTools,
DataMapOfShapeShape from TopTools,
- ListOfInteger from TColStd,
-
+
Context from IntTools,
ShrunkRange from IntTools,
PaveSet from BOPTools,
Curve from BOPTools,
SSInterference from BOPTools,
-
IDMapOfPaveBlockIMapOfPaveBlock from BOPTools,
IDMapOfPaveBlockIMapOfInteger from BOPTools,
- SSIntersectionAttribute from BOPTools,
+ SSIntersectionAttribute from BOPTools,
- CommonBlockPool from NMTTools,
- CommonBlock from NMTTools,
- ListOfCommonBlock from NMTTools,
-
ShapesDataStructure from NMTDS,
-
PShapesDataStructure from NMTDS,
- Iterator from NMTDS,
- IndexedDataMapOfIndexedMapOfInteger from NMTTools,
-
+ Iterator from NMTDS,
PIterator from NMTDS,
- PInterfPool from NMTDS
+ PInterfPool from NMTDS,
+
+ CommonBlockPool from NMTTools,
+ CommonBlock from NMTTools,
+ ListOfCommonBlock from NMTTools,
+ DataMapOfIntegerFaceInfo from NMTTools,
+ IndexedDataMapOfIndexedMapOfInteger from NMTTools
--raises
nF1 :Integer from Standard;
nF2 :Integer from Standard;
aLs :out ListOfPaveBlock from BOPTools);
- --
+
PrepareSetForFace(me:out;
nF1 :Integer from Standard;
nF2 :Integer from Standard;
aLPB: ListOfPaveBlock from BOPTools;
aPSF:out PaveSet from BOPTools);
-
+
PutPaveOnCurve(me:out;
- aPSF: PaveSet from BOPTools;
+ aPSF: PaveSet from BOPTools;
aTol: Real from Standard;
- aBC : out Curve from BOPTools);
-
+ aBC : out Curve from BOPTools);
+
+
+
PutBoundPaveOnCurve (me:out;
aBC :out Curve from BOPTools;
aFF :out SSInterference from BOPTools);
returns PavePool from BOPTools;
---C++:return &
- --modified by NIZNHY-PKV Thu Nov 11 08:12:50 2010f
CheckCoincidence (me:out;
aPB1 : PaveBlock from BOPTools;
aPB2 : PaveBlock from BOPTools)
- returns Boolean from Standard;
- --modified by NIZNHY-PKV Thu Nov 11 08:12:54 2010t
-
+ returns Boolean from Standard;
+
+--modified by NIZNHY-PKV Wed Feb 09 10:10:48 2011f
+ FillFaceInfo (me:out)
+ is protected;
+
+ CorrectTolR3D(me:out;
+ aFF : SSInterference from BOPTools;
+ aMVStick: MapOfInteger from TColStd;
+ aTolR3D: out Real from Standard)
+ is protected;
+--modified by NIZNHY-PKV Wed Feb 09 10:11:52 2011t
+
fields
myDS : PShapesDataStructure from NMTDS is protected;
myIsDone : Boolean from Standard is protected;
myDSIt : PIterator from NMTDS is protected;
myCompositeShape : Shape from TopoDS is protected;
myIP : PInterfPool from NMTDS is protected;
-
+--modified by NIZNHY-PKV Wed Feb 09 10:51:50 2011f
+ myFaceInfo : DataMapOfIntegerFaceInfo from NMTTools is protected;
+--modified by NIZNHY-PKV Wed Feb 09 10:51:50 2011t
end PaveFiller;
#ifndef _NMTDS_PInterfPool_HeaderFile
#include <NMTDS_PInterfPool.hxx>
#endif
+#ifndef _NMTTools_DataMapOfIntegerFaceInfo_HeaderFile
+#include <NMTTools_DataMapOfIntegerFaceInfo.hxx>
+#endif
#ifndef _TopAbs_ShapeEnum_HeaderFile
#include <TopAbs_ShapeEnum.hxx>
#endif
class TopTools_ListOfShape;
class TopoDS_Edge;
class TopTools_DataMapOfShapeShape;
+class TColStd_MapOfInteger;
#ifndef _Standard_HeaderFile
Standard_EXPORT void MakeAloneVertices() ;
+Standard_EXPORT void FillFaceInfo() ;
+
+
+Standard_EXPORT void CorrectTolR3D(const BOPTools_SSInterference& aFF,const TColStd_MapOfInteger& aMVStick,Standard_Real& aTolR3D) ;
+
+
// Fields PROTECTED
//
NMTDS_PShapesDataStructure myDS;
NMTDS_PIterator myDSIt;
TopoDS_Shape myCompositeShape;
NMTDS_PInterfPool myIP;
+NMTTools_DataMapOfIntegerFaceInfo myFaceInfo;
private:
-// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-
#ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx>
#endif
#ifndef _TopTools_DataMapOfShapeShape_HeaderFile
#include <TopTools_DataMapOfShapeShape.hxx>
#endif
+#ifndef _TColStd_MapOfInteger_HeaderFile
+#include <TColStd_MapOfInteger.hxx>
+#endif
#ifndef _NMTTools_PaveFiller_HeaderFile
#include <NMTTools_PaveFiller.hxx>
#endif
#include <TColStd_MapIteratorOfMapOfInteger.hxx>
#include <TColStd_DataMapOfIntegerListOfInteger.hxx>
#include <TColStd_ListOfInteger.hxx>
-#include <TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger.hxx>
#include <TColStd_ListIteratorOfListOfInteger.hxx>
+#include <TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger.hxx>
+
#include <Geom_TrimmedCurve.hxx>
#include <Geom2d_TrimmedCurve.hxx>
#include <Geom2d_Curve.hxx>
#include <GeomAdaptor_Curve.hxx>
+#include <GeomAdaptor_Surface.hxx>
+#include <Geom_Surface.hxx>
#include <BndLib_Add3dCurve.hxx>
#include <IntTools_FaceFace.hxx>
#include <IntTools_Tools.hxx>
#include <IntTools_ShrunkRange.hxx>
+#include <IntTools_Context.hxx>
#include <BOPTools_CArray1OfSSInterference.hxx>
-
+#include <BOPTools_VSInterference.hxx>
+#include <BOPTools_ESInterference.hxx>
#include <BOPTools_SSInterference.hxx>
#include <BOPTools_ListOfPaveBlock.hxx>
#include <BOPTools_ListIteratorOfListOfPaveBlock.hxx>
#include <BOPTools_Tools.hxx>
#include <BOPTools_PaveBlockIterator.hxx>
#include <BOPTools_Tools2D.hxx>
+#include <BOPTools_Tools3D.hxx>
#include <NMTDS_Iterator.hxx>
#include <NMTDS_ShapesDataStructure.hxx>
#include <NMTTools_Tools.hxx>
#include <NMTTools_IndexedDataMapOfShapePaveBlock.hxx>
+#include <NMTTools_CommonBlock.hxx>
#include <NMTTools_CommonBlockAPI.hxx>
+#include <NMTTools_ListOfCommonBlock.hxx>
+#include <NMTTools_ListIteratorOfListOfCommonBlock.hxx>
#include <NMTTools_DataMapOfIntegerListOfPaveBlock.hxx>
#include <NMTTools_ListIteratorOfListOfCommonBlock.hxx>
-
#include <NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx>
#include <NMTTools_MapOfPaveBlock.hxx>
+#include <NMTTools_MapIteratorOfMapOfPaveBlock.hxx>
+#include <NMTTools_FaceInfo.hxx>
+#include <NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo.hxx>
static
Standard_Boolean IsMicroEdge(const TopoDS_Edge& aE,
Standard_Integer i, aNbFFs, nF1, nF2;
Standard_Integer nV1, nV2, j, aNbCurves;
Standard_Real aTolR3D, aTol2D, aT1, aT2, aTolPPC=Precision::PConfusion();
+ TopoDS_Face aF1, aF2;
NMTTools_IndexedDataMapOfShapePaveBlock aMEPB;
BooleanOperations_IndexedDataMapOfShapeInteger aMapEI;
BOPTools_ListIteratorOfListOfPaveBlock anIt;
//
BOPTools_CArray1OfSSInterference& aFFs=myIP->SSInterferences();
//
- aNbFFs=aFFs.Extent();
+
//
- NMTTools_DataMapOfIntegerListOfPaveBlock aMFInOn;
- NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock aItMF;
- //---
- {
- Standard_Integer aNbS, aNbF, nF, aNbOn, nSp;
- TopAbs_ShapeEnum aType;
- BOPTools_ListIteratorOfListOfPaveBlock anItPB;
- NMTTools_ListIteratorOfListOfCommonBlock aItCB;
- TColStd_ListIteratorOfListOfInteger aItF;
- //
- aNbS=myDS->NumberOfShapesOfTheObject();
- for (i=1; i<=aNbS; ++i) {
- const TopoDS_Shape& aS=myDS->Shape(i);
- aType=aS.ShapeType();
- //
- if (aType==TopAbs_EDGE) {
- const NMTTools_ListOfCommonBlock& aLCB=myCommonBlockPool(myDS->RefEdge(i));
- aItCB.Initialize(aLCB);
- for (; aItCB.More(); aItCB.Next()) {
- const NMTTools_CommonBlock& aCB=aItCB.Value();
- const BOPTools_PaveBlock &aPB1=aCB.PaveBlock1();
- //
- const TColStd_ListOfInteger& aLF=aCB.Faces();
- aNbF=aLF.Extent();
- if (aNbF) {
- aItF.Initialize(aLF);
- for (; aItF.More(); aItF.Next()) {
- nF=aItF.Value();
- if (aMFInOn.IsBound(nF)) {
- BOPTools_ListOfPaveBlock& aLPB=aMFInOn.ChangeFind(nF);
- aLPB.Append(aPB1);
- }
- else {
- BOPTools_ListOfPaveBlock aLPB;
- aLPB.Append(aPB1);
- aMFInOn.Bind(nF, aLPB);
- }
- }
- }// if (aNbF) {
- } // for (; aItCB.More(); aItCB.Next()) {
- }//if (aS.ShapeType()==TopAbs_EDGE) {
- //
- else if (aType==TopAbs_FACE) {
- BOPTools_ListOfPaveBlock aLPBOn;
- //
- nF=i;
- RealSplitsFace(nF, aLPBOn);
- //
- aNbOn=aLPBOn.Extent();
- if (aNbOn) {
- if (aMFInOn.IsBound(nF)) {
- BOPTools_ListOfPaveBlock& aLPB=aMFInOn.ChangeFind(nF);
- aLPB.Append(aLPBOn);
- }
- else {
- aMFInOn.Bind(nF, aLPBOn);
- }
- }
- }
- } // for (i=1; i<=aNbS; ++i) {
- //
- // Refine ListOfPaveBlocks
- aItMF.Initialize(aMFInOn);
- for(; aItMF.More(); aItMF.Next()) {
- TColStd_MapOfInteger aMTmp;
- BOPTools_ListOfPaveBlock aLPBX;
- //
- nF=aItMF.Key();
- BOPTools_ListOfPaveBlock& aLPB=aMFInOn.ChangeFind(nF);
- anItPB.Initialize(aLPB);
- for (; anItPB.More(); anItPB.Next()) {
- const BOPTools_PaveBlock& aPB=anItPB.Value();
- nSp=aPB.Edge();
- if (aMTmp.Add(nSp)) {
- aLPBX.Append(aPB);
- }
- }
- aLPB.Clear();
- aLPB.Append(aLPBX);
- }
- }
- //---
- //
- // 1. Produce Section Edges from intersection curves
+ // 1. Make Section Edges from intersection curves
// between each pair of faces
aNbFFs=aFFs.Extent();
+ if (!aNbFFs) {
+ return;
+ }
+ //
+ FillFaceInfo();
//
for (i=1; i<=aNbFFs; ++i) {
+ BOPTools_ListOfPaveBlock aLPB;
+ TColStd_MapOfInteger aMVStick;
+ TopTools_ListOfShape aLSE;
+ TColStd_ListOfInteger aLNE;
+ BOPTools_PaveSet aPSF;
+ NMTTools_MapOfPaveBlock aMPBX;
+ TColStd_MapIteratorOfMapOfInteger aItMI;
+ NMTTools_MapIteratorOfMapOfPaveBlock aItMPB;
+ //
BOPTools_SSInterference& aFFi=aFFs(i);
//
// Faces
aFFi.Indices(nF1, nF2);
- const TopoDS_Face aF1=TopoDS::Face(myDS->Shape(nF1));//mpv
- const TopoDS_Face aF2=TopoDS::Face(myDS->Shape(nF2));//mpv
+ aF1=*((TopoDS_Face*)(&myDS->Shape(nF1)));
+ aF2=*((TopoDS_Face*)(&myDS->Shape(nF2)));
//
- BOPTools_ListOfPaveBlock aLPB;
+ SharedEdges(nF1, nF2, aLNE, aLSE);
+ aFFi.SetSharedEdges(aLNE);
//
- //---
- {
- BOPTools_ListIteratorOfListOfPaveBlock anItPB;
- NMTTools_MapOfPaveBlock aMPB;
+ // aMVStick
+ const NMTTools_FaceInfo& aFI1=myFaceInfo.Find(nF1);
+ const NMTTools_FaceInfo& aFI2=myFaceInfo.Find(nF2);
+ //
+ const TColStd_MapOfInteger& aMVOn1=aFI1.VerticesOn();
+ const TColStd_MapOfInteger& aMVIn1=aFI1.VerticesIn();
+ const TColStd_MapOfInteger& aMVOn2=aFI2.VerticesOn();
+ const TColStd_MapOfInteger& aMVIn2=aFI2.VerticesIn();
+ //
+ for (j=0; j<2; ++j) {
+ const TColStd_MapOfInteger& aMV1=(!j) ? aMVOn1 :aMVIn1;
+ aItMI.Initialize(aMV1);
+ for (; aItMI.More(); aItMI.Next()) {
+ nV1=aItMI.Key();
+ if (aMVOn2.Contains(nV1) || aMVIn2.Contains(nV1)) {
+ aMVStick.Add(nV1);
+ }
+ }
+ }
+ //
+ // aLPB
+ const NMTTools_MapOfPaveBlock& aMPBIn1=aFI1.PaveBlocksIn();
+ const NMTTools_MapOfPaveBlock& aMPBOn1=aFI1.PaveBlocksOn();
+ const NMTTools_MapOfPaveBlock& aMPBIn2=aFI2.PaveBlocksIn();
+ const NMTTools_MapOfPaveBlock& aMPBOn2=aFI2.PaveBlocksOn();
+ //
+ aMPBX.Clear();
+ for (j=0; j<4; ++j) {
+ NMTTools_MapOfPaveBlock *pMPB;
//
- if (aMFInOn.IsBound(nF1)) {
- const BOPTools_ListOfPaveBlock& aLPBF1=aMFInOn.Find(nF1);
- anItPB.Initialize(aLPBF1);
- for (; anItPB.More(); anItPB.Next()) {
- const BOPTools_PaveBlock& aPB=anItPB.Value();
- if (aMPB.Add(aPB)) {
- aLPB.Append(aPB);
- }
- }
+ if (!j) {
+ pMPB=((NMTTools_MapOfPaveBlock*)&aMPBIn1);
}
- if (aMFInOn.IsBound(nF2)) {
- const BOPTools_ListOfPaveBlock& aLPBF2=aMFInOn.Find(nF2);
- anItPB.Initialize(aLPBF2);
- for (; anItPB.More(); anItPB.Next()) {
- const BOPTools_PaveBlock& aPB=anItPB.Value();
- if (aMPB.Contains(aPB)) {
- aFFi.AppendBlock(aPB);
- }
- else {
- aLPB.Append(aPB);
- }
- }
+ else if (j==1) {
+ pMPB=((NMTTools_MapOfPaveBlock*)&aMPBOn1);
+ }
+ else if (j==2) {
+ pMPB=((NMTTools_MapOfPaveBlock*)&aMPBIn2);
+ }
+ else if (j==3) {
+ pMPB=((NMTTools_MapOfPaveBlock*)&aMPBOn2);
+ }
+ //
+ const NMTTools_MapOfPaveBlock& aMPB=*pMPB;
+ aItMPB.Initialize(aMPB);
+ for (; aItMPB.More(); aItMPB.Next()) {
+ const BOPTools_PaveBlock& aPB=aItMPB.Key();
+ if (aMPBX.Add(aPB)) {
+ aLPB.Append(aPB);
+ }
+ //
+ else {
+ if (j>1) {
+ aFFi.AppendBlock(aPB);
+ }
+ }
+ //
}
}
- //---
- //
- TopTools_ListOfShape aLSE;
- TColStd_ListOfInteger aLNE;
- SharedEdges(nF1, nF2, aLNE, aLSE);
- aFFi.SetSharedEdges(aLNE);
//
BOPTools_SequenceOfCurves& aSCvs=aFFi.Curves();
aNbCurves=aSCvs.Length();
continue;
}
//
- // Contribution of Samtech www.samcef.com END
aTolR3D=aFFi.TolR3D();
aTol2D=(aTolR3D < 1.e-3) ? 1.e-3 : aTolR3D;
//
- BOPTools_PaveSet aPSF;
+ CorrectTolR3D(aFFi, aMVStick, aTolR3D);
//
PrepareSetForFace (nF1, nF2, aLPB, aPSF);
//
// Put Paves On Curves
for (j=1; j<=aNbCurves; ++j) {
BOPTools_Curve& aBC=aSCvs(j);
- // DEBUG f
const IntTools_Curve& aC=aBC.Curve();
+ // DEBUG f
Handle(Geom_Curve) aC3D = aC.Curve();
// DEBUG t
PutPaveOnCurve (aPSF, aTolR3D, aBC);
continue;
}
//
- // Modified
- // to provide checking whether aPBNew already exists in list
- // of section edges aLSE
- // Thu Sep 14 14:35:18 2006
- // Contribution of Samtech www.samcef.com BEGIN
// 2
bIsExistingPaveBlock=IsExistingPaveBlock(aPBNew, aLSE, aTolR3D);
if (bIsExistingPaveBlock) {
continue;
}
- // Contribution of Samtech www.samcef.com END
- //
+ //
// Checking of validity in 2D
//
bIsValidIn2D=myContext.IsValidBlockForFaces(aT1, aT2, aIC, aF1, aF2, aTol2D);
const TopoDS_Vertex aV1=TopoDS::Vertex(myDS->Shape(nV1));
const TopoDS_Vertex aV2=TopoDS::Vertex(myDS->Shape(nV2));
//
- //modified by NIZNHY-PKV Thu Apr 22 07:54:35 2010f
{
Standard_Real aT;
//
myContext.IsVertexOnLine(aV2, aIC, aTolR3D, aT);
BOPTools_Tools::UpdateVertex (aIC, aT, aV2);
}
- //modified by NIZNHY-PKV Thu Apr 22 07:54:37 2010t
//
BOPTools_Tools::MakeSectEdge (aIC, aV1, aT1, aV2, aT2, aES);
//
// 2.1.VV
tPF.Init();
tPF.PerformVV();
- //tPF.PerformNewVertices(); qq
//
// 2.2.VE
tPF.myPavePool.Resize (tPF.myNbEdges);
//
return bRet;
}
-
//=======================================================================
// function: PutPaveOnCurve
// purpose:
const BOPTools_Pave& aPave=anIt.Value();
//
nV=aPave.Index();
- const TopoDS_Vertex aV=TopoDS::Vertex(myDS->Shape(nV));//mpv
+ const TopoDS_Vertex aV=TopoDS::Vertex(myDS->Shape(nV));
//
Bnd_Box aBBV;
BRepBndLib::Add(aV, aBBV);
//
bIsVertexOnLine=myContext.IsVertexOnLine(aV, aC, aTolR3D, aT);
//
+ //
if (bIsVertexOnLine) {
BOPTools_Pave aPaveNew(nV, aT, BooleanOperations_SurfaceSurface);
BOPTools_PaveSet& aPS=aBC.Set();
}
}
}
+//modified by NIZNHY-PKV Tue Feb 08 12:24:35 2011f
+//
+//=======================================================================
+//function : FillFaceInfo
+//purpose :
+//=======================================================================
+void NMTTools_PaveFiller::FillFaceInfo()
+{
+ Standard_Integer i, aNbS, aNbFFs, nF, aNbVFs, aNbEFs, j, n1, n2, nX, aNbF;
+ TopAbs_ShapeEnum aType;
+ TopoDS_Shape aS;
+ TColStd_ListIteratorOfListOfInteger aItF;
+ BOPTools_ListIteratorOfListOfPaveBlock anItPB;
+ NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo aItMFI;
+ NMTTools_ListIteratorOfListOfCommonBlock aItCB;
+ //
+ myFaceInfo.Clear();
+ //
+ BOPTools_CArray1OfSSInterference& aFFs=myIP->SSInterferences();
+ BOPTools_CArray1OfVSInterference& aVFs=myIP->VSInterferences();
+ BOPTools_CArray1OfESInterference& aEFs=myIP->ESInterferences();
+ //
+ aNbFFs=aFFs.Extent();
+ if (!aNbFFs) {
+ return;
+ }
+ //
+ // 0.
+ for (i=1; i<=aNbFFs; ++i) {
+ NMTTools_FaceInfo aFI;
+ //
+ BOPTools_SSInterference& aFFi=aFFs(i);
+ aFFi.Indices(n1, n2);
+ myFaceInfo.Bind(n1, aFI);
+ myFaceInfo.Bind(n2, aFI);
+ }
+ //
+ // 1.
+ aNbS=myDS->NumberOfShapesOfTheObject();
+ for (i=1; i<=aNbS; ++i) {
+ aS=myDS->Shape(i);
+ aType=aS.ShapeType();
+ if (aType==TopAbs_EDGE) {
+ const NMTTools_ListOfCommonBlock& aLCB=myCommonBlockPool(myDS->RefEdge(i));
+ aItCB.Initialize(aLCB);
+ for (; aItCB.More(); aItCB.Next()) {
+ const NMTTools_CommonBlock& aCB=aItCB.Value();
+ const BOPTools_PaveBlock &aPB1=aCB.PaveBlock1();
+ const TColStd_ListOfInteger& aLF=aCB.Faces();
+ aNbF=aLF.Extent();
+ if (!aNbF) {
+ continue;
+ }
+ //
+ aItF.Initialize(aLF);
+ for (; aItF.More(); aItF.Next()) {
+ nF=aItF.Value();
+ if (!myFaceInfo.IsBound(nF)) {
+ continue;
+ }
+ //
+ NMTTools_FaceInfo& aFI=myFaceInfo.ChangeFind(nF);
+ aFI.ChangePaveBlocksIn().Add(aPB1);
+ //
+ n1=aPB1.Pave1().Index();
+ n2=aPB1.Pave2().Index();
+ aFI.ChangeVerticesIn().Add(n1);
+ aFI.ChangeVerticesIn().Add(n2);
+ }
+ }
+ }// if (aType==TopAbs_EDGE) {
+ else if (aType==TopAbs_FACE) {
+ if (!myFaceInfo.IsBound(i)) {
+ continue;
+ }
+ //
+ BOPTools_ListOfPaveBlock aLPBOn;
+ //
+ nF=i;
+ NMTTools_FaceInfo& aFI=myFaceInfo.ChangeFind(nF);
+ //
+ RealSplitsFace(nF, aLPBOn);
+ //
+ anItPB.Initialize(aLPBOn);
+ for (; anItPB.More(); anItPB.Next()) {
+ const BOPTools_PaveBlock &aPB=anItPB.Value();
+ aFI.ChangePaveBlocksOn().Add(aPB);
+ //
+ n1=aPB.Pave1().Index();
+ n2=aPB.Pave2().Index();
+ aFI.ChangeVerticesOn().Add(n1);
+ aFI.ChangeVerticesOn().Add(n2);
+ }
+ //
+ }// else if (aType==TopAbs_FACE) {
+ }// for (i=1; i<=aNbS; ++i) {
+ //
+ // 2.
+ aItMFI.Initialize(myFaceInfo);
+ for (; aItMFI.More(); aItMFI.Next()) {
+ nF=aItMFI.Key();
+ NMTTools_FaceInfo& aFI=*((NMTTools_FaceInfo*)&aItMFI.Value());
+ //
+ aFI.SetIndex(nF);
+ //
+ //
+ // 2.1 aVFs
+ aNbVFs=aVFs.Extent();
+ for (j=1; j<=aNbVFs; ++j) {
+ BOPTools_VSInterference& aVFj=aVFs(j);
+ aVFj.Indices(n1, n2);
+ if (nF==n1) {
+ aFI.ChangeVerticesIn().Add(n2);
+ }
+ else if (nF==n2){
+ aFI.ChangeVerticesIn().Add(n1);
+ }
+ }// for (j=1; j<=aNbVFs; ++j) {
+ //
+ // 2.2 aEFs
+ aNbEFs=aEFs.Extent();
+ for (j=1; j<=aNbEFs; ++j) {
+ BOPTools_ESInterference& aEFj=aEFs(j);
+ aEFj.Indices(n1, n2);
+ if (!(nF==n1 || nF==n2)) {
+ continue;
+ }
+ //
+ nX=aEFj.NewShape();
+ if (nX<1) {
+ continue;
+ }
+ //
+ aS=myDS->Shape(nX);
+ aType=aS.ShapeType();
+ if (aType!=TopAbs_VERTEX) {
+ continue;
+ }
+ //
+ aFI.ChangeVerticesIn().Add(nX);
+ }// for (j=1; j<=aNbEFs; ++j) {
+ }// for (; aItMFI.More(); aItMFI.Next()) {
+}
+
+
+#include <gp_Pnt.hxx>
+#include <gp_Dir.hxx>
+#include <gp_Vec.hxx>
+#include <GeomAPI_ProjectPointOnSurf.hxx>
+//=======================================================================
+//function : CorrectTolR3D
+//purpose : Attempt to correct the value of tolerance aTolR3D for
+// the intersection curve in order to
+// compel it to pass through the sticks.
+// Prerequisites:
+// 2. The are based on B-Spline surfaces;
+// 1. There is at least the one intersection curve;
+// 2. The faces have stick vertices to catch the curve;
+// 3. The intersection angle is rather small (0.7-7 deg)
+//
+//=======================================================================
+void NMTTools_PaveFiller::CorrectTolR3D(const BOPTools_SSInterference& aFF,
+ const TColStd_MapOfInteger& aMVStick,
+ Standard_Real& aTolR3D)
+
+{
+ Standard_Boolean bHasBounds;
+ Standard_Integer i, nF[2], nV, aNbCurves;
+ Standard_Real aT1, aT2, aU, aV, aT, aA, aTolV, aTolVmax;
+ Standard_Real aTolR, aTolTresh, aAmin, aAmax;
+ TColStd_MapIteratorOfMapOfInteger aIt;
+ gp_Pnt aP, aP1, aP2;
+ gp_Dir aDN[2];
+ gp_Vec aVT;
+ Handle(Geom_Surface) aS[2];
+ Handle(Geom_Curve) aC3D;
+ GeomAdaptor_Surface aGAS;
+ GeomAbs_SurfaceType aType;
+ TopoDS_Face aF[2];
+ //
+ aTolTresh=0.0005;
+ aAmin=0.012;// 0.7-7 deg
+ aAmax=0.12;
+ //
+ if (!aMVStick.Extent()) {
+ return;
+ }
+ //
+ BOPTools_SSInterference& aFFi=*((BOPTools_SSInterference*)&aFF);
+ BOPTools_SequenceOfCurves& aSCvs=aFFi.Curves();
+ aNbCurves=aSCvs.Length();
+ if (aNbCurves!=1){
+ return;
+ }
+ //
+ aFFi.Indices(nF[0], nF[1]);
+ for (i=0; i<2; ++i) {
+ aF[i]=*((TopoDS_Face*)(&myDS->Shape(nF[i])));
+ aS[i]=BRep_Tool::Surface(aF[i]);
+ aGAS.Load(aS[i]);
+ aType=aGAS.GetType();
+ if (aType!=GeomAbs_BSplineSurface) {
+ return;
+ }
+ }
+ //
+ BOPTools_Curve& aBC=aSCvs(1);
+ const IntTools_Curve& aIC=aBC.Curve();
+ bHasBounds=aIC.HasBounds();
+ if (!bHasBounds){
+ return;
+ }
+ //
+ aIC.Bounds (aT1, aT2, aP1, aP2);
+ aT=IntTools_Tools::IntermediatePoint(aT1, aT2);
+ aC3D=aIC.Curve();
+ aC3D->D0(aT, aP);
+ //
+ for (i=0; i<2; ++i) {
+ GeomAPI_ProjectPointOnSurf& aPPS=myContext.ProjPS(aF[i]);
+ aPPS.Perform(aP);
+ aPPS.LowerDistanceParameters(aU, aV);
+ BOPTools_Tools3D::GetNormalToSurface(aS[i], aU, aV, aDN[i]);
+ }
+ //
+ aA=aDN[0].Angle(aDN[1]);
+ aA=fabs(aA);
+ if (aA>0.5*PI) {
+ aA=PI-aA;
+ }
+ //
+ if (aA<aAmin || aA>aAmax) {
+ return;
+ }
+ //
+ aTolVmax=-1.;
+ aIt.Initialize(aMVStick);
+ for (; aIt.More(); aIt.Next()) {
+ nV=aIt.Key();
+ const TopoDS_Vertex& aV=*((TopoDS_Vertex*)(&myDS->Shape(nV)));
+ aTolV=BRep_Tool::Tolerance(aV);
+ if (aTolV>aTolVmax) {
+ aTolVmax=aTolV;
+ }
+ }
+ //
+
+ aTolR=aTolVmax/aA;
+ if (aTolR<aTolTresh) {
+ aTolR3D=aTolR;
+ }
+}
+//modified by NIZNHY-PKV Tue Feb 08 12:24:56 2011t