// File: TestTopOpeDraw_Displayer.cxx // Created: Mon Sep 9 15:31:31 1996 // Author: Jean Yves LEBEY // #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef WNT Standard_IMPORT Draw_Viewer dout; #endif //======================================================================= //function : TestTopOpeDraw_Displayer //purpose : //======================================================================= TestTopOpeDraw_Displayer::TestTopOpeDraw_Displayer() { InitDisplayer(); } //======================================================================= //function : TestTopOpeDraw_Displayer //purpose : //======================================================================= TestTopOpeDraw_Displayer::TestTopOpeDraw_Displayer(const TCollection_AsciiString& namedbrep,const TopoDS_Shape& S) { InitDisplayer(); DisplayShape(namedbrep,S); } //======================================================================= //function : TestTopOpeDraw_Displayer //purpose : //======================================================================= TestTopOpeDraw_Displayer::TestTopOpeDraw_Displayer (const TCollection_AsciiString& namedbrep,const TCollection_AsciiString& namedisp,const TopoDS_Shape& S) { InitDisplayer(); DisplayShape(namedbrep,namedisp,S); } //======================================================================= //function : DisplayShape //purpose : //======================================================================= void TestTopOpeDraw_Displayer::DisplayShape(const TCollection_AsciiString& namedbrep, const TopoDS_Shape& S) { if (S.IsNull()) return; SetShape(namedbrep,S); DisplayShapePrivate(); } //======================================================================= //function : DisplayShape //purpose : //======================================================================= void TestTopOpeDraw_Displayer::DisplayShape (const TCollection_AsciiString& namedbrep,const TCollection_AsciiString& namedisp,const TopoDS_Shape& S) { if (S.IsNull()) return; SetShape(namedbrep,S); myNameDisplay = namedisp; DisplayShapePrivate(); } //======================================================================= //function : DisplayShapePrivate //purpose : //======================================================================= void TestTopOpeDraw_Displayer::DisplayShapePrivate() { if (myShape.IsNull()) return; TopAbs_ShapeEnum t = myShape.ShapeType(); myNameDisplay.Prepend(" "); if ( ! myNameColorIs ) myNameColor = TestTopOpeDraw_TTOT::ShapeColor(myShape); if (myDisplayNameWithOrientation) TestTopOpeDraw_TTOT::CatOrientation(myShape,myNameDisplay); if (myDisplayNameWithGeometry) TestTopOpeDraw_TTOT::CatGeometry(myShape,myNameDisplay); Draw_Color ConnCol = Draw_jaune; if (t == TopAbs_VERTEX) ConnCol = myNameColor; Draw_Color EdgeCol = Draw_rouge; if (myColIs) { ConnCol = EdgeCol = myCol; } Handle(TestTopOpeDraw_DrawableSHA) D; Standard_Integer nbisos = mySnbisos; Standard_Boolean nbisosdef = mySnbisosdef; Standard_Integer discret = mySdiscret; Standard_Boolean discretdef = mySdiscretdef; Standard_CString csn = myNameDBRep.ToCString(); Handle(DBRep_DrawableShape) DBS = Handle(DBRep_DrawableShape)::DownCast(Draw::Get(csn)); if (!DBS.IsNull() && !nbisosdef) { nbisos = DBS->NbIsos(); } if (!DBS.IsNull() && !discretdef) { discret = DBS->Discret(); } D = new TestTopOpeDraw_DrawableSHA (myShape, Draw_vert,ConnCol,EdgeCol,Draw_bleu,//free,shared,other,isos mySsize,nbisos,discret, myNameDisplay.ToCString(),myNameColor, myDisplayGeometry); if (myTol != 0.0 ) D->SetTol(myTol); if (myPar != -1.0 ) D->SetPar(myPar); char* pname = (char *)myNameDBRep.ToCString(); Draw::Set(pname,Handle(DBRep_DrawableShape)::DownCast(D)); } //======================================================================= //function : InitDisplayer //purpose : //======================================================================= void TestTopOpeDraw_Displayer::InitDisplayer() { myDisplayGeometry = Standard_False; myDisplayNameWithGeometry = Standard_False; myDisplayNameWithOrientation = Standard_False; myShape.Nullify(); NameDBRep().Copy(""); NameDisplay().Copy(""); mySsize = 100.; mySnbisos = DBRep::NbIsos(); mySnbisosdef = Standard_False; mySdiscret = DBRep::Discretisation(); mySdiscretdef = Standard_False; myTol = 0.0; myTolIs = Standard_False; myPar = -1.0; myParIs = Standard_False; myCol = Draw_blanc; myColIs = Standard_False; myNameColor = Draw_blanc; myNameColorIs = Standard_False; } //======================================================================= //function : SetShape //purpose : //======================================================================= void TestTopOpeDraw_Displayer::SetShape(const TCollection_AsciiString& namedbrep,const TopoDS_Shape& S) { myShape = S; myNameDBRep = namedbrep; myNameDisplay = namedbrep; if (myDisplayNameWithOrientation) TestTopOpeDraw_TTOT::CatOrientation(myShape,myNameDisplay); if (myDisplayNameWithGeometry) TestTopOpeDraw_TTOT::CatGeometry(myShape,myNameDisplay); } //======================================================================= //function : TestTopOpeDraw_P3DDisplayer //purpose : //======================================================================= TestTopOpeDraw_P3DDisplayer::TestTopOpeDraw_P3DDisplayer() {} //======================================================================= //function : TestTopOpeDraw_P3DDisplayer //purpose : //======================================================================= TestTopOpeDraw_P3DDisplayer::TestTopOpeDraw_P3DDisplayer(const TCollection_AsciiString& namedbrep, const gp_Pnt& P) { DisplayP3D(namedbrep,P); } //======================================================================= //function : TestTopOpeDraw_P3DDisplayer //purpose : //======================================================================= TestTopOpeDraw_P3DDisplayer::TestTopOpeDraw_P3DDisplayer (const TCollection_AsciiString& namedbrep,const Standard_Real x, const Standard_Real y, const Standard_Real z) { DisplayP3D(namedbrep,x,y,z); } //======================================================================= //function : DisplayP3D //purpose : //======================================================================= void TestTopOpeDraw_P3DDisplayer::DisplayP3D (const TCollection_AsciiString& namedbrep,const Standard_Real x, const Standard_Real y, const Standard_Real z) { gp_Pnt P(x,y,z); DisplayP3D(namedbrep,P); } //======================================================================= //function : DisplayP3D //purpose : //======================================================================= void TestTopOpeDraw_P3DDisplayer::DisplayP3D (const TCollection_AsciiString& namedbrep,const gp_Pnt& P) { TCollection_AsciiString namedisp(" "); namedisp += namedbrep; Handle(TestTopOpeDraw_DrawableP3D) D = new TestTopOpeDraw_DrawableP3D(P,Draw_Square, Draw_Color(Draw_rouge), namedisp.ToCString(), Draw_Color(Draw_cyan),1); char* pname = (char *)namedbrep.ToCString(); Draw::Set(pname,D); dout<