mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-12-26 01:10:36 +05:00
OCCT dev version porting (6.7.2)
This commit is contained in:
parent
80531775fd
commit
477e6586c0
@ -35,7 +35,6 @@
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopExp.hxx>
|
||||
#include <TColStd_IndexedMapOfInteger.hxx>
|
||||
#include <TopTools_IndexedMapOfShape.hxx>
|
||||
|
||||
#include <GEOMImpl_Types.hxx>
|
||||
|
@ -33,7 +33,6 @@
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopoDS_Iterator.hxx>
|
||||
#include <TopExp.hxx>
|
||||
#include <TColStd_IndexedMapOfInteger.hxx>
|
||||
#include <TopTools_IndexedMapOfShape.hxx>
|
||||
|
||||
#include <GEOMImpl_Types.hxx>
|
||||
|
@ -35,7 +35,6 @@
|
||||
#include <SalomeApp_Application.h>
|
||||
#include <LightApp_SelectionMgr.h>
|
||||
|
||||
#include <TColStd_IndexedMapOfInteger.hxx>
|
||||
#include <TopTools_IndexedMapOfShape.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <TopoDS_Edge.hxx>
|
||||
|
@ -36,7 +36,6 @@
|
||||
#include <SalomeApp_Application.h>
|
||||
#include <LightApp_SelectionMgr.h>
|
||||
|
||||
#include <TColStd_IndexedMapOfInteger.hxx>
|
||||
#include <TopTools_IndexedMapOfShape.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <TopoDS_Edge.hxx>
|
||||
|
@ -38,7 +38,6 @@
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopExp.hxx>
|
||||
#include <TColStd_IndexedMapOfInteger.hxx>
|
||||
#include <TopTools_IndexedMapOfShape.hxx>
|
||||
#include <TColStd_IndexedMapOfInteger.hxx>
|
||||
#include <TColStd_MapOfInteger.hxx>
|
||||
|
@ -18,7 +18,6 @@
|
||||
//
|
||||
|
||||
#include "GEOM_EdgeSource.h"
|
||||
#include "OCC2VTK_internal.h"
|
||||
|
||||
#include <vtkObjectFactory.h>
|
||||
|
||||
@ -43,32 +42,20 @@ vtkStandardNewMacro(GEOM_EdgeSource);
|
||||
GEOM_EdgeSource::GEOM_EdgeSource() :
|
||||
myIsVector(false)
|
||||
{
|
||||
myData = new EdgeSourceInternal;
|
||||
this->SetNumberOfInputPorts(0);
|
||||
}
|
||||
|
||||
GEOM_EdgeSource::~GEOM_EdgeSource()
|
||||
{
|
||||
delete myData;
|
||||
}
|
||||
|
||||
void GEOM_EdgeSource::AddEdge (const TopoDS_Edge& theEdge,
|
||||
bool theIsVector)
|
||||
{
|
||||
myData->myEdgeSet.Add(theEdge);
|
||||
myEdgeSet.Add(theEdge);
|
||||
myIsVector = theIsVector;
|
||||
}
|
||||
|
||||
void GEOM_EdgeSource::Clear()
|
||||
{
|
||||
myData->myEdgeSet.Clear();
|
||||
}
|
||||
|
||||
bool GEOM_EdgeSource::IsEmpty()
|
||||
{
|
||||
return myData->myEdgeSet.IsEmpty();
|
||||
}
|
||||
|
||||
int GEOM_EdgeSource::RequestData(vtkInformation *vtkNotUsed(request),
|
||||
vtkInformationVector **vtkNotUsed(inputVector),
|
||||
vtkInformationVector *outputVector)
|
||||
@ -82,7 +69,7 @@ int GEOM_EdgeSource::RequestData(vtkInformation *vtkNotUsed(request),
|
||||
aPolyData->SetPoints(aPts);
|
||||
aPts->Delete();
|
||||
|
||||
TEdgeSet::Iterator anIter (myData->myEdgeSet);
|
||||
TEdgeSet::Iterator anIter (myEdgeSet);
|
||||
for (; anIter.More(); anIter.Next()) {
|
||||
TopoDS_Edge anEdge = anIter.Value();
|
||||
if ( !myIsVector )
|
||||
|
@ -23,25 +23,25 @@
|
||||
#include "OCC2VTK.h"
|
||||
|
||||
#include <TopoDS_Edge.hxx>
|
||||
#include <TopTools_ShapeMapHasher.hxx>
|
||||
#include <NCollection_Map.hxx>
|
||||
|
||||
typedef NCollection_Map<TopoDS_Edge, TopTools_ShapeMapHasher> TEdgeSet;
|
||||
|
||||
#include <vtkPoints.h>
|
||||
#include <vtkPolyDataAlgorithm.h>
|
||||
|
||||
class vtkPolyData;
|
||||
class EdgeSourceInternal;
|
||||
|
||||
class OCC2VTK_EXPORT GEOM_EdgeSource: public vtkPolyDataAlgorithm
|
||||
{
|
||||
public:
|
||||
vtkTypeMacro(GEOM_EdgeSource, vtkPolyDataAlgorithm);
|
||||
|
||||
vtkTypeMacro(GEOM_EdgeSource,vtkPolyDataAlgorithm);
|
||||
static GEOM_EdgeSource* New();
|
||||
|
||||
void AddEdge (const TopoDS_Edge& theEdge,
|
||||
bool theIsVector = false);
|
||||
void Clear();
|
||||
|
||||
bool IsEmpty();
|
||||
void Clear(){ myEdgeSet.Clear();}
|
||||
|
||||
void SetVectorMode(bool);
|
||||
|
||||
@ -53,13 +53,16 @@ public:
|
||||
vtkPoints* thePts,
|
||||
bool theIsVector = false);
|
||||
|
||||
bool IsEmpty(){return myEdgeSet.IsEmpty();}
|
||||
|
||||
|
||||
protected:
|
||||
EdgeSourceInternal* myData;
|
||||
TEdgeSet myEdgeSet;
|
||||
// The <myIsVector> flag is common for all edges, because the shape,
|
||||
// representing a vector, can have only one edge.
|
||||
bool myIsVector, myIsVectorMode;
|
||||
|
||||
virtual int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
|
||||
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
|
||||
|
||||
GEOM_EdgeSource();
|
||||
~GEOM_EdgeSource();
|
||||
@ -70,4 +73,5 @@ private:
|
||||
void operator=(const GEOM_EdgeSource&);
|
||||
};
|
||||
|
||||
|
||||
#endif //GEOM_EDGESOURCE_H
|
||||
|
@ -18,7 +18,6 @@
|
||||
//
|
||||
|
||||
#include "GEOM_FaceSource.h"
|
||||
#include "OCC2VTK_internal.h"
|
||||
|
||||
#include <vtkObjectFactory.h>
|
||||
|
||||
@ -30,34 +29,18 @@
|
||||
|
||||
GEOM_FaceSource::GEOM_FaceSource()
|
||||
{
|
||||
myData = new FaceSourceInternal;
|
||||
this->SetNumberOfInputPorts(0);
|
||||
}
|
||||
|
||||
GEOM_FaceSource::~GEOM_FaceSource()
|
||||
{
|
||||
delete myData;
|
||||
}
|
||||
|
||||
void
|
||||
GEOM_FaceSource::
|
||||
AddFace(const TopoDS_Face& theFace)
|
||||
{
|
||||
myData->myFaceSet.Add(theFace);
|
||||
}
|
||||
|
||||
void
|
||||
GEOM_FaceSource::
|
||||
Clear()
|
||||
{
|
||||
myData->myFaceSet.Clear();
|
||||
}
|
||||
|
||||
bool
|
||||
GEOM_FaceSource::
|
||||
IsEmpty()
|
||||
{
|
||||
return myData->myFaceSet.IsEmpty();
|
||||
myFaceSet.Add(theFace);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||
#include <TopTools_ShapeMapHasher.hxx>// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
@ -24,12 +24,15 @@
|
||||
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <TopTools_ShapeMapHasher.hxx>
|
||||
#include <NCollection_Map.hxx>
|
||||
|
||||
typedef NCollection_Map<TopoDS_Face, TopTools_ShapeMapHasher> TFaceSet;
|
||||
|
||||
#include <vtkPoints.h>
|
||||
#include <vtkPolyDataAlgorithm.h>
|
||||
|
||||
class vtkPolyData;
|
||||
class FaceSourceInternal;
|
||||
|
||||
class OCC2VTK_EXPORT GEOM_FaceSource: public vtkPolyDataAlgorithm
|
||||
{
|
||||
@ -37,11 +40,11 @@ public:
|
||||
vtkTypeMacro(GEOM_FaceSource,vtkPolyDataAlgorithm);
|
||||
|
||||
void AddFace(const TopoDS_Face& theFace);
|
||||
void Clear();
|
||||
bool IsEmpty();
|
||||
void Clear(){ myFaceSet.Clear();}
|
||||
bool IsEmpty(){return myFaceSet.IsEmpty();}
|
||||
|
||||
protected:
|
||||
FaceSourceInternal* myData;
|
||||
TFaceSet myFaceSet;
|
||||
|
||||
static
|
||||
void MoveTo(gp_Pnt thePnt,
|
||||
|
@ -18,7 +18,6 @@
|
||||
//
|
||||
|
||||
#include "GEOM_ShadingFace.h"
|
||||
#include "OCC2VTK_internal.h"
|
||||
|
||||
#include <vtkObjectFactory.h>
|
||||
|
||||
@ -58,7 +57,7 @@ int GEOM_ShadingFace::RequestData(vtkInformation *vtkNotUsed(request),
|
||||
aPolyData->SetPoints(aPts);
|
||||
aPts->Delete();
|
||||
|
||||
TFaceSet::Iterator anIter(myData->myFaceSet);
|
||||
TFaceSet::Iterator anIter(myFaceSet);
|
||||
for(; anIter.More(); anIter.Next()){
|
||||
const TopoDS_Face& aFace = anIter.Value();
|
||||
OCC2VTK(aFace,aPolyData,aPts);
|
||||
|
@ -18,7 +18,6 @@
|
||||
//
|
||||
|
||||
#include "GEOM_VertexSource.h"
|
||||
#include "OCC2VTK_internal.h"
|
||||
|
||||
#include <vtkObjectFactory.h>
|
||||
|
||||
@ -36,27 +35,18 @@ vtkStandardNewMacro(GEOM_VertexSource);
|
||||
|
||||
GEOM_VertexSource::GEOM_VertexSource()
|
||||
{
|
||||
myData = new VertexSourceInternal;
|
||||
this->SetNumberOfInputPorts(0);
|
||||
}
|
||||
|
||||
GEOM_VertexSource::~GEOM_VertexSource()
|
||||
{
|
||||
delete myData;
|
||||
}
|
||||
|
||||
void
|
||||
GEOM_VertexSource::
|
||||
AddVertex(const TopoDS_Vertex& theVertex)
|
||||
{
|
||||
myData->myVertexSet.Add(theVertex);
|
||||
}
|
||||
|
||||
void
|
||||
GEOM_VertexSource::
|
||||
Clear()
|
||||
{
|
||||
myData->myVertexSet.Clear();
|
||||
myVertexSet.Add(theVertex);
|
||||
}
|
||||
|
||||
int GEOM_VertexSource::RequestData(vtkInformation *vtkNotUsed(request),
|
||||
@ -72,7 +62,7 @@ int GEOM_VertexSource::RequestData(vtkInformation *vtkNotUsed(request),
|
||||
aPolyData->SetPoints(aPts);
|
||||
aPts->Delete();
|
||||
|
||||
TVertexSet::Iterator anIter(myData->myVertexSet);
|
||||
TVertexSet::Iterator anIter(myVertexSet);
|
||||
for(; anIter.More(); anIter.Next()){
|
||||
const TopoDS_Vertex& aVertex = anIter.Value();
|
||||
OCC2VTK(aVertex,aPolyData,aPts);
|
||||
|
@ -23,12 +23,15 @@
|
||||
#include "OCC2VTK.h"
|
||||
|
||||
#include <TopoDS_Vertex.hxx>
|
||||
#include <TopTools_ShapeMapHasher.hxx>
|
||||
#include <NCollection_Map.hxx>
|
||||
|
||||
typedef NCollection_Map<TopoDS_Vertex, TopTools_ShapeMapHasher> TVertexSet;
|
||||
|
||||
#include <vtkPoints.h>
|
||||
#include <vtkPolyDataAlgorithm.h>
|
||||
|
||||
class vtkPolyData;
|
||||
class VertexSourceInternal;
|
||||
|
||||
class OCC2VTK_EXPORT GEOM_VertexSource: public vtkPolyDataAlgorithm
|
||||
{
|
||||
@ -37,7 +40,7 @@ public:
|
||||
static GEOM_VertexSource* New();
|
||||
|
||||
void AddVertex(const TopoDS_Vertex& theVertex);
|
||||
void Clear();
|
||||
void Clear(){ myVertexSet.Clear();}
|
||||
|
||||
static
|
||||
void OCC2VTK(const TopoDS_Vertex& theVertex,
|
||||
@ -45,7 +48,7 @@ public:
|
||||
vtkPoints* thePts);
|
||||
|
||||
protected:
|
||||
VertexSourceInternal* myData;
|
||||
TVertexSet myVertexSet;
|
||||
|
||||
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
|
||||
|
||||
|
@ -18,7 +18,6 @@
|
||||
//
|
||||
|
||||
#include "GEOM_WireframeFace.h"
|
||||
#include "OCC2VTK_internal.h"
|
||||
|
||||
#include <GEOMUtils_Hatcher.hxx>
|
||||
|
||||
@ -64,7 +63,7 @@ int GEOM_WireframeFace::RequestData(vtkInformation *vtkNotUsed(request),
|
||||
aPolyData->SetPoints(aPts);
|
||||
aPts->Delete();
|
||||
|
||||
TFaceSet::Iterator anIter(myData->myFaceSet);
|
||||
TFaceSet::Iterator anIter(myFaceSet);
|
||||
for(; anIter.More(); anIter.Next()){
|
||||
const TopoDS_Face& aFace = anIter.Value();
|
||||
OCC2VTK(aFace,aPolyData,aPts,NbIso,Discret);
|
||||
|
@ -1,228 +0,0 @@
|
||||
#ifndef OCC2VTK_INTERNAL_H
|
||||
#define OCC2VTK_INTERNAL_H
|
||||
|
||||
#include <NCollection_BaseCollection.hxx>
|
||||
#include <NCollection_BaseList.hxx>
|
||||
#include <NCollection_TListNode.hxx>
|
||||
#include <NCollection_TListIterator.hxx>
|
||||
|
||||
#include <TopoDS_Vertex.hxx>
|
||||
#include <TopoDS_Edge.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
|
||||
template <class TheItemType> class GEOM_Set
|
||||
: public NCollection_BaseCollection<TheItemType>,
|
||||
public NCollection_BaseList
|
||||
{
|
||||
public:
|
||||
typedef NCollection_TListNode<TheItemType> SetNode;
|
||||
typedef NCollection_TListIterator<TheItemType> Iterator;
|
||||
|
||||
public:
|
||||
//! Constructor
|
||||
GEOM_Set(const Handle(NCollection_BaseAllocator)& theAllocator=0L) :
|
||||
NCollection_BaseCollection<TheItemType>(theAllocator),
|
||||
NCollection_BaseList() {}
|
||||
|
||||
//! Copy constructor
|
||||
GEOM_Set (const GEOM_Set& theOther) :
|
||||
NCollection_BaseCollection<TheItemType>(theOther.myAllocator),
|
||||
NCollection_BaseList()
|
||||
{ *this = theOther; }
|
||||
|
||||
//! Size - Number of items
|
||||
virtual Standard_Integer Size (void) const
|
||||
{ return Extent(); }
|
||||
|
||||
//! Replace this list by the items of theOther collection
|
||||
virtual void Assign (const NCollection_BaseCollection<TheItemType>& theOther)
|
||||
{
|
||||
if (this == &theOther)
|
||||
return;
|
||||
Clear();
|
||||
TYPENAME NCollection_BaseCollection<TheItemType>::Iterator& anIter =
|
||||
theOther.CreateIterator();
|
||||
for (; anIter.More(); anIter.Next())
|
||||
{
|
||||
SetNode* pNew = new (this->myAllocator) SetNode(anIter.Value());
|
||||
PAppend (pNew);
|
||||
}
|
||||
}
|
||||
|
||||
//! Replace this list by the items of theOther Set
|
||||
GEOM_Set& operator= (const GEOM_Set& theOther)
|
||||
{
|
||||
if (this == &theOther)
|
||||
return *this;
|
||||
Clear ();
|
||||
SetNode * pCur = (SetNode *) theOther.PFirst();
|
||||
while (pCur)
|
||||
{
|
||||
SetNode* pNew = new (this->myAllocator) SetNode(pCur->Value());
|
||||
PAppend (pNew);
|
||||
pCur = (SetNode *) pCur->Next();
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
//! Clear this set
|
||||
void Clear (void)
|
||||
{ PClear (SetNode::delNode, this->myAllocator); }
|
||||
|
||||
//! Add item
|
||||
Standard_Boolean Add (const TheItemType& theItem)
|
||||
{
|
||||
Iterator anIter(*this);
|
||||
while (anIter.More())
|
||||
{
|
||||
if (anIter.Value() == theItem)
|
||||
return Standard_False;
|
||||
anIter.Next();
|
||||
}
|
||||
SetNode * pNew = new (this->myAllocator) SetNode(theItem);
|
||||
PPrepend (pNew);
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//! Remove item
|
||||
Standard_Boolean Remove (const TheItemType& theItem)
|
||||
{
|
||||
Iterator anIter(*this);
|
||||
while (anIter.More())
|
||||
{
|
||||
if (anIter.Value() == theItem)
|
||||
{
|
||||
PRemove (anIter, SetNode::delNode, this->myAllocator);
|
||||
return Standard_True;
|
||||
}
|
||||
anIter.Next();
|
||||
}
|
||||
return Standard_False;
|
||||
}
|
||||
|
||||
//! Remove - wrapper against 'hiding' warnings
|
||||
void Remove (Iterator& theIter)
|
||||
{ NCollection_BaseList::PRemove (theIter,
|
||||
SetNode::delNode,
|
||||
this->myAllocator); }
|
||||
|
||||
//! Contains - item inclusion query
|
||||
Standard_Boolean Contains (const TheItemType& theItem) const
|
||||
{
|
||||
Iterator anIter(*this);
|
||||
for (; anIter.More(); anIter.Next())
|
||||
if (anIter.Value() == theItem)
|
||||
return Standard_True;
|
||||
return Standard_False;
|
||||
}
|
||||
|
||||
//! IsASubset
|
||||
Standard_Boolean IsASubset (const GEOM_Set& theOther)
|
||||
{
|
||||
if (this == &theOther)
|
||||
return Standard_True;
|
||||
Iterator anIter(theOther);
|
||||
for (; anIter.More(); anIter.Next())
|
||||
if (!Contains(anIter.Value()))
|
||||
return Standard_False;
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//! IsAProperSubset
|
||||
Standard_Boolean IsAProperSubset (const GEOM_Set& theOther)
|
||||
{
|
||||
if (myLength <= theOther.Extent())
|
||||
return Standard_False;
|
||||
Iterator anIter(theOther);
|
||||
for (; anIter.More(); anIter.Next())
|
||||
if (!Contains(anIter.Value()))
|
||||
return Standard_False;
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//! Union
|
||||
void Union (const GEOM_Set& theOther)
|
||||
{
|
||||
if (this == &theOther)
|
||||
return;
|
||||
Iterator anIter(theOther);
|
||||
Iterator aMyIter;
|
||||
Standard_Integer i, iLength=myLength;
|
||||
for (; anIter.More(); anIter.Next())
|
||||
{
|
||||
Standard_Boolean isIn=Standard_False;
|
||||
const TheItemType& theItem = anIter.Value();
|
||||
for (aMyIter.Init(*this), i=1;
|
||||
i<=iLength;
|
||||
aMyIter.Next(), i++)
|
||||
if (theItem == aMyIter.Value())
|
||||
isIn = Standard_True;
|
||||
if (!isIn)
|
||||
{
|
||||
SetNode * pNew = new (this->myAllocator) SetNode(theItem);
|
||||
PAppend (pNew);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//! Intersection
|
||||
void Intersection (const GEOM_Set& theOther)
|
||||
{
|
||||
if (this == &theOther)
|
||||
return;
|
||||
Iterator anIter(*this);
|
||||
while (anIter.More())
|
||||
if (theOther.Contains(anIter.Value()))
|
||||
anIter.Next();
|
||||
else
|
||||
NCollection_BaseList::PRemove (anIter, SetNode::delNode, this->myAllocator);
|
||||
}
|
||||
|
||||
//! Difference (Subtraction)
|
||||
void Difference (const GEOM_Set& theOther)
|
||||
{
|
||||
if (this == &theOther)
|
||||
return;
|
||||
Iterator anIter(*this);
|
||||
while (anIter.More())
|
||||
if (theOther.Contains(anIter.Value()))
|
||||
NCollection_BaseList::PRemove (anIter, SetNode::delNode, this->myAllocator);
|
||||
else
|
||||
anIter.Next();
|
||||
}
|
||||
|
||||
//! Destructor - clears the List
|
||||
~GEOM_Set (void)
|
||||
{ Clear(); }
|
||||
|
||||
private:
|
||||
//! Creates Iterator for use on BaseCollection
|
||||
virtual TYPENAME NCollection_BaseCollection<TheItemType>::Iterator&
|
||||
CreateIterator(void) const
|
||||
{ return *(new (this->IterAllocator()) Iterator(*this)); }
|
||||
|
||||
};
|
||||
|
||||
typedef GEOM_Set<TopoDS_Vertex> TVertexSet;
|
||||
typedef GEOM_Set<TopoDS_Edge> TEdgeSet;
|
||||
typedef GEOM_Set<TopoDS_Face> TFaceSet;
|
||||
|
||||
class VertexSourceInternal
|
||||
{
|
||||
public:
|
||||
TVertexSet myVertexSet;
|
||||
};
|
||||
|
||||
class EdgeSourceInternal
|
||||
{
|
||||
public:
|
||||
TEdgeSet myEdgeSet;
|
||||
};
|
||||
|
||||
class FaceSourceInternal
|
||||
{
|
||||
public:
|
||||
TFaceSet myFaceSet;
|
||||
};
|
||||
|
||||
#endif // OCC2VTK_INTERNAL_H
|
Loading…
Reference in New Issue
Block a user