X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=blobdiff_plain;f=src%2FCSLib%2FCSLib_NormalPolyDef.cxx;h=5104fbca9cdb04b114f126a0746644fb84f5a6da;hp=2aba8e4128d574006179e433e0c62aa573ca02be;hb=9f013fee98193ef8fc85f7082220b986c1abcb83;hpb=41194117bf1aa90cf9e8facd341bc1155836af21 diff --git a/src/CSLib/CSLib_NormalPolyDef.cxx b/src/CSLib/CSLib_NormalPolyDef.cxx old mode 100755 new mode 100644 index 2aba8e4128..5104fbca9c --- a/src/CSLib/CSLib_NormalPolyDef.cxx +++ b/src/CSLib/CSLib_NormalPolyDef.cxx @@ -1,10 +1,21 @@ -// File: SingularityAna_PolyStyle.cxx -// Created: Fri Aug 23 11:00:24 1996 -// Author: Benoit TANNIOU -// +// Created on: 1996-08-23 +// Created by: Benoit TANNIOU +// Copyright (c) 1996-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. -#include +#include #include //============================================================================= @@ -28,6 +39,11 @@ Standard_Boolean CSLib_NormalPolyDef::Value(const Standard_Real X, co=cos(X); si=sin(X); + if(Abs(co) <= RealSmall() || Abs(si) <= RealSmall()) + { + F = 0.; + return Standard_True; + } for(Standard_Integer i=0;i<=myK0;i++){ F=F+PLib::Bin(myK0,i)*pow(co,i)*pow(si,(myK0-i))*myTABli(i); } @@ -43,6 +59,11 @@ Standard_Boolean CSLib_NormalPolyDef::Derivative(const Standard_Real X, Standard_Real co,si; co=cos(X); si=sin(X); + if(Abs(co) <= RealSmall() || Abs(si) <= RealSmall()) + { + D = 0.; + return Standard_True; + } for(Standard_Integer i=0;i<=myK0;i++){ D=D+PLib::Bin(myK0,i)*pow(co,(i-1))*pow(si,(myK0-i-1))*(myK0*co*co-i); } @@ -60,6 +81,12 @@ Standard_Boolean CSLib_NormalPolyDef::Values(const Standard_Real X, Standard_Real co,si; co=cos(X); si=sin(X); + if(Abs(co) <= RealSmall() || Abs(si) <= RealSmall()) + { + F = 0.; + D = 0.; + return Standard_True; + } for(Standard_Integer i=0;i<=myK0;i++){ F=F+PLib::Bin(myK0,i)*pow(co,i)*pow(si,(myK0-i))*myTABli(i); D=D+PLib::Bin(myK0,i)*pow(co,(i-1))*