1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-24 13:50:49 +03:00

Compare commits

..

3 Commits

Author SHA1 Message Date
mgerus
6acb227333 33150 fix(?) for wrong translate of 2dCurve 2022-09-30 10:58:48 +03:00
mgerus
5d0249c145 26920 fix exception call in fillet(wrong choice of face) 2022-09-30 10:57:43 +03:00
ddzama
1a1739b200 0032957: Add Standard_Noexcept definition
into Standard_Macro.hxx and
employ Standard_Noexcept.
2022-08-18 11:55:14 +03:00
12 changed files with 62 additions and 17 deletions

View File

@@ -3238,7 +3238,9 @@ Standard_Boolean ChFi3d_ComputeCurves(const Handle(Adaptor3d_Surface)& S1,
Pc2->Value(Uf).Coord(x,y);
x = Pardeb(3) - x;
y = Pardeb(4) - y;
if(Abs(x) > tol2d || Abs(y) > tol2d) Pc2->Translate(gp_Vec2d(x,y));
if(Abs(x) > tol2d || Abs(y) > tol2d)
Pc2->Translate(gp_Vec2d(-6.2831853, 0));
tolreached = ChFi3d_EvalTolReached(S1,Pc1,S2,Pc2,C3d);
return Standard_True;
}

View File

@@ -2708,7 +2708,14 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
TopoDS_Edge aLocalEdge = edgesau;
if (edgesau.Orientation() != orient)
aLocalEdge.Reverse();
C2dint1 = BRep_Tool::CurveOnSurface(aLocalEdge,Face[0],ubid,vbid);
C2dint1 = BRep_Tool::CurveOnSurface(aLocalEdge, Face[0], ubid, vbid);
if (C2dint1.IsNull())
{
//std::swap(Face[0], facesau);
C2dint1 = BRep_Tool::CurveOnSurface(aLocalEdge, facesau, ubid, vbid);
}
}
}
else {
@@ -2718,7 +2725,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
//// for periodic 3d curves ////
if (cad.IsPeriodic())
{
gp_Pnt2d P2d = BRep_Tool::Parameters( Vtx, Face[0] );
gp_Pnt2d P2d = BRep_Tool::Parameters(Vtx, facesau);
Geom2dAPI_ProjectPointOnCurve Projector( P2d, C2dint1 );
par = Projector.LowerDistanceParameter();
Standard_Real shift = par-ParVtx;

View File

@@ -82,7 +82,7 @@ void Interface_Static::Standards ()
Interface_Static::Init("XSTEP" ,"write.surfacecurve.mode", '&',"eval Off");
Interface_Static::Init("XSTEP" ,"write.surfacecurve.mode", '&',"eval On");
// Interface_Static::Init("XSTEP" ,"write.surfacecurve.mode", '&',"eval NoAnalytic");
Interface_Static::SetIVal ("write.surfacecurve.mode",0);
Interface_Static::SetIVal ("write.surfacecurve.mode",1);
// lastpreci : pour recuperer la derniere valeur codee (cf XSControl)
// (0 pour dire : pas codee)

View File

@@ -18,6 +18,7 @@
#include <Standard_OutOfMemory.hxx>
#include <Standard_OutOfRange.hxx>
#include <Standard_TypeMismatch.hxx>
#include <Standard_Macro.hxx>
//! Defines an array of values of configurable size.
//! For instance, this class allows defining an array of 32-bit or 64-bit integer values with bitness determined in runtime.
@@ -63,7 +64,7 @@ public:
}
//! Move constructor
NCollection_AliasedArray (NCollection_AliasedArray&& theOther) noexcept
NCollection_AliasedArray (NCollection_AliasedArray&& theOther) Standard_Noexcept
: myData (theOther.myData), myStride (theOther.myStride), mySize (theOther.mySize), myDeletable (theOther.myDeletable)
{
theOther.myDeletable = false;

View File

@@ -17,6 +17,7 @@
#include <NCollection_AliasedArray.hxx>
#include <gp_Pnt.hxx>
#include <gp_Vec3f.hxx>
#include <Standard_Macro.hxx>
//! Defines an array of 3D nodes of single/double precision configurable at construction time.
class Poly_ArrayOfNodes : public NCollection_AliasedArray<>
@@ -85,14 +86,14 @@ public:
Poly_ArrayOfNodes& operator= (const Poly_ArrayOfNodes& theOther) { return Assign (theOther); }
//! Move constructor
Poly_ArrayOfNodes (Poly_ArrayOfNodes&& theOther) noexcept
Poly_ArrayOfNodes (Poly_ArrayOfNodes&& theOther) Standard_Noexcept
: NCollection_AliasedArray (std::move (theOther))
{
//
}
//! Move assignment operator; @sa Move()
Poly_ArrayOfNodes& operator= (Poly_ArrayOfNodes&& theOther) noexcept
Poly_ArrayOfNodes& operator= (Poly_ArrayOfNodes&& theOther) Standard_Noexcept
{
return Move (theOther);
}

View File

@@ -17,6 +17,7 @@
#include <NCollection_AliasedArray.hxx>
#include <gp_Pnt2d.hxx>
#include <gp_Vec2f.hxx>
#include <Standard_Macro.hxx>
//! Defines an array of 2D nodes of single/double precision configurable at construction time.
class Poly_ArrayOfUVNodes : public NCollection_AliasedArray<>
@@ -85,14 +86,14 @@ public:
Poly_ArrayOfUVNodes& operator= (const Poly_ArrayOfUVNodes& theOther) { return Assign (theOther); }
//! Move constructor
Poly_ArrayOfUVNodes (Poly_ArrayOfUVNodes&& theOther) noexcept
Poly_ArrayOfUVNodes (Poly_ArrayOfUVNodes&& theOther) Standard_Noexcept
: NCollection_AliasedArray (std::move (theOther))
{
//
}
//! Move assignment operator; @sa Move()
Poly_ArrayOfUVNodes& operator= (Poly_ArrayOfUVNodes&& theOther) noexcept
Poly_ArrayOfUVNodes& operator= (Poly_ArrayOfUVNodes&& theOther) Standard_Noexcept
{
return Move (theOther);
}

View File

@@ -18,6 +18,7 @@
#include <Standard_Std.hxx>
#include <Standard_Stream.hxx>
#include <Standard_Transient.hxx>
#include <Standard_Macro.hxx>
class Standard_Transient;
@@ -71,7 +72,7 @@ namespace opencascade {
}
//! Move constructor
handle (handle&& theHandle) noexcept : entity(theHandle.entity)
handle (handle&& theHandle) Standard_Noexcept : entity(theHandle.entity)
{
theHandle.entity = 0;
}
@@ -112,7 +113,7 @@ namespace opencascade {
}
//! Move operator
handle& operator= (handle&& theHandle) noexcept
handle& operator= (handle&& theHandle) Standard_Noexcept
{
std::swap (this->entity, theHandle.entity);
return *this;

View File

@@ -315,5 +315,21 @@
#define Standard_ATOMIC(theType) theType
#endif
//! @def Standard_Noexcept
//! Definition of Standard_Noexcept:
//! if noexcept is accessible, Standard_Noexcept is "noexcept" and "throw()" otherwise.
#ifdef _MSC_VER
#if _MSC_VER >= 1900
#define Standard_Noexcept noexcept
#else
#define Standard_Noexcept throw()
#endif
#else
#if __cplusplus >= 201103L
#define Standard_Noexcept noexcept
#else
#define Standard_Noexcept throw()
#endif
#endif
#endif

View File

@@ -26,6 +26,7 @@
#include <Standard_Real.hxx>
#include <Standard_OStream.hxx>
#include <Standard_IStream.hxx>
#include <Standard_Macro.hxx>
class TCollection_ExtendedString;
//! Class defines a variable-length sequence of 8-bit characters.
@@ -74,7 +75,7 @@ public:
Standard_EXPORT TCollection_AsciiString(const TCollection_AsciiString& astring);
//! Move constructor
TCollection_AsciiString (TCollection_AsciiString&& theOther) noexcept
TCollection_AsciiString (TCollection_AsciiString&& theOther) Standard_Noexcept
: mystring (theOther.mystring),
mylength (theOther.mylength)
{
@@ -276,7 +277,7 @@ void operator = (const TCollection_AsciiString& fromwhere)
Standard_EXPORT void Swap (TCollection_AsciiString& theOther);
//! Move assignment operator
TCollection_AsciiString& operator= (TCollection_AsciiString&& theOther) noexcept { Swap (theOther); return *this; }
TCollection_AsciiString& operator= (TCollection_AsciiString&& theOther) Standard_Noexcept { Swap (theOther); return *this; }
//! Frees memory allocated by AsciiString.
Standard_EXPORT ~TCollection_AsciiString();

View File

@@ -31,6 +31,7 @@
#include <Standard_Real.hxx>
#include <Standard_OStream.hxx>
#include <Standard_PCharacter.hxx>
#include <Standard_Macro.hxx>
class TCollection_AsciiString;
@@ -98,7 +99,7 @@ public:
Standard_EXPORT TCollection_ExtendedString(const TCollection_ExtendedString& astring);
//! Move constructor
TCollection_ExtendedString (TCollection_ExtendedString&& theOther) noexcept
TCollection_ExtendedString (TCollection_ExtendedString&& theOther) Standard_Noexcept
: mystring (theOther.mystring),
mylength (theOther.mylength)
{
@@ -153,7 +154,7 @@ void operator = (const TCollection_ExtendedString& fromwhere)
Standard_EXPORT void Swap (TCollection_ExtendedString& theOther);
//! Move assignment operator
TCollection_ExtendedString& operator= (TCollection_ExtendedString&& theOther) noexcept { Swap (theOther); return *this; }
TCollection_ExtendedString& operator= (TCollection_ExtendedString&& theOther) Standard_Noexcept { Swap (theOther); return *this; }
//! Frees memory allocated by ExtendedString.
Standard_EXPORT ~TCollection_ExtendedString();

View File

@@ -21,6 +21,7 @@
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Macro.hxx>
class TopLoc_SListNodeOfItemLocation;
class TopLoc_ItemLocation;
@@ -69,13 +70,13 @@ public:
}
//! Move constructor
TopLoc_SListOfItemLocation (TopLoc_SListOfItemLocation&& theOther) noexcept
TopLoc_SListOfItemLocation (TopLoc_SListOfItemLocation&& theOther) Standard_Noexcept
: myNode(std::move (theOther.myNode))
{
}
//! Move operator
TopLoc_SListOfItemLocation& operator= (TopLoc_SListOfItemLocation&& theOther) noexcept
TopLoc_SListOfItemLocation& operator= (TopLoc_SListOfItemLocation&& theOther) Standard_Noexcept
{
myNode = std::move (theOther.myNode);
return *this;

View File

@@ -0,0 +1,13 @@
puts "========"
puts "0026920: BRepBuidlerAPI_MakeFillet crash 2"
puts "========"
restore C:/WORK/opencascade/bugs/CR26920/bug26920.brep b1
explode b1 e
fillet result b1 0.25 b1_15
checkprops result -s 1653.78
checkshape result
checknbshapes result -vertex 20 -edge 31 -wire 13 -face 13 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 80
checkview -display result -2d -path ${imagedir}/${test_image}.png