0015697: External Contribution on OCC DE Improvement
authorAPN <>
Fri, 20 Jan 2012 12:19:05 +0000 (12:19 +0000)
committerbugmaster <bugmaster@opencascade.com>
Mon, 5 Mar 2012 15:32:01 +0000 (19:32 +0400)
src/IGESCAFControl/IGESCAFControl_Reader.cxx
src/IGESFile/igesread.c
src/StepToTopoDS/StepToTopoDS_TranslateShell.cxx

index a48f4a8..e2576dc 100755 (executable)
@@ -58,6 +58,11 @@ IGESCAFControl_Reader::IGESCAFControl_Reader (const Handle(XSControl_WorkSession
 //function : Transfer
 //purpose  : basic working method
 //=======================================================================
 //function : Transfer
 //purpose  : basic working method
 //=======================================================================
+static void checkColorRange (Standard_Real& theCol)
+{
+  if ( theCol < 0. ) theCol = 0.;
+  if ( theCol > 100. ) theCol = 100.;
+}
 
 Standard_Boolean IGESCAFControl_Reader::Transfer (Handle(TDocStd_Document) &doc)
 {
 
 Standard_Boolean IGESCAFControl_Reader::Transfer (Handle(TDocStd_Document) &doc)
 {
@@ -126,6 +131,9 @@ Standard_Boolean IGESCAFControl_Reader::Transfer (Handle(TDocStd_Document) &doc)
           else {
             Standard_Real r, g, b;
             color->RGBIntensity ( r, g, b );
           else {
             Standard_Real r, g, b;
             color->RGBIntensity ( r, g, b );
+            checkColorRange ( r );
+            checkColorRange ( g );
+            checkColorRange ( b );
             col.SetValues ( 0.01*r, 0.01*g, 0.01*b, Quantity_TOC_RGB );
           }
         }
             col.SetValues ( 0.01*r, 0.01*g, 0.01*b, Quantity_TOC_RGB );
           }
         }
index 7a12f2c..8de456e 100755 (executable)
@@ -104,8 +104,8 @@ char* nomfic; int lesect[6]; int modefnes;
 
   /* Sending of message : No Terminal Section */
   if (lesect[5] == 0) {
 
   /* Sending of message : No Terminal Section */
   if (lesect[5] == 0) {
-    IGESFile_Check3 (0,"XSTEP_20");
-    return -1;
+    IGESFile_Check3 (1, "XSTEP_20");
+    //return -1;
   }
   
 
   }
   
 
index d4444f1..dbcd1d5 100755 (executable)
@@ -48,7 +48,10 @@ StepToTopoDS_TranslateShell::StepToTopoDS_TranslateShell
 void StepToTopoDS_TranslateShell::Init
 (const Handle(StepShape_ConnectedFaceSet)& CFS, StepToTopoDS_Tool& aTool, StepToTopoDS_NMTool& NMTool)
 {
 void StepToTopoDS_TranslateShell::Init
 (const Handle(StepShape_ConnectedFaceSet)& CFS, StepToTopoDS_Tool& aTool, StepToTopoDS_NMTool& NMTool)
 {
-
+  //bug15697
+  if(CFS.IsNull())
+    return;
+  
   if (!aTool.IsBound(CFS)) {
 
     BRep_Builder B;
   if (!aTool.IsBound(CFS)) {
 
     BRep_Builder B;
@@ -120,3 +123,4 @@ StepToTopoDS_TranslateShellError StepToTopoDS_TranslateShell::Error() const
 {
   return myError;
 }
 {
   return myError;
 }
+