1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-26 10:19:45 +03:00
occt/samples/mfc/standard/02_Modeling/src/ISession_Direction.cpp
2012-03-05 19:23:40 +04:00

49 lines
1.4 KiB
C++
Executable File

// ISession_Direction.cpp: implementation of the ISession_Direction class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ISession_Direction.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#endif
IMPLEMENT_STANDARD_HANDLE(ISession_Direction,AIS_InteractiveObject)
IMPLEMENT_STANDARD_RTTIEXT(ISession_Direction,AIS_InteractiveObject)
#include "DsgPrs_LengthPresentation.hxx"
#include "Prs3d_ArrowAspect.hxx"
#include "AIS_Drawer.hxx"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
ISession_Direction::ISession_Direction(gp_Pnt& aPnt,gp_Pnt& aPnt2)
:myStartPnt(aPnt),myEndPnt(aPnt2)
{}
ISession_Direction::ISession_Direction(gp_Pnt& aPnt,gp_Vec& aVec)
:myStartPnt(aPnt)
{
myEndPnt = myStartPnt.Translated(aVec);
}
void ISession_Direction::Compute(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,
const Handle(Prs3d_Presentation)& aPresentation,
const Standard_Integer aMode)
{
Handle(Prs3d_ArrowAspect) anArrowAspect = myDrawer->ArrowAspect();
anArrowAspect->SetLength(myStartPnt.Distance(myEndPnt));
myDrawer->SetArrowAspect(anArrowAspect);
DsgPrs_LengthPresentation::Add(aPresentation,myDrawer,
myStartPnt,myEndPnt,
DsgPrs_AS_LASTAR);
}