mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-09-08 14:17:06 +03:00
Compare commits
1 Commits
CR0-740-ZL
...
CR0-Intera
Author | SHA1 | Date | |
---|---|---|---|
|
961713db52 |
@@ -647,7 +647,6 @@ Standard_Integer bopcurves (Draw_Interpretor& di,
|
||||
aToApproxC2dOnS2,
|
||||
anAppTol);
|
||||
aFF.SetList(aListOfPnts);
|
||||
aFF.SetFuzzyValue (BOPTest_Objects::FuzzyValue());
|
||||
//
|
||||
aFF.Perform (aF1, aF2);
|
||||
//
|
||||
|
@@ -18,7 +18,6 @@
|
||||
#include <GCPnts_AbscissaPoint.hxx>
|
||||
#include <GeomAdaptor_Curve.hxx>
|
||||
#include <GeomAbs_IsoType.hxx>
|
||||
#include <BRep_Tool.hxx>
|
||||
|
||||
//=======================================================================
|
||||
// Function: Reset
|
||||
@@ -126,14 +125,9 @@ void BRepMesh_DefaultRangeSplitter::computeTolerance(
|
||||
const Standard_Real aDiffU = myRangeU.second - myRangeU.first;
|
||||
const Standard_Real aDiffV = myRangeV.second - myRangeV.first;
|
||||
|
||||
const Standard_Real aTolerance = BRep_Tool::Tolerance (myDFace->GetFace());
|
||||
const Adaptor3d_Surface& aSurface = GetSurface()->Surface();
|
||||
const Standard_Real aResU = aSurface.UResolution (aTolerance);
|
||||
const Standard_Real aResV = aSurface.VResolution (aTolerance);
|
||||
|
||||
const Standard_Real aDeflectionUV = 1.e-05;
|
||||
myTolerance.first = Max(Min(aDeflectionUV, aResU), 1e-7 * aDiffU);
|
||||
myTolerance.second = Max(Min(aDeflectionUV, aResV), 1e-7 * aDiffV);
|
||||
myTolerance.first = Max(Min(aDeflectionUV, 0.1 * aDiffU), 1e-7 * aDiffU);
|
||||
myTolerance.second = Max(Min(aDeflectionUV, 0.1 * aDiffV), 1e-7 * aDiffV);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
|
@@ -42,7 +42,6 @@
|
||||
#include <StepGeom_Conic.hxx>
|
||||
#include <StepGeom_Curve.hxx>
|
||||
#include <StepGeom_Line.hxx>
|
||||
#include <Geom2d_TrimmedCurve.hxx>
|
||||
|
||||
//=============================================================================
|
||||
// Creation d' une Curve de prostep a partir d' une Curve de Geom
|
||||
@@ -163,10 +162,6 @@ GeomToStep_MakeCurve::GeomToStep_MakeCurve ( const Handle(Geom2d_Curve)& C)
|
||||
GeomToStep_MakeBoundedCurve MkBoundedC(L);
|
||||
theCurve = MkBoundedC.Value();
|
||||
}
|
||||
else if (C->IsKind(STANDARD_TYPE(Geom2d_TrimmedCurve))) {
|
||||
GeomToStep_MakeCurve aMaker = (Handle(Geom2d_TrimmedCurve)::DownCast(C)->BasisCurve());
|
||||
theCurve = aMaker.Value();
|
||||
}
|
||||
else
|
||||
done = Standard_False;
|
||||
}
|
||||
|
@@ -47,9 +47,6 @@ public:
|
||||
//! Once added, stores its attached Protocol in correspondance
|
||||
Standard_EXPORT void Add (const Handle(IGESData_SpecificModule)& amodule, const Handle(IGESData_Protocol)& aprotocol);
|
||||
|
||||
//! Removes a Module from the list
|
||||
Standard_EXPORT void Remove(const Handle(IGESData_SpecificModule)& amodule);
|
||||
|
||||
//! Returns the Module stored in a given GlobalNode
|
||||
Standard_EXPORT const Handle(IGESData_SpecificModule)& Module() const;
|
||||
|
||||
|
@@ -47,9 +47,6 @@ public:
|
||||
//! Once added, stores its attached Protocol in correspondance
|
||||
Standard_EXPORT void Add (const Handle(IGESData_ReadWriteModule)& amodule, const Handle(IGESData_Protocol)& aprotocol);
|
||||
|
||||
//! Removes a Module from the list
|
||||
Standard_EXPORT void Remove(const Handle(IGESData_ReadWriteModule)& amodule);
|
||||
|
||||
//! Returns the Module stored in a given GlobalNode
|
||||
Standard_EXPORT const Handle(IGESData_ReadWriteModule)& Module() const;
|
||||
|
||||
|
@@ -44,9 +44,6 @@ public:
|
||||
//! for this class of Library.
|
||||
Standard_EXPORT static void SetGlobal (const Handle(IGESData_SpecificModule)& amodule, const Handle(IGESData_Protocol)& aprotocol);
|
||||
|
||||
//! Releases a module from the global definition set.
|
||||
Standard_EXPORT static void ReleaseGlobal(const Handle(IGESData_SpecificModule)& amodule);
|
||||
|
||||
//! Creates a Library which complies with a Protocol, that is :
|
||||
//! Same class (criterium IsInstance)
|
||||
//! This creation gets the Modules from the global set, those
|
||||
|
@@ -44,9 +44,6 @@ public:
|
||||
//! for this class of Library.
|
||||
Standard_EXPORT static void SetGlobal (const Handle(IGESData_ReadWriteModule)& amodule, const Handle(IGESData_Protocol)& aprotocol);
|
||||
|
||||
//! Releases a module from the global definition set.
|
||||
Standard_EXPORT static void ReleaseGlobal(const Handle(IGESData_ReadWriteModule)& amodule);
|
||||
|
||||
//! Creates a Library which complies with a Protocol, that is :
|
||||
//! Same class (criterium IsInstance)
|
||||
//! This creation gets the Modules from the global set, those
|
||||
|
@@ -3507,8 +3507,8 @@ static IntPatch_ImpImpIntersection::IntStatus
|
||||
const IntSurf_PntOn2S& aPntLWL1 = aWLine1->Point(aWLine1->NbPnts());
|
||||
|
||||
const IntSurf_PntOn2S aPntCur = theSPnt.Value(aNbPnt).PntOn2S();
|
||||
if (aPntCur.IsSame(aPntFWL1, aTol3D) ||
|
||||
aPntCur.IsSame(aPntLWL1, aTol3D))
|
||||
if (aPntCur.IsSame(aPntFWL1, Precision::Confusion()) ||
|
||||
aPntCur.IsSame(aPntLWL1, Precision::Confusion()))
|
||||
{
|
||||
theSPnt.Remove(aNbPnt);
|
||||
aNbPnt--;
|
||||
|
@@ -43,9 +43,6 @@ public:
|
||||
//! for this class of Library.
|
||||
Standard_EXPORT static void SetGlobal (const Handle(Interface_GeneralModule)& amodule, const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Releases a module from the global definition set.
|
||||
Standard_EXPORT static void ReleaseGlobal(const Handle(Interface_GeneralModule)& amodule);
|
||||
|
||||
//! Creates a Library which complies with a Protocol, that is :
|
||||
//! Same class (criterium IsInstance)
|
||||
//! This creation gets the Modules from the global set, those
|
||||
|
@@ -47,9 +47,6 @@ public:
|
||||
//! Once added, stores its attached Protocol in correspondance
|
||||
Standard_EXPORT void Add (const Handle(Interface_GeneralModule)& amodule, const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Removes a Module from the list
|
||||
Standard_EXPORT void Remove(const Handle(Interface_GeneralModule)& amodule);
|
||||
|
||||
//! Returns the Module stored in a given GlobalNode
|
||||
Standard_EXPORT const Handle(Interface_GeneralModule)& Module() const;
|
||||
|
||||
|
@@ -47,9 +47,6 @@ public:
|
||||
//! Once added, stores its attached Protocol in correspondance
|
||||
Standard_EXPORT void Add (const Handle(Interface_ReaderModule)& amodule, const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Removes a Module from the list
|
||||
Standard_EXPORT void Remove(const Handle(Interface_ReaderModule)& amodule);
|
||||
|
||||
//! Returns the Module stored in a given GlobalNode
|
||||
Standard_EXPORT const Handle(Interface_ReaderModule)& Module() const;
|
||||
|
||||
|
@@ -43,9 +43,6 @@ public:
|
||||
//! for this class of Library.
|
||||
Standard_EXPORT static void SetGlobal (const Handle(Interface_ReaderModule)& amodule, const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Releases a module from the global definition set.
|
||||
Standard_EXPORT static void ReleaseGlobal(const Handle(Interface_ReaderModule)& amodule);
|
||||
|
||||
//! Creates a Library which complies with a Protocol, that is :
|
||||
//! Same class (criterium IsInstance)
|
||||
//! This creation gets the Modules from the global set, those
|
||||
|
@@ -38,26 +38,6 @@ LibCtl_GlobalNode::LibCtl_GlobalNode () { }
|
||||
else thenext->Add (amodule,aprotocol);
|
||||
}
|
||||
|
||||
void LibCtl_GlobalNode::Remove(const Handle(TheModule)& amodule)
|
||||
{
|
||||
if (themod == amodule)
|
||||
{
|
||||
if (thenext.IsNull())
|
||||
{
|
||||
themod = Handle(TheModule)();
|
||||
theprot = Handle(TheProtocol)();
|
||||
}
|
||||
else
|
||||
{
|
||||
themod = thenext->themod;
|
||||
theprot = thenext->theprot;
|
||||
thenext = thenext->thenext;
|
||||
}
|
||||
}
|
||||
else if (!thenext.IsNull())
|
||||
thenext->Remove(amodule);
|
||||
}
|
||||
|
||||
const Handle(TheModule)& LibCtl_GlobalNode::Module () const
|
||||
{ return themod; }
|
||||
|
||||
|
@@ -36,12 +36,6 @@ static Handle(LibCtl_Node) thelast;
|
||||
theglobal->Add(amodule,aprotocol);
|
||||
}
|
||||
|
||||
void LibCtl_Library::ReleaseGlobal(const Handle(TheModule)& amodule)
|
||||
{
|
||||
if (!theglobal.IsNull())
|
||||
theglobal->Remove(amodule);
|
||||
}
|
||||
|
||||
// Constructeur d apres Protocole
|
||||
LibCtl_Library::LibCtl_Library (const Handle(TheProtocol)& aprotocol)
|
||||
{
|
||||
|
@@ -22,43 +22,18 @@
|
||||
#include <StepAP214_Protocol.hxx>
|
||||
#include <StepData_WriterLib.hxx>
|
||||
|
||||
DEFINE_STANDARD_HANDLE(RWStepAP214_Mgr, Standard_Transient)
|
||||
|
||||
class RWStepAP214_Mgr : public Standard_Transient
|
||||
{
|
||||
public:
|
||||
RWStepAP214_Mgr()
|
||||
{
|
||||
myProtocol = StepAP214::Protocol();
|
||||
myGeneralModule = new RWStepAP214_GeneralModule;
|
||||
myRWModule = new RWStepAP214_ReadWriteModule;
|
||||
Interface_GeneralLib::SetGlobal(myGeneralModule, myProtocol);
|
||||
Interface_ReaderLib::SetGlobal(myRWModule, myProtocol);
|
||||
StepData_WriterLib::SetGlobal(myRWModule, myProtocol);
|
||||
}
|
||||
|
||||
virtual ~RWStepAP214_Mgr()
|
||||
{
|
||||
Interface_GeneralLib::ReleaseGlobal(myGeneralModule);
|
||||
Interface_ReaderLib::ReleaseGlobal(myRWModule);
|
||||
StepData_WriterLib::ReleaseGlobal(myRWModule);
|
||||
}
|
||||
|
||||
DEFINE_STANDARD_RTTI_INLINE(RWStepAP214_Mgr, Standard_Transient)
|
||||
|
||||
private:
|
||||
Handle(StepAP214_Protocol) myProtocol;
|
||||
Handle(RWStepAP214_ReadWriteModule) myRWModule;
|
||||
Handle(RWStepAP214_GeneralModule) myGeneralModule;
|
||||
};
|
||||
|
||||
static Handle(RWStepAP214_Mgr) THE_MGR;
|
||||
static int THE_RWStepAP214_init = 0;
|
||||
|
||||
void RWStepAP214::Init()
|
||||
{
|
||||
if (THE_MGR.IsNull())
|
||||
if (THE_RWStepAP214_init)
|
||||
{
|
||||
return;
|
||||
}
|
||||
THE_RWStepAP214_init = 1;
|
||||
RWHeaderSection::Init();
|
||||
THE_MGR = new RWStepAP214_Mgr;
|
||||
}
|
||||
Handle(StepAP214_Protocol) proto = StepAP214::Protocol();
|
||||
Interface_GeneralLib::SetGlobal (new RWStepAP214_GeneralModule,proto);
|
||||
Interface_ReaderLib::SetGlobal (new RWStepAP214_ReadWriteModule,proto);
|
||||
StepData_WriterLib::SetGlobal (new RWStepAP214_ReadWriteModule,proto);
|
||||
}
|
||||
|
@@ -97,9 +97,25 @@ namespace
|
||||
return aPoly;
|
||||
}
|
||||
|
||||
//! Add new solid
|
||||
virtual void AddSolid() Standard_OVERRIDE
|
||||
{
|
||||
Handle(Poly_Triangulation) aCurrentTri = GetTriangulation();
|
||||
myTriangulationList.Append(aCurrentTri);
|
||||
myNodes.Clear();
|
||||
myTriangles.Clear();
|
||||
}
|
||||
|
||||
NCollection_Sequence<Handle(Poly_Triangulation)> GetTriangulationList()
|
||||
{
|
||||
return myTriangulationList;
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
NCollection_Vector<gp_XYZ> myNodes;
|
||||
NCollection_Vector<Poly_Triangle> myTriangles;
|
||||
NCollection_Sequence<Handle(Poly_Triangulation)> myTriangulationList;
|
||||
};
|
||||
|
||||
}
|
||||
@@ -118,6 +134,17 @@ Handle(Poly_Triangulation) RWStl::ReadFile (const Standard_CString theFile,
|
||||
return aReader.GetTriangulation();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//function : ReadFile
|
||||
//purpose :
|
||||
//=============================================================================
|
||||
void RWStl::ReadFile(const Standard_CString theFile, NCollection_Sequence<Handle(Poly_Triangulation)>& theTriangList)
|
||||
{
|
||||
Reader aReader;
|
||||
aReader.Read(theFile, Handle(Message_ProgressIndicator)(), true);
|
||||
theTriangList = aReader.GetTriangulationList();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//function : ReadFile
|
||||
//purpose :
|
||||
|
@@ -50,6 +50,8 @@ public:
|
||||
Standard_EXPORT static Handle(Poly_Triangulation) ReadFile (const Standard_CString theFile,
|
||||
const Handle(Message_ProgressIndicator)& aProgInd = Handle(Message_ProgressIndicator)());
|
||||
|
||||
Standard_EXPORT static void ReadFile(const Standard_CString theFile, NCollection_Sequence<Handle(Poly_Triangulation)>& theTriangList);
|
||||
|
||||
//! Read triangulation from a binary STL file
|
||||
//! In case of error, returns Null handle.
|
||||
Standard_EXPORT static Handle(Poly_Triangulation) ReadBinary (const OSD_Path& thePath,
|
||||
|
@@ -126,7 +126,8 @@ namespace
|
||||
//==============================================================================
|
||||
|
||||
Standard_Boolean RWStl_Reader::Read (const char* theFile,
|
||||
const Handle(Message_ProgressIndicator)& theProgress)
|
||||
const Handle(Message_ProgressIndicator)& theProgress,
|
||||
bool IsMultiSolid)
|
||||
{
|
||||
std::filebuf aBuf;
|
||||
OSD_OpenStream (aBuf, theFile, std::ios::in | std::ios::binary);
|
||||
@@ -165,6 +166,8 @@ Standard_Boolean RWStl_Reader::Read (const char* theFile,
|
||||
}
|
||||
}
|
||||
aStream >> std::ws; // skip any white spaces
|
||||
if (IsMultiSolid)
|
||||
AddSolid();
|
||||
}
|
||||
return ! aStream.fail();
|
||||
}
|
||||
|
@@ -39,7 +39,8 @@ public:
|
||||
//! Format is recognized automatically by analysis of the file header.
|
||||
//! Returns true if success, false on error or user break.
|
||||
Standard_EXPORT Standard_Boolean Read (const char* theFile,
|
||||
const Handle(Message_ProgressIndicator)& theProgress);
|
||||
const Handle(Message_ProgressIndicator)& theProgress,
|
||||
bool IsMultiSolid = false);
|
||||
|
||||
//! Guess whether the stream is an Ascii STL file, by analysis of the first bytes (~200).
|
||||
//! The function attempts to put back the read symbols to the stream which thus must support ungetc().
|
||||
@@ -74,6 +75,8 @@ public:
|
||||
//! Should create new triangle built on specified nodes in the target model.
|
||||
virtual void AddTriangle (Standard_Integer theN1, Standard_Integer theN2, Standard_Integer theN3) = 0;
|
||||
|
||||
virtual void AddSolid() = 0;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -22,33 +22,6 @@
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(STEPCAFControl_Controller,STEPControl_Controller)
|
||||
|
||||
|
||||
DEFINE_STANDARD_HANDLE(STEPCAF_Mgr, Standard_Transient)
|
||||
|
||||
class STEPCAF_Mgr : public Standard_Transient
|
||||
{
|
||||
public:
|
||||
STEPCAF_Mgr()
|
||||
{
|
||||
myCtl = new STEPCAFControl_Controller;
|
||||
// do something to avoid warnings...
|
||||
myCtl->AutoRecord();
|
||||
}
|
||||
|
||||
virtual ~STEPCAF_Mgr()
|
||||
{
|
||||
myCtl->AutoRelease();
|
||||
}
|
||||
|
||||
DEFINE_STANDARD_RTTI_INLINE(STEPCAF_Mgr, Standard_Transient)
|
||||
|
||||
private:
|
||||
Handle(STEPCAFControl_Controller) myCtl;
|
||||
};
|
||||
|
||||
static Handle(STEPCAF_Mgr) THE_MGR;
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : STEPCAFControl_Controller
|
||||
//purpose :
|
||||
@@ -69,9 +42,12 @@ Standard_Boolean STEPCAFControl_Controller::Init ()
|
||||
static Standard_Boolean inic = Standard_False;
|
||||
if (inic) return Standard_True;
|
||||
inic = Standard_True;
|
||||
// self-registering
|
||||
Handle(STEPCAFControl_Controller) STEPCTL = new STEPCAFControl_Controller;
|
||||
// do XSAlgo::Init, cause it does not called before.
|
||||
XSAlgo::Init();
|
||||
THE_MGR = new STEPCAF_Mgr;
|
||||
// do something to avoid warnings...
|
||||
STEPCTL->AutoRecord();
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Few variables for advanced control of translation process
|
||||
|
@@ -47,9 +47,6 @@ public:
|
||||
//! Once added, stores its attached Protocol in correspondance
|
||||
Standard_EXPORT void Add (const Handle(StepData_ReadWriteModule)& amodule, const Handle(StepData_Protocol)& aprotocol);
|
||||
|
||||
//! Removes a Module from the list
|
||||
Standard_EXPORT void Remove(const Handle(StepData_ReadWriteModule)& amodule);
|
||||
|
||||
//! Returns the Module stored in a given GlobalNode
|
||||
Standard_EXPORT const Handle(StepData_ReadWriteModule)& Module() const;
|
||||
|
||||
|
@@ -43,9 +43,6 @@ public:
|
||||
//! for this class of Library.
|
||||
Standard_EXPORT static void SetGlobal (const Handle(StepData_ReadWriteModule)& amodule, const Handle(StepData_Protocol)& aprotocol);
|
||||
|
||||
//! Releases a module from the global definition set.
|
||||
Standard_EXPORT static void ReleaseGlobal(const Handle(StepData_ReadWriteModule)& amodule);
|
||||
|
||||
//! Creates a Library which complies with a Protocol, that is :
|
||||
//! Same class (criterium IsInstance)
|
||||
//! This creation gets the Modules from the global set, those
|
||||
|
@@ -53,8 +53,6 @@
|
||||
#include <Transfer_FinderProcess.hxx>
|
||||
#include <TransferBRep.hxx>
|
||||
#include <TransferBRep_ShapeMapper.hxx>
|
||||
#include <BRepTools.hxx>
|
||||
#include <ShapeAnalysis_Curve.hxx>
|
||||
|
||||
// Processing of non-manifold topology (ssv; 11.11.2010)
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -189,54 +187,6 @@ void TopoDSToStep_MakeStepEdge::Init(const TopoDS_Edge& aEdge,
|
||||
C = Handle(Geom_Curve)::DownCast(C->Copy());
|
||||
gp_Trsf Tr1 = CA.Trsf();
|
||||
C->Transform(Tr1);
|
||||
if (C->IsPeriodic())
|
||||
{
|
||||
Standard_Real dpar = CA.LastParameter() - CA.FirstParameter();
|
||||
|
||||
Standard_Real aTolV1 = BRep_Tool::Tolerance(Vfirst);
|
||||
Standard_Real aTolV2 = BRep_Tool::Tolerance(Vlast);
|
||||
gp_Pnt aP1 = BRep_Tool::Pnt(Vfirst);
|
||||
gp_Pnt aP2 = BRep_Tool::Pnt(Vlast);
|
||||
gp_Pnt pproj;
|
||||
gp_Pnt aP11 = CA.Value(CA.FirstParameter());
|
||||
gp_Pnt aP12 =CA.Value(CA.LastParameter());
|
||||
ShapeAnalysis_Curve sac;
|
||||
sac.Project (C, aP1, Tolerance(), pproj, U1, Standard_False);
|
||||
sac.Project (C, aP2, Tolerance(), pproj, U2, Standard_False);
|
||||
Standard_Real dU = U2 - U1;
|
||||
|
||||
if (dpar <= 0)
|
||||
dpar += (ceil(fabs(dpar) / C->Period()) *C->Period());
|
||||
|
||||
if (dU <= 0)
|
||||
dU += (ceil(fabs(dU) / C->Period()) *C->Period());
|
||||
// if range obtained from projection of vertices is contradicted with range of the edge
|
||||
//tnen vertices should be permuted
|
||||
|
||||
if ((dU > Precision::PConfusion() && dU <= 0.1 * C->Period() && dpar > 0.5 * C->Period()) ||
|
||||
(dpar > Precision::PConfusion() && dpar <= 0.1 * C->Period() && dU > 0.5 * C->Period()))
|
||||
{
|
||||
Handle(StepShape_Vertex) aVtemp = V1;
|
||||
V1 = V2; V2 = aVtemp;
|
||||
}
|
||||
|
||||
gp_Pnt aPm = CA.Value((CA.FirstParameter() + CA.LastParameter()) *0.5);
|
||||
Standard_Real aDist11 = aP11.Distance(aP12);
|
||||
Standard_Real aDist1m = aP11.Distance(aPm);
|
||||
Standard_Real aDist2m = aP12.Distance(aPm);
|
||||
Standard_Real aDistMax = Max(Max(aDist1m, aDist2m), aDist11);
|
||||
Standard_Boolean isSmallCurve = (aDistMax <= aTolV1 || aDistMax <= aTolV2);
|
||||
//for small edge lying BSpline periodic curve segment of the BSpline periodic curve is used to avoid invalid computation of the edge range duriring reading
|
||||
if (BRepTools::Compare(Vfirst, Vlast) && isSmallCurve && C->IsPeriodic() && dpar > Precision::PConfusion() && dpar <= 0.1 * C->Period())
|
||||
{
|
||||
if (C->IsKind(STANDARD_TYPE(Geom_BSplineCurve)))
|
||||
{
|
||||
Handle(Geom_BSplineCurve) aBspl1 = Handle(Geom_BSplineCurve)::DownCast(C->Copy());
|
||||
aBspl1->Segment (CA.FirstParameter(), CA.LastParameter());
|
||||
C = aBspl1;
|
||||
}
|
||||
}
|
||||
}
|
||||
GeomToStep_MakeCurve MkCurve(C);
|
||||
Gpms = MkCurve.Value();
|
||||
}
|
||||
|
@@ -131,13 +131,6 @@ void XSControl_Controller::Record (const Standard_CString theName) const
|
||||
listad.Bind(theName, this);
|
||||
}
|
||||
|
||||
void XSControl_Controller::Release(const Standard_CString theName) const
|
||||
{
|
||||
if (listad.IsBound(theName)) {
|
||||
listad.UnBind(theName);
|
||||
}
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Recorded
|
||||
//purpose :
|
||||
|
@@ -79,21 +79,10 @@ class XSControl_Controller : public Standard_Transient
|
||||
Record (Name(Standard_False));
|
||||
}
|
||||
|
||||
//! Removes <me> from the general dictionary under Short and Long
|
||||
//! Names (see method Name)
|
||||
void AutoRelease() const
|
||||
{
|
||||
Release (Name(Standard_True));
|
||||
Release (Name(Standard_False));
|
||||
}
|
||||
|
||||
//! Records <me> in a general dictionary under a name
|
||||
//! Error if <name> already used for another one
|
||||
Standard_EXPORT void Record (const Standard_CString name) const;
|
||||
|
||||
//! Removes <me> from the general dictionary under a name
|
||||
Standard_EXPORT void Release(const Standard_CString name) const;
|
||||
|
||||
//! Returns the Controller attached to a given name
|
||||
//! Returns a Null Handle if <name> is unknown
|
||||
Standard_EXPORT static Handle(XSControl_Controller) Recorded (const Standard_CString name);
|
||||
|
@@ -411,6 +411,22 @@ static Standard_Integer ReadObj (Draw_Interpretor& theDI,
|
||||
{
|
||||
aFilePath = theArgVec[anArgIter];
|
||||
}
|
||||
else if (theArgc == 4 && strcmp("multi", theArgv[3]) == 0)
|
||||
{
|
||||
NCollection_Sequence<Handle(Poly_Triangulation)> theTriangList;
|
||||
RWStl::ReadFile(theArgv[2], theTriangList);
|
||||
BRep_Builder aB;
|
||||
TopoDS_Compound aCmp;
|
||||
aB.MakeCompound(aCmp);
|
||||
for (int i = 1; i <= theTriangList.Length(); i++)
|
||||
{
|
||||
TopoDS_Face aFace;
|
||||
aB.MakeFace(aFace);
|
||||
aB.UpdateFace(aFace, theTriangList(i));
|
||||
aB.Add(aCmp, aFace);
|
||||
}
|
||||
DBRep::Set(theArgv[1], aCmp);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Syntax error at '" << theArgVec[anArgIter] << "'\n";
|
||||
|
@@ -1,79 +0,0 @@
|
||||
puts "============================================================================================="
|
||||
puts "OCC31499: Boolean Operations - Custom fuzzy value corrupts the result of CUT"
|
||||
puts "============================================================================================="
|
||||
puts ""
|
||||
|
||||
restore [locate_data_file bug31499.brep] s
|
||||
|
||||
# perform operation with default fuzzy value
|
||||
bfuzzyvalue 1.e-7
|
||||
|
||||
tcopy s s1
|
||||
explode s1 So
|
||||
|
||||
bclearobjects
|
||||
bcleartools
|
||||
baddobjects s1_1
|
||||
baddtools s1_2 s1_3 s1_4
|
||||
bfillds
|
||||
|
||||
bbop r1_0 0
|
||||
bbop r1_1 1
|
||||
bbop r1_2 2
|
||||
bbop r1_3 3
|
||||
bbop r1_4 4
|
||||
bbuild r1_5
|
||||
|
||||
|
||||
# perform operation with custom fuzzy value
|
||||
bfuzzyvalue 1.e-5
|
||||
|
||||
tcopy s s2
|
||||
explode s2 So
|
||||
|
||||
bclearobjects
|
||||
bcleartools
|
||||
baddobjects s2_1
|
||||
baddtools s2_2 s2_3 s2_4
|
||||
bfillds
|
||||
|
||||
bbop r2_0 0
|
||||
bbop r2_1 1
|
||||
bbop r2_2 2
|
||||
bbop r2_3 3
|
||||
bbop r2_4 4
|
||||
bbuild r2_5
|
||||
|
||||
foreach j {1 2} {
|
||||
foreach i {0 1 2 3 4 5} {
|
||||
checkshape r${j}_$i
|
||||
if {![regexp "OK" [bopcheck r${j}_$i]]} {
|
||||
puts "Error: r${j}_$i is self-intersecting shape"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
checkprops r1_0 -s 858.419 -v 687.948
|
||||
checknbshapes r1_0 -wire 21 -face 21 -shell 3 -solid 3 -t
|
||||
|
||||
checkprops r1_1 -s 29829.2 -v 219732
|
||||
checknbshapes r1_1 -wire 34 -face 34 -shell 1 -solid 1 -t
|
||||
|
||||
checkprops r1_2 -s 1987.39 -v 6408.07
|
||||
checknbshapes r1_2 -wire 19 -face 19 -shell 1 -solid 1 -t
|
||||
|
||||
checkprops r1_3 -s 37868.2 -v 212636
|
||||
checknbshapes r1_3 -wire 60 -face 60 -shell 6 -solid 6 -t
|
||||
|
||||
checkprops r1_4 -l 379.04
|
||||
checksection r1_4 -r 0
|
||||
|
||||
checkprops r1_5 -s 40714 -v 219732
|
||||
checknbshapes r1_5 -wire 79 -face 79 -shell 10 -solid 10 -t
|
||||
|
||||
foreach i {0 1 2 3 4 5} {
|
||||
checkprops r2_$i -equal r1_$i
|
||||
checknbshapes r2_$i -ref [nbshapes r2_$i]
|
||||
}
|
||||
|
||||
checkview -display r2_2 -2d -path ${imagedir}/${test_image}.png
|
@@ -1,36 +0,0 @@
|
||||
puts "============================================================================================="
|
||||
puts "OCC31499: Boolean Operations - Custom fuzzy value corrupts the result of CUT"
|
||||
puts "============================================================================================="
|
||||
puts ""
|
||||
|
||||
restore [locate_data_file bug31499.brep] s
|
||||
|
||||
explode s So
|
||||
explode s_1 f; copy s_1_3 f1
|
||||
explode s_2 f; copy s_2_4 f2
|
||||
|
||||
foreach c [directory c_*] { unset $c }
|
||||
|
||||
bfuzzyvalue 1.e-7
|
||||
regexp {Tolerance Reached=([-0-9.+eE]*)} [bopcurves f1 f2 -2d] full tol3D1
|
||||
|
||||
set length1 0.0
|
||||
foreach c [directory c_*] {
|
||||
set length1 [dval $length1+[dval [lindex [length $c] 4]]]
|
||||
}
|
||||
|
||||
foreach c [directory c_*] { unset $c }
|
||||
|
||||
bfuzzyvalue 1.e-5
|
||||
regexp {Tolerance Reached=([-0-9.+eE]*)} [bopcurves f1 f2 -2d] full tol3D2
|
||||
|
||||
set length2 0.0
|
||||
foreach c [directory c_*] {
|
||||
set length2 [dval $length2+[dval [lindex [length $c] 4]]]
|
||||
}
|
||||
|
||||
checkreal "Length of curves" $length2 $length1 1.e-7 1.e-7
|
||||
|
||||
if {$tol3D2 > 1.e-5} {
|
||||
puts "Error: Face/Face intersection tolerance is too big when using fuzzy value"
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
testreadstep [locate_data_file bug31301.stp] s
|
||||
testwritestep bug31301_1.stp s
|
||||
testreadstep bug31301_1.stp s1
|
||||
checkshape s1 f
|
||||
checkmaxtol s1 -ref 0.0078
|
@@ -1,17 +0,0 @@
|
||||
puts "# ====================================================================="
|
||||
puts "# 0032228: Data Exchange - Shape becomes invalid after STEP export then import"
|
||||
puts "# ====================================================================="
|
||||
puts ""
|
||||
|
||||
# Reading file
|
||||
brestore [locate_data_file bug32228.brep] s
|
||||
set aTmpFile "$imagedir/${casename}.brep"
|
||||
testwritestep "$aTmpFile" s
|
||||
testreadstep "$aTmpFile" s1
|
||||
file delete "$aTmpFile"
|
||||
|
||||
# Checking
|
||||
checknbshapes s1 -vertex 47 -edge 72 -wire 35 -face 28
|
||||
checkshape s1 f
|
||||
checkmaxtol s1 -ref 1.e-7
|
||||
checkprops s1 -v 586991 -deps 0.01
|
@@ -1,16 +1,17 @@
|
||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||
puts "TODO CR23096 ALL: CHECKSHAPE : Faulty"
|
||||
puts "TODO CR23096 ALL: TOLERANCE : Faulty"
|
||||
|
||||
|
||||
set filename trj7_pm5-ug-214.stp
|
||||
|
||||
set ref_data {
|
||||
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
|
||||
TPSTAT : Faulties = 0 ( 0 ) Warnings = 3 ( 184 ) Summary = 3 ( 184 )
|
||||
CHECKSHAPE : Wires = 1 ( 0 ) Faces = 1 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
|
||||
TPSTAT : Faulties = 0 ( 0 ) Warnings = 5 ( 184 ) Summary = 5 ( 184 )
|
||||
CHECKSHAPE : Wires = 2 ( 0 ) Faces = 2 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
|
||||
NBSHAPES : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 236 ( 236 )
|
||||
STATSHAPE : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 236 ( 236 ) FreeWire = 0 ( 0 )
|
||||
TOLERANCE : MaxTol = 0.004380869792 ( 0.01854047103 ) AvgTol = 0.000165684279 ( 0.0006030086632 )
|
||||
TOLERANCE : MaxTol = 0.9036712735 ( 0.01854047103 ) AvgTol = 0.002850040066 ( 0.0006030086632 )
|
||||
LABELS : N0Labels = 1 ( 1 ) N1Labels = 34 ( 34 ) N2Labels = 0 ( 0 ) TotalLabels = 35 ( 35 ) NameLabels = 1 ( 1 ) ColorLabels = 35 ( 35 ) LayerLabels = 1 ( 1 )
|
||||
PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 )
|
||||
NCOLORS : NColors = 11 ( 11 )
|
||||
|
@@ -6,11 +6,11 @@ set filename test-m020306-v1.stp
|
||||
|
||||
set ref_data {
|
||||
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
|
||||
TPSTAT : Faulties = 1 ( 0 ) Warnings = 153 ( 114 ) Summary = 154 ( 114 )
|
||||
TPSTAT : Faulties = 0 ( 0 ) Warnings = 153 ( 114 ) Summary = 153 ( 114 )
|
||||
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
|
||||
NBSHAPES : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 742 ( 742 )
|
||||
STATSHAPE : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 742 ( 742 ) FreeWire = 0 ( 0 )
|
||||
TOLERANCE : MaxTol = 0.008481946718 ( 0.01167623167 ) AvgTol = 0.0001322682241 ( 0.0003097606769 )
|
||||
TOLERANCE : MaxTol = 0.008481946718 ( 0.01167623167 ) AvgTol = 0.000132472064 ( 0.0003097606769 )
|
||||
LABELS : N0Labels = 1 ( 1 ) N1Labels = 0 ( 0 ) N2Labels = 0 ( 0 ) TotalLabels = 1 ( 1 ) NameLabels = 1 ( 1 ) ColorLabels = 0 ( 0 ) LayerLabels = 0 ( 0 )
|
||||
PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 )
|
||||
NCOLORS : NColors = 0 ( 0 )
|
||||
|
@@ -1,16 +1,13 @@
|
||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||
puts "TODO CR23096 ALL: TPSTAT : Faulty"
|
||||
|
||||
|
||||
set filename test-m020306-v2.stp
|
||||
|
||||
set ref_data {
|
||||
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
|
||||
TPSTAT : Faulties = 1 ( 0 ) Warnings = 63 ( 157 ) Summary = 64 ( 157 )
|
||||
TPSTAT : Faulties = 0 ( 0 ) Warnings = 61 ( 157 ) Summary = 61 ( 157 )
|
||||
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
|
||||
NBSHAPES : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 956 ( 956 )
|
||||
STATSHAPE : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 956 ( 956 ) FreeWire = 0 ( 0 )
|
||||
TOLERANCE : MaxTol = 0.008481946718 ( 0.01167623167 ) AvgTol = 0.000123986292 ( 0.0003770309367 )
|
||||
TOLERANCE : MaxTol = 0.008481946718 ( 0.05394823207 ) AvgTol = 0.0001239210367 ( 0.0004089750747 )
|
||||
LABELS : N0Labels = 1 ( 1 ) N1Labels = 0 ( 0 ) N2Labels = 0 ( 0 ) TotalLabels = 1 ( 1 ) NameLabels = 1 ( 1 ) ColorLabels = 0 ( 0 ) LayerLabels = 0 ( 0 )
|
||||
PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 )
|
||||
NCOLORS : NColors = 0 ( 0 )
|
||||
|
@@ -1,16 +1,13 @@
|
||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||
puts "TODO CR23096 ALL: TPSTAT : Faulty"
|
||||
|
||||
|
||||
set filename Inventor_Engine.stp
|
||||
|
||||
set ref_data {
|
||||
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
|
||||
TPSTAT : Faulties = 1 ( 0 ) Warnings = 455 ( 560 ) Summary = 456 ( 560 )
|
||||
TPSTAT : Faulties = 0 ( 0 ) Warnings = 456 ( 560 ) Summary = 456 ( 560 )
|
||||
CHECKSHAPE : Wires = 6 ( 6 ) Faces = 6 ( 6 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
|
||||
NBSHAPES : Solid = 47 ( 47 ) Shell = 47 ( 47 ) Face = 4454 ( 4454 )
|
||||
STATSHAPE : Solid = 80 ( 80 ) Shell = 80 ( 80 ) Face = 5356 ( 5356 ) FreeWire = 0 ( 0 )
|
||||
TOLERANCE : MaxTol = 2.371238233 ( 2.449305641 ) AvgTol = 0.001672277308 ( 0.002589629313 )
|
||||
TOLERANCE : MaxTol = 2.37122237 ( 2.449305641 ) AvgTol = 0.002570949956 ( 0.002589629313 )
|
||||
LABELS : N0Labels = 52 ( 52 ) N1Labels = 86 ( 86 ) N2Labels = 0 ( 0 ) TotalLabels = 138 ( 138 ) NameLabels = 136 ( 136 ) ColorLabels = 47 ( 47 ) LayerLabels = 0 ( 0 )
|
||||
PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 )
|
||||
NCOLORS : NColors = 11 ( 11 )
|
||||
|
@@ -7,11 +7,11 @@ set filename Z8INV5.stp
|
||||
|
||||
set ref_data {
|
||||
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
|
||||
TPSTAT : Faulties = 0 ( 0 ) Warnings = 121 ( 620 ) Summary = 121 ( 620 )
|
||||
CHECKSHAPE : Wires = 15 ( 16 ) Faces = 18 ( 18 ) Shells = 1 ( 1 ) Solids = 0 ( 0 )
|
||||
NBSHAPES : Solid = 22 ( 22 ) Shell = 25 ( 24 ) Face = 1521 ( 1519 )
|
||||
STATSHAPE : Solid = 22 ( 22 ) Shell = 25 ( 24 ) Face = 1521 ( 1519 ) FreeWire = 0 ( 0 )
|
||||
TOLERANCE : MaxTol = 7.499684301 ( 7.499684301 ) AvgTol = 0.03357316863 ( 0.03544461059 )
|
||||
TPSTAT : Faulties = 0 ( 0 ) Warnings = 120 ( 620 ) Summary = 120 ( 620 )
|
||||
CHECKSHAPE : Wires = 15 ( 16 ) Faces = 17 ( 18 ) Shells = 1 ( 1 ) Solids = 0 ( 0 )
|
||||
NBSHAPES : Solid = 22 ( 22 ) Shell = 25 ( 24 ) Face = 1520 ( 1519 )
|
||||
STATSHAPE : Solid = 22 ( 22 ) Shell = 25 ( 24 ) Face = 1520 ( 1519 ) FreeWire = 0 ( 0 )
|
||||
TOLERANCE : MaxTol = 7.499684301 ( 7.499684301 ) AvgTol = 0.03452373473 ( 0.03544461059 )
|
||||
LABELS : N0Labels = 25 ( 25 ) N1Labels = 23 ( 23 ) N2Labels = 0 ( 0 ) TotalLabels = 48 ( 48 ) NameLabels = 48 ( 48 ) ColorLabels = 0 ( 0 ) LayerLabels = 0 ( 0 )
|
||||
PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 )
|
||||
NCOLORS : NColors = 0 ( 0 )
|
||||
|
Reference in New Issue
Block a user