1 // File: DsgPrs_Chamf2dPresentation.cxx
2 // Created: Tue Mar 19 18:45:13 1996
3 // Author: Flore Lantheaume
7 #include <DsgPrs_Chamf2dPresentation.ixx>
9 #include <Graphic3d_Group.hxx>
10 #include <Graphic3d_Array1OfVertex.hxx>
11 #include <Prs3d_Arrow.hxx>
12 #include <Prs3d_ArrowAspect.hxx>
13 #include <Prs3d_LineAspect.hxx>
14 #include <Prs3d_LengthAspect.hxx>
15 #include <Prs3d_Text.hxx>
22 void DsgPrs_Chamf2dPresentation::Add(
23 const Handle(Prs3d_Presentation)& aPresentation,
24 const Handle(Prs3d_Drawer)& aDrawer,
25 const gp_Pnt& aPntAttach,
26 const gp_Pnt& aPntEnd,
27 const TCollection_ExtendedString& aText)
29 Handle(Prs3d_LengthAspect) LA = aDrawer->LengthAspect();
31 Prs3d_Root::CurrentGroup(aPresentation)
32 ->SetPrimitivesAspect(LA->LineAspect()->Aspect());
34 Graphic3d_Array1OfVertex V(1,2);
35 V(1).SetCoord(aPntAttach.X(),aPntAttach.Y(),aPntAttach.Z());
37 V(2).SetCoord(aPntEnd.X(),aPntEnd.Y(),aPntEnd.Z());
39 Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
41 gp_Dir ArrowDir(aPntAttach.XYZ()-aPntEnd.XYZ());
42 Prs3d_Arrow::Draw(aPresentation,
45 LA->Arrow1Aspect()->Angle(),
46 LA->Arrow1Aspect()->Length());
48 Prs3d_Text::Draw(aPresentation,LA->TextAspect(),aText,aPntEnd);
53 //==========================================================================
54 // function : DsgPrs_Chamf2dPresentation::Add
55 // purpose : it is possible to choose the symbol of extremities of the face (arrow, point ...)
56 //==========================================================================
58 void DsgPrs_Chamf2dPresentation::Add(
59 const Handle(Prs3d_Presentation)& aPresentation,
60 const Handle(Prs3d_Drawer)& aDrawer,
61 const gp_Pnt& aPntAttach,
62 const gp_Pnt& aPntEnd,
63 const TCollection_ExtendedString& aText,
64 const DsgPrs_ArrowSide ArrowPrs)
66 Handle(Prs3d_LengthAspect) LA = aDrawer->LengthAspect();
68 Prs3d_Root::CurrentGroup(aPresentation)
69 ->SetPrimitivesAspect(LA->LineAspect()->Aspect());
71 Graphic3d_Array1OfVertex V(1,2);
72 V(1).SetCoord(aPntAttach.X(),aPntAttach.Y(),aPntAttach.Z());
74 V(2).SetCoord(aPntEnd.X(),aPntEnd.Y(),aPntEnd.Z());
76 Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
78 Prs3d_Text::Draw(aPresentation,LA->TextAspect(),aText,aPntEnd);
80 gp_Dir ArrowDir(aPntAttach.XYZ()-aPntEnd.XYZ());
82 gp_Dir ArrowDir1 = ArrowDir;
85 DsgPrs::ComputeSymbol(aPresentation,LA,aPntEnd,aPntAttach,ArrowDir1,ArrowDir,ArrowPrs);