// File: DDocStd.cxx // Created: Wed Mar 1 14:05:40 2000 // Author: Denis PASCAL // #include #include #include #include // #include #include #include #include #include #include #include #include #include //======================================================================= //function : Find //purpose : //======================================================================= Standard_Boolean DDocStd::Find (Handle(TDocStd_Application)& A, const Standard_Boolean Complain) { if (!CDF_Session::Exists()) Standard_DomainError::Raise("DDocStd::Find no applicative session"); Handle(CDF_Session) S = CDF_Session::CurrentSession(); Handle(TDocStd_Application) APP; if (!S->HasCurrentApplication()) Standard_DomainError::Raise("DDocStd::Find no applicative session"); APP = Handle(TDocStd_Application)::DownCast(S->CurrentApplication()); A = APP; return Standard_True; } //======================================================================= //function : GetDocument //purpose : //======================================================================= Standard_Boolean DDocStd::GetDocument (Standard_CString& Name, Handle(TDocStd_Document)& DOC, const Standard_Boolean Complain) { Handle(Draw_Drawable3D) D = Draw::Get(Name,Standard_False); Handle(DDocStd_DrawDocument) DD = Handle(DDocStd_DrawDocument)::DownCast (D); if (DD.IsNull()) { if (Complain) cout << Name << " is not a Document" << endl; return Standard_False; } Handle(TDocStd_Document) STDDOC = Handle(TDocStd_Document)::DownCast(DD->GetDocument()); if (!STDDOC.IsNull()) { DOC = STDDOC; return Standard_True; } if (Complain) cout << Name << " is not a CAF Document" << endl; return Standard_False; } //======================================================================= //function : Label //purpose : try to retrieve a label //======================================================================= Standard_Boolean DDocStd::Find (const Handle(TDocStd_Document)& D, const Standard_CString Entry, TDF_Label& Label, const Standard_Boolean Complain) { Label.Nullify(); TDF_Tool::Label(D->GetData(),Entry,Label,Standard_False); if (Label.IsNull() && Complain) cout<<"No label for entry "<