0024624: Lost word in license statement in source files
[occt.git] / src / AIS / AIS_InteractiveObject.cxx
old mode 100755 (executable)
new mode 100644 (file)
index 3e1724e..686bfa8
@@ -1,23 +1,18 @@
 // Created on: 1996-12-18
 // Created by: Robert COUBLANC
 // Copyright (c) 1996-1999 Matra Datavision
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
+// Copyright (c) 1999-2014 OPEN CASCADE SAS
 //
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
+// This file is part of Open CASCADE Technology software library.
 //
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
+// 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.
 //
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
 
 // Modified :   22/03/04 ; SAN : OCC4895 High-level interface for controlling polygon offsets 
 
@@ -28,9 +23,6 @@
 //                     instead a restricted object NameOfColor. 
 //                     Add SetCurrentFacingModel() method
 
-#define G003           //EUG/GG 260100 DEgenerate mode support
-//                     Add SetDegenerateModel() methods
-
 #define IMP020200      //GG Add SetTransformation() method
 
 #define IMP140200      //GG Add HasPresentation() and Presentation() methods
@@ -158,6 +150,8 @@ Handle(AIS_InteractiveContext) AIS_InteractiveObject::GetContext() const
 void AIS_InteractiveObject::SetContext(const Handle(AIS_InteractiveContext)& aCtx)
 {
   myCTXPtr = aCtx.operator->();
+  if( aCtx.IsNull())
+    return;
   if (myDrawer.IsNull()) {
     myDrawer = new AIS_Drawer;
 #ifdef DEB
@@ -556,43 +550,6 @@ void AIS_InteractiveObject::SetInfiniteState(const Standard_Boolean aFlag)
       P->SetInfiniteState(myInfiniteState);}
 }
 
-#ifdef G003
-//=======================================================================
-//function : SetDegenerateModel
-//purpose  : 
-//=======================================================================
-void AIS_InteractiveObject::SetDegenerateModel(
-               const Aspect_TypeOfDegenerateModel aModel,
-               const Quantity_Ratio aRatio ) {
-  if( !HasColor() && !IsTransparent() && !HasMaterial() ) {
-    myDrawer->SetShadingAspect(new Prs3d_ShadingAspect());
-  }
-
-  myDrawer->ShadingAspect()->Aspect()->SetDegenerateModel(aModel,aRatio);
-
-  if(!GetContext().IsNull()){
-    if( GetContext()->MainPrsMgr()->HasPresentation(this,1)){
-      Handle(Prs3d_Presentation) P = 
-       GetContext()->MainPrsMgr()->CastPresentation(this,1)->Presentation();
-      Handle(Graphic3d_AspectFillArea3d) a4bis = 
-                               myDrawer->ShadingAspect()->Aspect();
-      P->SetPrimitivesAspect(a4bis);
-    }
-  }
-}
-
-//=======================================================================
-//function : DegenerateModel
-//purpose  : 
-//=======================================================================
-
-Aspect_TypeOfDegenerateModel AIS_InteractiveObject::DegenerateModel( 
-                       Quantity_Ratio& aRatio) const
-{
-  return myDrawer->ShadingAspect()->Aspect()->DegenerateModel(aRatio);
-}
-#endif
-
 #ifdef IMP020200
 //=======================================================================
 //function : SetTransformation
@@ -749,9 +706,9 @@ void AIS_InteractiveObject::SetAspect(const Handle(Prs3d_BasicAspect)& anAspect,
 //function : SetPolygonOffsets 
 //purpose  : 
 //======================================================================= 
-void AIS_InteractiveObject::SetPolygonOffsets(const Standard_Integer aMode,
-                                              const Standard_Real    aFactor,
-                                              const Standard_Real    aUnits) 
+void AIS_InteractiveObject::SetPolygonOffsets(const Standard_Integer    aMode,
+                                              const Standard_ShortReal  aFactor,
+                                              const Standard_ShortReal  aUnits) 
 {
   if ( !HasPolygonOffsets() )
     myDrawer->SetShadingAspect(new Prs3d_ShadingAspect());
@@ -781,6 +738,7 @@ void AIS_InteractiveObject::SetPolygonOffsets(const Standard_Integer aMode,
             // TODO: Add methods for retrieving individual aspects from Graphic3d_Group
             aGrp->GroupPrimitivesAspect(aLineAsp, aTextAsp, aPntAsp, aFaceAsp);
             aFaceAsp->SetPolygonOffsets(aMode, aFactor, aUnits);
+            // TODO: Issue 23118 - This line kills texture data in the group...
             aGrp->SetGroupPrimitivesAspect(aFaceAsp);
           }
         }
@@ -805,45 +763,11 @@ Standard_Boolean AIS_InteractiveObject::HasPolygonOffsets() const
 //function : PolygonOffsets 
 //purpose  : 
 //=======================================================================
-void AIS_InteractiveObject::PolygonOffsets(Standard_Integer& aMode,
-                                           Standard_Real&    aFactor,
-                                           Standard_Real&    aUnits) const 
+void AIS_InteractiveObject::PolygonOffsets(Standard_Integer&    aMode,
+                                           Standard_ShortReal&  aFactor,
+                                           Standard_ShortReal&  aUnits) const 
 {
   if( HasPolygonOffsets() )
     myDrawer->ShadingAspect()->Aspect()->PolygonOffsets( aMode, aFactor, aUnits );
 }
-
-void AIS_InteractiveObject::Fill(const Handle(PrsMgr_PresentationManager)& aPresentationManager,
-                                 const Handle(PrsMgr_Presentation)& aPresentation,
-                                 const Standard_Integer aMode)
-{
-  PrsMgr_PresentableObject::Fill(aPresentationManager, aPresentation, aMode);
-
-  // Update polygon offsets for <aPresentation> using <myDrawer> data
-  if ( !myDrawer->ShadingAspect().IsNull() )
-  {
-    Standard_Integer aMode1 = Aspect_POM_Fill;
-    Standard_Real aFactor = 1., aUnits = 0.;
-    myDrawer->ShadingAspect()->Aspect()->PolygonOffsets( aMode1, aFactor, aUnits );
-
-    // Here we force this object to have default polygon offsets , if they are not 
-    // turned on for this object explicitly
-    if ( ( aMode1 & Aspect_POM_None ) == Aspect_POM_None )
-    {
-      aMode1 = Aspect_POM_Fill;
-      aFactor = 1.;
-      aUnits = 0.;
-      myDrawer->ShadingAspect()->Aspect()->SetPolygonOffsets( aMode1, aFactor, aUnits );
-    }
-  }
-
-  Handle(PrsMgr_Presentation3d) aPrs3d =
-    Handle(PrsMgr_Presentation3d)::DownCast( aPresentation );
-  if ( !aPrs3d.IsNull() ) {
-    Handle(Graphic3d_Structure) aStruct = 
-      Handle(Graphic3d_Structure)::DownCast( aPrs3d->Presentation() );
-    if( !aStruct.IsNull() )
-      aStruct->SetPrimitivesAspect( myDrawer->ShadingAspect()->Aspect() );
-  }
-}
 // OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets