Blob Blame Raw


#include "assistantvanishingpoint.h"
#include "guidelineline.h"

// TnzCore includes
#include "tgl.h"


//*****************************************************************************************
//    TAssistantVanishingPoint implementation
//*****************************************************************************************

TAssistantVanishingPoint::TAssistantVanishingPoint(TMetaObject &object):
  TAssistant(object)
{
  m_points.push_back(TAssistantPoint(
    TAssistantPoint::CircleCross ));
}

void
TAssistantVanishingPoint::getGuidelines(
  const TPointD &position,
  const TAffine &toTool,
  TGuidelineList &outGuidelines ) const
{
  outGuidelines.push_back(TGuidelineP(
    new TGuidelineInfiniteLine(
      toTool*m_points.front().position,
      position )));
}

void
TAssistantVanishingPoint::draw(TToolViewer *viewer) const {
  double pixelSize = sqrt(tglGetPixelSize2());
  const TPointD &p = m_points.front().position;
  TPointD dx(20.0*pixelSize, 0.0);
  TPointD dy(0.0, 10.0*pixelSize);
  drawSegment(p-dx-dy, p+dx+dy, pixelSize);
  drawSegment(p-dx+dy, p+dx-dy, pixelSize);
}