0031682: Visualization - Prs3d_ShadingAspect::SetTransparency() has no effect with...
[occt.git] / src / TObjDRAW / TObjDRAW.cxx
index 7dcf986..209d824 100644 (file)
 // Alternatively, this file may be used under the terms of Open CASCADE
 // commercial license or contractual agreement.
 
-#include <TObjDRAW.ixx>
-#include <stdio.h>
-
-#include <TObj_Model.hxx>
-#include <TObj_TModel.hxx>
-#include <TObj_Object.hxx>
-#include <TObj_ObjectIterator.hxx>
-#include <TObj_TNameContainer.hxx>
-
-#include <Message_MsgFile.hxx>
-#include <Standard_DefineHandle.hxx>
-#include <TColStd_HArray1OfReal.hxx>
-#include <TCollection_ExtendedString.hxx>
-
-#include <Draw.hxx>
 
 #include <DDocStd.hxx>
 #include <DDocStd_DrawDocument.hxx>
-
-#include <TDF_Tool.hxx>
-#include <TDF_Data.hxx>
+#include <Draw.hxx>
+#include <Draw_PluginMacro.hxx>
+#include <Message_MsgFile.hxx>
+#include <Standard_Type.hxx>
+#include <TCollection_ExtendedString.hxx>
+#include <TColStd_HArray1OfReal.hxx>
 #include <TDataStd_Name.hxx>
+#include <TDF_Data.hxx>
+#include <TDF_Tool.hxx>
 #include <TDocStd_Document.hxx>
+#include <TObj_Application.hxx>
+#include <TObj_Model.hxx>
+#include <TObj_Object.hxx>
+#include <TObj_ObjectIterator.hxx>
+#include <TObj_TModel.hxx>
+#include <TObj_TNameContainer.hxx>
+#include <TObjDRAW.hxx>
 
-#include <Draw_PluginMacro.hxx>
+#include <BinTObjDrivers.hxx>
+#include <XmlTObjDrivers.hxx>
 
-// avoid warnings on 'extern "C"' functions returning C++ classes
-#ifdef WNT
-#pragma warning(4:4190)
-#endif
+#include <stdio.h>
 
 //=======================================================================
 // Section: General commands
 //=======================================================================
 
-class Handle(TObjDRAW_Model);
 
 //! simple model with redefined pure virtual method
 class TObjDRAW_Model : public TObj_Model
@@ -57,22 +51,19 @@ class TObjDRAW_Model : public TObj_Model
   Standard_EXPORT TObjDRAW_Model()
     : TObj_Model() {}
   
-  virtual Standard_EXPORT Handle(TObj_Model) NewEmpty()
+  virtual Standard_EXPORT Handle(TObj_Model) NewEmpty() Standard_OVERRIDE
     {
       return new TObjDRAW_Model();
     }
   
  public:
   //! CASCADE RTTI
-  DEFINE_STANDARD_RTTI(TObjDRAW_Model)
+  DEFINE_STANDARD_RTTI_INLINE(TObjDRAW_Model,TObj_Model)
 
 };
 DEFINE_STANDARD_HANDLE (TObjDRAW_Model,TObj_Model)
-     
-IMPLEMENT_STANDARD_HANDLE(TObjDRAW_Model,TObj_Model)
-IMPLEMENT_STANDARD_RTTIEXT(TObjDRAW_Model,TObj_Model)
 
-class Handle(TObjDRAW_Object);
+
 
 //! simple object to check API and features of TObj_Object
 class TObjDRAW_Object : public TObj_Object
@@ -141,15 +132,14 @@ class TObjDRAW_Object : public TObj_Object
 
  public:
   // Declaration of CASCADE RTTI
- DEFINE_STANDARD_RTTI (TObjDRAW_Object)
+ DEFINE_STANDARD_RTTI_INLINE(TObjDRAW_Object,TObj_Object)
   
 };
 
 // Definition of HANDLE object using Standard_DefineHandle.hxx
 DEFINE_STANDARD_HANDLE (TObjDRAW_Object,TObj_Object)
 
-IMPLEMENT_STANDARD_HANDLE (TObjDRAW_Object,TObj_Object)
-IMPLEMENT_STANDARD_RTTIEXT(TObjDRAW_Object,TObj_Object)
+
 IMPLEMENT_TOBJOCAF_PERSISTENCE(TObjDRAW_Object)
 
 //=======================================================================
@@ -165,14 +155,15 @@ static Standard_Integer newModel (Draw_Interpretor& di, Standard_Integer argc, c
 
   if (!DDocStd::GetDocument(argv[1],D,Standard_False)) {
     Handle(TObjDRAW_Model) aModel = new TObjDRAW_Model();
-    aModel->Load(0);
+    // initializes the new model: filename is empty
+    aModel->Load("");
     D = aModel->GetDocument();
     DD = new DDocStd_DrawDocument(D);
     TDataStd_Name::Set(D->GetData()->Root(),argv[1]);
     Draw::Set(argv[1],DD);
-    di << "document " << argv[1] << " created" << "\n";
+    di << "document " << argv[1] << " created\n";
   }
-  else di << argv[1] << " is already a document" << "\n";
+  else di << argv[1] << " is already a document\n";
 
   return 0;
 }
@@ -207,7 +198,7 @@ static Standard_Integer saveModel (Draw_Interpretor& di, Standard_Integer argc,
     isSaved = aModel->Save();
   
   if (!isSaved) {
-    di << "Error: Document not saved" << "\n";
+    di << "Error: Document not saved\n";
     return 1;
   }
   return 0;
@@ -242,7 +233,7 @@ static Standard_Integer loadModel (Draw_Interpretor& di, Standard_Integer argc,
   
   
   if (!isLoaded) {
-    di << "Error: Document not loaded" << "\n";
+    di << "Error: Document not loaded\n";
     return 1;
   }
   return 0;
@@ -277,7 +268,7 @@ static Standard_Integer addObj (Draw_Interpretor& di, Standard_Integer argc, con
     new TObjDRAW_Object( aModel->GetMainPartition()->NewLabel() );
   if ( tObj.IsNull() )
   {
-    di << "Error: Object not created" << "\n";
+    di << "Error: Object not created\n";
     return 1;
   }
   tObj->SetName( argv[2] );
@@ -307,7 +298,7 @@ static Standard_Integer setVal (Draw_Interpretor& di, Standard_Integer argc, con
   Handle(TObjDRAW_Object) tObj = getObjByName( argv[1], argv[2] );
   if ( tObj.IsNull() )
   {
-    di << "Error: Object " << argv[2] << " not found" << "\n";
+    di << "Error: Object " << argv[2] << " not found\n";
     return 1;
   }
   if ( !strcmp(argv[3],"-r") )
@@ -335,7 +326,7 @@ static Standard_Integer getVal (Draw_Interpretor& di, Standard_Integer argc, con
   Handle(TObjDRAW_Object) tObj = getObjByName( argv[1], argv[2] );
   if ( tObj.IsNull() )
   {
-    di << "Error: Object " << argv[2] << " not found" << "\n";
+    di << "Error: Object " << argv[2] << " not found\n";
     return 1;
   }
   if ( !strcmp(argv[3],"-i") )
@@ -367,7 +358,7 @@ static Standard_Integer setRef (Draw_Interpretor& di, Standard_Integer argc, con
   Handle(TObjDRAW_Object) tObj2 = getObjByName( argv[1], argv[3] );
   if ( tObj1.IsNull() || tObj2.IsNull() )
   {
-    di << "Error: Object " << argv[2] << " or object " << argv[3] << " not found" << "\n";
+    di << "Error: Object " << argv[2] << " or object " << argv[3] << " not found\n";
     return 1;
   }
   tObj1->SetRef( tObj2 );
@@ -386,7 +377,7 @@ static Standard_Integer getRef (Draw_Interpretor& di, Standard_Integer argc, con
   Handle(TObjDRAW_Object) tObj = getObjByName( argv[1], argv[2] );
   if ( tObj.IsNull() )
   {
-    di << "Error: Object " << argv[2] << " not found" << "\n";
+    di << "Error: Object " << argv[2] << " not found\n";
     return 1;
   }
   Handle(TObj_Object) aRefObj = tObj->GetRef();
@@ -413,13 +404,13 @@ static Standard_Integer addChild (Draw_Interpretor& di, Standard_Integer argc, c
   Handle(TObjDRAW_Object) tObj = getObjByName( argv[1], argv[2] );
   if ( tObj.IsNull() )
   {
-    di << "Error: Object " << argv[2] << " not found" << "\n";
+    di << "Error: Object " << argv[2] << " not found\n";
     return 1;
   }
   Handle(TObj_Object) chldObj = tObj->AddChild();
   if ( chldObj.IsNull() )
   {
-    di << "Error: No child object created" << "\n";
+    di << "Error: No child object created\n";
     return 1;
   }
   chldObj->SetName( new TCollection_HExtendedString( argv[3] ) );
@@ -438,7 +429,7 @@ static Standard_Integer getChild (Draw_Interpretor& di, Standard_Integer argc, c
   Handle(TObjDRAW_Object) tObj = getObjByName( argv[1], argv[2] );
   if ( tObj.IsNull() )
   {
-    di << "Error: Object " << argv[2] << " not found" << "\n";
+    di << "Error: Object " << argv[2] << " not found\n";
     return 1;
   }
   Handle(TObj_ObjectIterator) anItr = tObj->GetChildren();
@@ -463,13 +454,13 @@ static Standard_Integer getChild (Draw_Interpretor& di, Standard_Integer argc, c
 
 void TObjDRAW::Init(Draw_Interpretor& di)
 {
-
   static Standard_Boolean initactor = Standard_False;
-  if (initactor) return;  initactor = Standard_True;
+  if (initactor)
+  {
+    return;
+  }
+  initactor = Standard_True;
 
-  // load TObjOcaf base data model messages
-  Message_MsgFile::Load( ::getenv( "CSF_TObjResources" ), "TObj.msg" );
-  
   //=====================================
   // General commands
   //=====================================
@@ -518,10 +509,20 @@ void TObjDRAW::Init(Draw_Interpretor& di)
 //==============================================================================
 void TObjDRAW::Factory(Draw_Interpretor& theDI)
 {
+  // Initialize TObj OCAF formats
+  Handle(TDocStd_Application) anApp = DDocStd::GetApplication();
+  BinTObjDrivers::DefineFormat(anApp);
+  XmlTObjDrivers::DefineFormat(anApp);
+
+  // define formats for TObj specific application
+  anApp = TObj_Application::GetInstance();
+  BinTObjDrivers::DefineFormat(anApp);
+  XmlTObjDrivers::DefineFormat(anApp);
+
   TObjDRAW::Init(theDI);
 
 #ifdef OCCT_DEBUG
-      theDI << "Draw Plugin : All TKTObjDRAW commands are loaded" << "\n";
+      theDI << "Draw Plugin : All TKTObjDRAW commands are loaded\n";
 #endif
 }