// Created by: DAUTRY Philippe // Copyright (c) 1997-1999 Matra Datavision // Copyright (c) 1999-2012 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. // // 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. // // 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. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef WNT #include #endif //======================================================================= //function : DFBrowse //purpose : // arg 1 : DF name // [arg 2] : Browser name //======================================================================= static Standard_Integer DFBrowse (Draw_Interpretor& di, Standard_Integer n, const char** a) { if (n<2) { cout << "Use: " << a[0] << " document [brower_name]" << endl; return 1; } Handle(TDF_Data) DF; if (!DDF::GetDF (a[1], DF)) { cout << "Error: document " << a[1] << " is not found" << endl; return 1; } Handle(DDF_Browser) NewDDFBrowser = new DDF_Browser(DF); TCollection_AsciiString name("browser_"); name += ((n == 3)? a[2] : a[1]); Draw::Set (name.ToCString(), NewDDFBrowser); // Load Tcl Script TCollection_AsciiString aTclScript (getenv ("CSF_DrawPluginDefaults")); aTclScript.AssignCat ( "/dftree.tcl" ); OSD_File aTclScriptFile (aTclScript); if (aTclScriptFile.Exists()) { #ifdef DEB cout << "Load " << aTclScript << endl; #endif di.EvalFile( aTclScript.ToCString() ); } else { cout << "Error: Could not load script " << aTclScript << endl; cout << "Check environment variable CSF_DrawPluginDefaults" << endl; } // Call command dftree defined in dftree.tcl TCollection_AsciiString aCommand = "dftree "; aCommand.AssignCat(name); di.Eval(aCommand.ToCString()); return 0; } //======================================================================= //function : DFOpenLabel //purpose : // arg 1 : Browser name // [arg 2] : Label name //======================================================================= static Standard_Integer DFOpenLabel (Draw_Interpretor& di, Standard_Integer n, const char** a) { if (n < 2) return 1; Handle(DDF_Browser) browser = Handle(DDF_Browser)::DownCast (Draw::Get(a[1], Standard_True)); TDF_Label lab; if (n == 3) TDF_Tool::Label(browser->Data(),a[2],lab); TCollection_AsciiString list(lab.IsNull()? browser->OpenRoot() : browser->OpenLabel(lab)); di<Data(),a[2],lab); if (lab.IsNull()) return 1; TCollection_AsciiString list(browser->OpenAttributeList(lab)); di << list.ToCString(); return 0; } //======================================================================= //function : DFOpenAttribute //purpose : // arg 1 : Browser name // arg 2 : Attribute index //======================================================================= static Standard_Integer DFOpenAttribute (Draw_Interpretor& di, Standard_Integer n, const char** a) { if (n < 3) return 1; Handle(DDF_Browser) browser = Handle(DDF_Browser)::DownCast (Draw::Get(a[1], Standard_True)); const Standard_Integer index = atoi(a[2]); TCollection_AsciiString list = browser->OpenAttribute(index); di<