Mantis issue 0021128. A partial fix by PKV.

This commit is contained in:
jfa 2011-03-04 13:11:52 +00:00
parent 66965dd55d
commit 33b02426f0
19 changed files with 1669 additions and 211 deletions

View File

@ -0,0 +1,74 @@
// 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

View File

@ -15,26 +15,25 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# #
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
# GEOM NMTTools : partition algorithm # GEOM NMTTools : partition algorithm
# File : Makefile.in # File : Makefile.in
# Author : Julia DOROVSKIKH # Author : Julia DOROVSKIKH
# Modified by : Alexander BORODIN (OCN) - autotools usage # Modified by : Alexander BORODIN (OCN) - autotools usage
# Module : GEOM # Module : GEOM
# $Header$
#
include $(top_srcdir)/adm_local/unix/make_common_starter.am include $(top_srcdir)/adm_local/unix/make_common_starter.am
# header files # header files
salomeinclude_HEADERS = \ salomeinclude_HEADERS = \
Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx \ Handle_NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo.hxx \
Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx \ Handle_NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx \
Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx \ Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx \
Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx \ Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx \
Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx \ Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx \
Handle_NMTTools_ListNodeOfListOfCommonBlock.hxx \ Handle_NMTTools_ListNodeOfListOfCommonBlock.hxx \
Handle_NMTTools_ListNodeOfListOfCoupleOfShape.hxx \ Handle_NMTTools_ListNodeOfListOfCoupleOfShape.hxx \
Handle_NMTTools_StdMapNodeOfMapOfPaveBlock.hxx \
NMTTools_CheckerSI.hxx \ NMTTools_CheckerSI.hxx \
NMTTools_CheckerSI.ixx \ NMTTools_CheckerSI.ixx \
NMTTools_CheckerSI.jxx \ NMTTools_CheckerSI.jxx \
@ -48,9 +47,19 @@ salomeinclude_HEADERS = \
NMTTools_CoupleOfShape.hxx \ NMTTools_CoupleOfShape.hxx \
NMTTools_CoupleOfShape.ixx \ NMTTools_CoupleOfShape.ixx \
NMTTools_CoupleOfShape.jxx \ 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.hxx \
NMTTools_DEProcessor.ixx \ NMTTools_DEProcessor.ixx \
NMTTools_DEProcessor.jxx \ NMTTools_DEProcessor.jxx \
NMTTools_FaceInfo.hxx \
NMTTools_FaceInfo.ixx \
NMTTools_FaceInfo.jxx \
NMTTools_FaceInfo.lxx \
NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx \ NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx \
NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx \ NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx \
NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx \ NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx \
@ -66,6 +75,8 @@ salomeinclude_HEADERS = \
NMTTools_ListNodeOfListOfCoupleOfShape.hxx \ NMTTools_ListNodeOfListOfCoupleOfShape.hxx \
NMTTools_ListOfCommonBlock.hxx \ NMTTools_ListOfCommonBlock.hxx \
NMTTools_ListOfCoupleOfShape.hxx \ NMTTools_ListOfCoupleOfShape.hxx \
NMTTools_MapIteratorOfMapOfPaveBlock.hxx \
NMTTools_MapOfPaveBlock.hxx \
NMTTools_PaveFiller.hxx \ NMTTools_PaveFiller.hxx \
NMTTools_PaveFiller.ixx \ NMTTools_PaveFiller.ixx \
NMTTools_PaveFiller.jxx \ NMTTools_PaveFiller.jxx \
@ -73,13 +84,6 @@ salomeinclude_HEADERS = \
NMTTools_Tools.hxx \ NMTTools_Tools.hxx \
NMTTools_Tools.ixx \ NMTTools_Tools.ixx \
NMTTools_Tools.jxx \ 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 NMTTools_StdMapNodeOfMapOfPaveBlock.hxx
# Libraries targets # Libraries targets
@ -92,7 +96,14 @@ dist_libNMTTools_la_SOURCES = \
NMTTools_CommonBlock.cxx \ NMTTools_CommonBlock.cxx \
NMTTools_CommonBlockPool_0.cxx \ NMTTools_CommonBlockPool_0.cxx \
NMTTools_CoupleOfShape.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_DEProcessor.cxx \
NMTTools_FaceInfo.cxx \
NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_0.cxx \ NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_0.cxx \
NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_0.cxx \ NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_0.cxx \
NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_0.cxx \ NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_0.cxx \
@ -106,6 +117,8 @@ dist_libNMTTools_la_SOURCES = \
NMTTools_ListNodeOfListOfCoupleOfShape_0.cxx \ NMTTools_ListNodeOfListOfCoupleOfShape_0.cxx \
NMTTools_ListOfCommonBlock_0.cxx \ NMTTools_ListOfCommonBlock_0.cxx \
NMTTools_ListOfCoupleOfShape_0.cxx \ NMTTools_ListOfCoupleOfShape_0.cxx \
NMTTools_MapIteratorOfMapOfPaveBlock_0.cxx \
NMTTools_MapOfPaveBlock_0.cxx \
NMTTools_PaveFiller_0.cxx \ NMTTools_PaveFiller_0.cxx \
NMTTools_PaveFiller_1.cxx \ NMTTools_PaveFiller_1.cxx \
NMTTools_PaveFiller_2.cxx \ NMTTools_PaveFiller_2.cxx \
@ -118,11 +131,6 @@ dist_libNMTTools_la_SOURCES = \
NMTTools_PaveFiller_9.cxx \ NMTTools_PaveFiller_9.cxx \
NMTTools_PaveFiller.cxx \ NMTTools_PaveFiller.cxx \
NMTTools_Tools.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 NMTTools_StdMapNodeOfMapOfPaveBlock_0.cxx
# additional information to compile and link file # additional information to compile and link file
@ -145,6 +153,7 @@ CDL_FILES = \
NMTTools_CommonBlockAPI.cdl \ NMTTools_CommonBlockAPI.cdl \
NMTTools_CoupleOfShape.cdl \ NMTTools_CoupleOfShape.cdl \
NMTTools_DEProcessor.cdl \ NMTTools_DEProcessor.cdl \
NMTTools_FaceInfo.cdl \
NMTTools_IteratorOfCoupleOfShape.cdl \ NMTTools_IteratorOfCoupleOfShape.cdl \
NMTTools_PaveFiller.cdl \ NMTTools_PaveFiller.cdl \
NMTTools_Tools.cdl NMTTools_Tools.cdl

View File

@ -46,21 +46,16 @@ uses
NMTDS NMTDS
is is
--class IteratorOfCoupleOfShape;
--class DSFiller;
class PaveFiller; class PaveFiller;
class Tools; class Tools;
class CommonBlock; class CommonBlock;
class CommonBlockAPI; class CommonBlockAPI;
--class PCurveMaker;
class DEProcessor; class DEProcessor;
class CoupleOfShape; class CoupleOfShape;
--modified by NIZNHY-PKV Mon Feb 19 11:39:24 2007f
class CheckerSI; class CheckerSI;
--modified by NIZNHY-PKV Mon Feb 19 11:39:27 2007t class FaceInfo;
pointer PPaveFiller to PaveFiller from NMTTools; pointer PPaveFiller to PaveFiller from NMTTools;
--pointer PDSFiller to DSFiller from NMTTools;
class ListOfCommonBlock instantiates class ListOfCommonBlock instantiates
List from TCollection(CommonBlock from NMTTools); List from TCollection(CommonBlock from NMTTools);
@ -94,6 +89,12 @@ is
class MapOfPaveBlock instantiates class MapOfPaveBlock instantiates
Map from TCollection (PaveBlock from BOPTools, 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; end NMTTools;

View File

@ -0,0 +1,117 @@
// 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

View File

@ -0,0 +1,56 @@
// 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>

View File

@ -0,0 +1,134 @@
// 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

View File

@ -0,0 +1,102 @@
// 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>

View File

@ -0,0 +1,156 @@
// 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

View File

@ -0,0 +1,59 @@
// 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>

View File

@ -0,0 +1,161 @@
-- 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;

View File

@ -0,0 +1,28 @@
// 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>

View File

@ -0,0 +1,174 @@
// 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

View File

@ -0,0 +1,26 @@
// 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>

View File

@ -0,0 +1,9 @@
#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

View File

@ -0,0 +1,136 @@
// 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;
}

View File

@ -29,7 +29,10 @@ class PaveFiller from NMTTools
---Purpose: ---Purpose:
uses uses
DataMapOfIntegerInteger from TColStd, DataMapOfIntegerInteger from TColStd,
ListOfInteger from TColStd,
MapOfInteger from TColStd,
Pnt from gp, Pnt from gp,
ShapeEnum from TopAbs, ShapeEnum from TopAbs,
Vertex from TopoDS, Vertex from TopoDS,
@ -38,8 +41,7 @@ uses
Edge from TopoDS, Edge from TopoDS,
ListOfShape from TopTools, ListOfShape from TopTools,
DataMapOfShapeShape from TopTools, DataMapOfShapeShape from TopTools,
ListOfInteger from TColStd,
Context from IntTools, Context from IntTools,
ShrunkRange from IntTools, ShrunkRange from IntTools,
@ -53,23 +55,21 @@ uses
PaveSet from BOPTools, PaveSet from BOPTools,
Curve from BOPTools, Curve from BOPTools,
SSInterference from BOPTools, SSInterference from BOPTools,
IDMapOfPaveBlockIMapOfPaveBlock from BOPTools, IDMapOfPaveBlockIMapOfPaveBlock from BOPTools,
IDMapOfPaveBlockIMapOfInteger from BOPTools, IDMapOfPaveBlockIMapOfInteger from BOPTools,
SSIntersectionAttribute from BOPTools, SSIntersectionAttribute from BOPTools,
ShapesDataStructure from NMTDS,
PShapesDataStructure from NMTDS,
Iterator from NMTDS,
PIterator from NMTDS,
PInterfPool from NMTDS,
CommonBlockPool from NMTTools, CommonBlockPool from NMTTools,
CommonBlock from NMTTools, CommonBlock from NMTTools,
ListOfCommonBlock from NMTTools, ListOfCommonBlock from NMTTools,
DataMapOfIntegerFaceInfo from NMTTools,
ShapesDataStructure from NMTDS, IndexedDataMapOfIndexedMapOfInteger from NMTTools
PShapesDataStructure from NMTDS,
Iterator from NMTDS,
IndexedDataMapOfIndexedMapOfInteger from NMTTools,
PIterator from NMTDS,
PInterfPool from NMTDS
--raises --raises
@ -400,18 +400,20 @@ is
nF1 :Integer from Standard; nF1 :Integer from Standard;
nF2 :Integer from Standard; nF2 :Integer from Standard;
aLs :out ListOfPaveBlock from BOPTools); aLs :out ListOfPaveBlock from BOPTools);
--
PrepareSetForFace(me:out; PrepareSetForFace(me:out;
nF1 :Integer from Standard; nF1 :Integer from Standard;
nF2 :Integer from Standard; nF2 :Integer from Standard;
aLPB: ListOfPaveBlock from BOPTools; aLPB: ListOfPaveBlock from BOPTools;
aPSF:out PaveSet from BOPTools); aPSF:out PaveSet from BOPTools);
PutPaveOnCurve(me:out; PutPaveOnCurve(me:out;
aPSF: PaveSet from BOPTools; aPSF: PaveSet from BOPTools;
aTol: Real from Standard; aTol: Real from Standard;
aBC : out Curve from BOPTools); aBC : out Curve from BOPTools);
PutBoundPaveOnCurve (me:out; PutBoundPaveOnCurve (me:out;
aBC :out Curve from BOPTools; aBC :out Curve from BOPTools;
aFF :out SSInterference from BOPTools); aFF :out SSInterference from BOPTools);
@ -490,13 +492,22 @@ is
returns PavePool from BOPTools; returns PavePool from BOPTools;
---C++:return & ---C++:return &
--modified by NIZNHY-PKV Thu Nov 11 08:12:50 2010f
CheckCoincidence (me:out; CheckCoincidence (me:out;
aPB1 : PaveBlock from BOPTools; aPB1 : PaveBlock from BOPTools;
aPB2 : PaveBlock from BOPTools) aPB2 : PaveBlock from BOPTools)
returns Boolean from Standard; returns Boolean from Standard;
--modified by NIZNHY-PKV Thu Nov 11 08:12:54 2010t
--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 fields
myDS : PShapesDataStructure from NMTDS is protected; myDS : PShapesDataStructure from NMTDS is protected;
myIsDone : Boolean from Standard is protected; myIsDone : Boolean from Standard is protected;
@ -516,5 +527,7 @@ fields
myDSIt : PIterator from NMTDS is protected; myDSIt : PIterator from NMTDS is protected;
myCompositeShape : Shape from TopoDS is protected; myCompositeShape : Shape from TopoDS is protected;
myIP : PInterfPool from NMTDS 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; end PaveFiller;

View File

@ -61,6 +61,9 @@
#ifndef _NMTDS_PInterfPool_HeaderFile #ifndef _NMTDS_PInterfPool_HeaderFile
#include <NMTDS_PInterfPool.hxx> #include <NMTDS_PInterfPool.hxx>
#endif #endif
#ifndef _NMTTools_DataMapOfIntegerFaceInfo_HeaderFile
#include <NMTTools_DataMapOfIntegerFaceInfo.hxx>
#endif
#ifndef _TopAbs_ShapeEnum_HeaderFile #ifndef _TopAbs_ShapeEnum_HeaderFile
#include <TopAbs_ShapeEnum.hxx> #include <TopAbs_ShapeEnum.hxx>
#endif #endif
@ -92,6 +95,7 @@ class NMTTools_IndexedDataMapOfIndexedMapOfInteger;
class TopTools_ListOfShape; class TopTools_ListOfShape;
class TopoDS_Edge; class TopoDS_Edge;
class TopTools_DataMapOfShapeShape; class TopTools_DataMapOfShapeShape;
class TColStd_MapOfInteger;
#ifndef _Standard_HeaderFile #ifndef _Standard_HeaderFile
@ -402,6 +406,12 @@ Standard_EXPORT void PerformVF1() ;
Standard_EXPORT void MakeAloneVertices() ; 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 // Fields PROTECTED
// //
NMTDS_PShapesDataStructure myDS; NMTDS_PShapesDataStructure myDS;
@ -419,6 +429,7 @@ TColStd_DataMapOfIntegerInteger myVSD;
NMTDS_PIterator myDSIt; NMTDS_PIterator myDSIt;
TopoDS_Shape myCompositeShape; TopoDS_Shape myCompositeShape;
NMTDS_PInterfPool myIP; NMTDS_PInterfPool myIP;
NMTTools_DataMapOfIntegerFaceInfo myFaceInfo;
private: private:

View File

@ -1,25 +1,3 @@
// 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 #ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx> #include <TopoDS_Shape.hxx>
#endif #endif
@ -95,6 +73,9 @@
#ifndef _TopTools_DataMapOfShapeShape_HeaderFile #ifndef _TopTools_DataMapOfShapeShape_HeaderFile
#include <TopTools_DataMapOfShapeShape.hxx> #include <TopTools_DataMapOfShapeShape.hxx>
#endif #endif
#ifndef _TColStd_MapOfInteger_HeaderFile
#include <TColStd_MapOfInteger.hxx>
#endif
#ifndef _NMTTools_PaveFiller_HeaderFile #ifndef _NMTTools_PaveFiller_HeaderFile
#include <NMTTools_PaveFiller.hxx> #include <NMTTools_PaveFiller.hxx>
#endif #endif

View File

@ -32,13 +32,16 @@
#include <TColStd_MapIteratorOfMapOfInteger.hxx> #include <TColStd_MapIteratorOfMapOfInteger.hxx>
#include <TColStd_DataMapOfIntegerListOfInteger.hxx> #include <TColStd_DataMapOfIntegerListOfInteger.hxx>
#include <TColStd_ListOfInteger.hxx> #include <TColStd_ListOfInteger.hxx>
#include <TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger.hxx>
#include <TColStd_ListIteratorOfListOfInteger.hxx> #include <TColStd_ListIteratorOfListOfInteger.hxx>
#include <TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger.hxx>
#include <Geom_TrimmedCurve.hxx> #include <Geom_TrimmedCurve.hxx>
#include <Geom2d_TrimmedCurve.hxx> #include <Geom2d_TrimmedCurve.hxx>
#include <Geom2d_Curve.hxx> #include <Geom2d_Curve.hxx>
#include <GeomAdaptor_Curve.hxx> #include <GeomAdaptor_Curve.hxx>
#include <GeomAdaptor_Surface.hxx>
#include <Geom_Surface.hxx>
#include <BndLib_Add3dCurve.hxx> #include <BndLib_Add3dCurve.hxx>
@ -73,9 +76,11 @@
#include <IntTools_FaceFace.hxx> #include <IntTools_FaceFace.hxx>
#include <IntTools_Tools.hxx> #include <IntTools_Tools.hxx>
#include <IntTools_ShrunkRange.hxx> #include <IntTools_ShrunkRange.hxx>
#include <IntTools_Context.hxx>
#include <BOPTools_CArray1OfSSInterference.hxx> #include <BOPTools_CArray1OfSSInterference.hxx>
#include <BOPTools_VSInterference.hxx>
#include <BOPTools_ESInterference.hxx>
#include <BOPTools_SSInterference.hxx> #include <BOPTools_SSInterference.hxx>
#include <BOPTools_ListOfPaveBlock.hxx> #include <BOPTools_ListOfPaveBlock.hxx>
#include <BOPTools_ListIteratorOfListOfPaveBlock.hxx> #include <BOPTools_ListIteratorOfListOfPaveBlock.hxx>
@ -84,6 +89,7 @@
#include <BOPTools_Tools.hxx> #include <BOPTools_Tools.hxx>
#include <BOPTools_PaveBlockIterator.hxx> #include <BOPTools_PaveBlockIterator.hxx>
#include <BOPTools_Tools2D.hxx> #include <BOPTools_Tools2D.hxx>
#include <BOPTools_Tools3D.hxx>
#include <NMTDS_Iterator.hxx> #include <NMTDS_Iterator.hxx>
#include <NMTDS_ShapesDataStructure.hxx> #include <NMTDS_ShapesDataStructure.hxx>
@ -91,12 +97,17 @@
#include <NMTTools_Tools.hxx> #include <NMTTools_Tools.hxx>
#include <NMTTools_IndexedDataMapOfShapePaveBlock.hxx> #include <NMTTools_IndexedDataMapOfShapePaveBlock.hxx>
#include <NMTTools_CommonBlock.hxx>
#include <NMTTools_CommonBlockAPI.hxx> #include <NMTTools_CommonBlockAPI.hxx>
#include <NMTTools_ListOfCommonBlock.hxx>
#include <NMTTools_ListIteratorOfListOfCommonBlock.hxx>
#include <NMTTools_DataMapOfIntegerListOfPaveBlock.hxx> #include <NMTTools_DataMapOfIntegerListOfPaveBlock.hxx>
#include <NMTTools_ListIteratorOfListOfCommonBlock.hxx> #include <NMTTools_ListIteratorOfListOfCommonBlock.hxx>
#include <NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx> #include <NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx>
#include <NMTTools_MapOfPaveBlock.hxx> #include <NMTTools_MapOfPaveBlock.hxx>
#include <NMTTools_MapIteratorOfMapOfPaveBlock.hxx>
#include <NMTTools_FaceInfo.hxx>
#include <NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo.hxx>
static static
Standard_Boolean IsMicroEdge(const TopoDS_Edge& aE, Standard_Boolean IsMicroEdge(const TopoDS_Edge& aE,
@ -212,166 +223,122 @@ void NMTTools_PaveFiller::MakeBlocks()
Standard_Integer i, aNbFFs, nF1, nF2; Standard_Integer i, aNbFFs, nF1, nF2;
Standard_Integer nV1, nV2, j, aNbCurves; Standard_Integer nV1, nV2, j, aNbCurves;
Standard_Real aTolR3D, aTol2D, aT1, aT2, aTolPPC=Precision::PConfusion(); Standard_Real aTolR3D, aTol2D, aT1, aT2, aTolPPC=Precision::PConfusion();
TopoDS_Face aF1, aF2;
NMTTools_IndexedDataMapOfShapePaveBlock aMEPB; NMTTools_IndexedDataMapOfShapePaveBlock aMEPB;
BooleanOperations_IndexedDataMapOfShapeInteger aMapEI; BooleanOperations_IndexedDataMapOfShapeInteger aMapEI;
BOPTools_ListIteratorOfListOfPaveBlock anIt; BOPTools_ListIteratorOfListOfPaveBlock anIt;
// //
BOPTools_CArray1OfSSInterference& aFFs=myIP->SSInterferences(); BOPTools_CArray1OfSSInterference& aFFs=myIP->SSInterferences();
// //
aNbFFs=aFFs.Extent();
// //
NMTTools_DataMapOfIntegerListOfPaveBlock aMFInOn; // 1. Make Section Edges from intersection curves
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
// between each pair of faces // between each pair of faces
aNbFFs=aFFs.Extent(); aNbFFs=aFFs.Extent();
if (!aNbFFs) {
return;
}
//
FillFaceInfo();
// //
for (i=1; i<=aNbFFs; ++i) { 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); BOPTools_SSInterference& aFFi=aFFs(i);
// //
// Faces // Faces
aFFi.Indices(nF1, nF2); aFFi.Indices(nF1, nF2);
const TopoDS_Face aF1=TopoDS::Face(myDS->Shape(nF1));//mpv aF1=*((TopoDS_Face*)(&myDS->Shape(nF1)));
const TopoDS_Face aF2=TopoDS::Face(myDS->Shape(nF2));//mpv aF2=*((TopoDS_Face*)(&myDS->Shape(nF2)));
// //
BOPTools_ListOfPaveBlock aLPB;
//
//---
{
BOPTools_ListIteratorOfListOfPaveBlock anItPB;
NMTTools_MapOfPaveBlock aMPB;
//
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 (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);
}
}
}
}
//---
//
TopTools_ListOfShape aLSE;
TColStd_ListOfInteger aLNE;
SharedEdges(nF1, nF2, aLNE, aLSE); SharedEdges(nF1, nF2, aLNE, aLSE);
aFFi.SetSharedEdges(aLNE); aFFi.SetSharedEdges(aLNE);
// //
// 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 (!j) {
pMPB=((NMTTools_MapOfPaveBlock*)&aMPBIn1);
}
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);
}
}
//
}
}
//
BOPTools_SequenceOfCurves& aSCvs=aFFi.Curves(); BOPTools_SequenceOfCurves& aSCvs=aFFi.Curves();
aNbCurves=aSCvs.Length(); aNbCurves=aSCvs.Length();
if (!aNbCurves) { if (!aNbCurves) {
continue; continue;
} }
// //
// Contribution of Samtech www.samcef.com END
aTolR3D=aFFi.TolR3D(); aTolR3D=aFFi.TolR3D();
aTol2D=(aTolR3D < 1.e-3) ? 1.e-3 : aTolR3D; aTol2D=(aTolR3D < 1.e-3) ? 1.e-3 : aTolR3D;
// //
BOPTools_PaveSet aPSF; CorrectTolR3D(aFFi, aMVStick, aTolR3D);
// //
PrepareSetForFace (nF1, nF2, aLPB, aPSF); PrepareSetForFace (nF1, nF2, aLPB, aPSF);
// //
// Put Paves On Curves // Put Paves On Curves
for (j=1; j<=aNbCurves; ++j) { for (j=1; j<=aNbCurves; ++j) {
BOPTools_Curve& aBC=aSCvs(j); BOPTools_Curve& aBC=aSCvs(j);
// DEBUG f
const IntTools_Curve& aC=aBC.Curve(); const IntTools_Curve& aC=aBC.Curve();
// DEBUG f
Handle(Geom_Curve) aC3D = aC.Curve(); Handle(Geom_Curve) aC3D = aC.Curve();
// DEBUG t // DEBUG t
PutPaveOnCurve (aPSF, aTolR3D, aBC); PutPaveOnCurve (aPSF, aTolR3D, aBC);
@ -417,18 +384,12 @@ void NMTTools_PaveFiller::MakeBlocks()
continue; 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 // 2
bIsExistingPaveBlock=IsExistingPaveBlock(aPBNew, aLSE, aTolR3D); bIsExistingPaveBlock=IsExistingPaveBlock(aPBNew, aLSE, aTolR3D);
if (bIsExistingPaveBlock) { if (bIsExistingPaveBlock) {
continue; continue;
} }
// Contribution of Samtech www.samcef.com END //
//
// Checking of validity in 2D // Checking of validity in 2D
// //
bIsValidIn2D=myContext.IsValidBlockForFaces(aT1, aT2, aIC, aF1, aF2, aTol2D); bIsValidIn2D=myContext.IsValidBlockForFaces(aT1, aT2, aIC, aF1, aF2, aTol2D);
@ -443,7 +404,6 @@ void NMTTools_PaveFiller::MakeBlocks()
const TopoDS_Vertex aV1=TopoDS::Vertex(myDS->Shape(nV1)); const TopoDS_Vertex aV1=TopoDS::Vertex(myDS->Shape(nV1));
const TopoDS_Vertex aV2=TopoDS::Vertex(myDS->Shape(nV2)); const TopoDS_Vertex aV2=TopoDS::Vertex(myDS->Shape(nV2));
// //
//modified by NIZNHY-PKV Thu Apr 22 07:54:35 2010f
{ {
Standard_Real aT; Standard_Real aT;
// //
@ -453,7 +413,6 @@ void NMTTools_PaveFiller::MakeBlocks()
myContext.IsVertexOnLine(aV2, aIC, aTolR3D, aT); myContext.IsVertexOnLine(aV2, aIC, aTolR3D, aT);
BOPTools_Tools::UpdateVertex (aIC, aT, aV2); 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); BOPTools_Tools::MakeSectEdge (aIC, aV1, aT1, aV2, aT2, aES);
// //
@ -519,7 +478,6 @@ void NMTTools_PaveFiller::MakeBlocks()
// 2.1.VV // 2.1.VV
tPF.Init(); tPF.Init();
tPF.PerformVV(); tPF.PerformVV();
//tPF.PerformNewVertices(); qq
// //
// 2.2.VE // 2.2.VE
tPF.myPavePool.Resize (tPF.myNbEdges); tPF.myPavePool.Resize (tPF.myNbEdges);
@ -1260,7 +1218,6 @@ Standard_Boolean IsMicroEdge(const TopoDS_Edge& aE,
// //
return bRet; return bRet;
} }
//======================================================================= //=======================================================================
// function: PutPaveOnCurve // function: PutPaveOnCurve
// purpose: // purpose:
@ -1287,7 +1244,7 @@ void NMTTools_PaveFiller::PutPaveOnCurve(const BOPTools_PaveSet& aPaveSet,
const BOPTools_Pave& aPave=anIt.Value(); const BOPTools_Pave& aPave=anIt.Value();
// //
nV=aPave.Index(); 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; Bnd_Box aBBV;
BRepBndLib::Add(aV, aBBV); BRepBndLib::Add(aV, aBBV);
@ -1297,6 +1254,7 @@ void NMTTools_PaveFiller::PutPaveOnCurve(const BOPTools_PaveSet& aPaveSet,
// //
bIsVertexOnLine=myContext.IsVertexOnLine(aV, aC, aTolR3D, aT); bIsVertexOnLine=myContext.IsVertexOnLine(aV, aC, aTolR3D, aT);
// //
//
if (bIsVertexOnLine) { if (bIsVertexOnLine) {
BOPTools_Pave aPaveNew(nV, aT, BooleanOperations_SurfaceSurface); BOPTools_Pave aPaveNew(nV, aT, BooleanOperations_SurfaceSurface);
BOPTools_PaveSet& aPS=aBC.Set(); BOPTools_PaveSet& aPS=aBC.Set();
@ -1308,3 +1266,256 @@ void NMTTools_PaveFiller::PutPaveOnCurve(const BOPTools_PaveSet& aPaveSet,
} }
} }
} }
//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