9a49d4
#pragma once
9a49d4
9a49d4
#ifndef GUIDELINEELLIPSE_INCLUDED
9a49d4
#define GUIDELINEELLIPSE_INCLUDED
9a49d4
9a49d4
// TnzTools includes
9a49d4
#include <tools assistant.h=""></tools>
9a49d4
9a49d4
9a49d4
#undef DVAPI
9a49d4
#undef DVVAR
9a49d4
#ifdef TNZTOOLS_EXPORTS
9a49d4
#define DVAPI DV_EXPORT_API
9a49d4
#define DVVAR DV_EXPORT_VAR
9a49d4
#else
9a49d4
#define DVAPI DV_IMPORT_API
9a49d4
#define DVVAR DV_IMPORT_VAR
9a49d4
#endif
9a49d4
9a49d4
9a49d4
//==============================================================
9a49d4
9a49d4
//*****************************************************************************************
9a49d4
//    TGuidelineEllipse definition
9a49d4
//*****************************************************************************************
9a49d4
9a49d4
class DVAPI TGuidelineEllipse : public TGuideline {
9a49d4
public:
9a49d4
  const TAffine matrix;
9a49d4
  const TAffine matrixInv;
f278a5
  const double Rx;
f278a5
  const double Ry;
9a49d4
9a49d4
  TGuidelineEllipse(
9a49d4
    bool enabled,
9a49d4
    double magnetism,
f278a5
    const TAffine &matrix );
9a49d4
9a49d4
  TGuidelineEllipse(
9a49d4
    bool enabled,
9a49d4
    double magnetism,
f278a5
    const TAffine &matrix,
f278a5
    const TAffine &matrixInv );
f278a5
f278a5
  TGuidelineEllipse(
f278a5
    bool enabled,
f278a5
    double magnetism,
f278a5
    const TAffine &matrix,
f278a5
    const TAffine &matrixInv,
f278a5
    double Rx,
f278a5
    double Ry );
9a49d4
9a49d4
  //! returns false when ellipse is invisible
9a49d4
  static bool truncateEllipse(
9a49d4
    TAngleRangeSet &ranges,
9a49d4
    const TAffine &ellipseMatrixInv,
9a49d4
    const TRectD &bounds );
9a49d4
9a49d4
  static int calcSegmentsCount(const TAffine &ellipseMatrix, double pixelSize);
9a49d4
9a49d4
  TTrackPoint transformPoint(const TTrackPoint &point) const override;
f278a5
  TPointD nearestPoint(const TPointD &point) const override;
9a49d4
  void draw(bool active, bool enabled) const override;
9a49d4
};
9a49d4
9a49d4
#endif