DATAKIT SDK  V2026.4
Dtk_Leader::ArrowHead Class Reference

This class graphically represents a leader head. More...

Public Member Functions

 ArrowHead ()
 Default constructor. More...
 
 ArrowHead (ArrowHead &&in) DTK_NOEXCEPT
 
 ArrowHead (const ArrowHead &in)
 
 ArrowHead (const Dtk_Double64 inWidth, const Dtk_Double64 inHeight, const Dtk_pnt &inArrowLocation, const LeaderTerminatorTypeEnum inTerminatorType, const Dtk_InfoPtr &inInfos, const Dtk_dir &inRefDir, const Dtk_dir &inAxisDir)
 
void CreateGeometries (Dtk_tab< Dtk_CurvePtr > &outRes, Dtk_Int32 inByPolygon=DTK_FALSE) const
 
const Dtk_pnt & GetArrowLocation () const
 
void GetDirections (Dtk_dir &outRefDir, Dtk_dir &outAxisDir) const
 
Dtk_InfoPtr & GetInfo ()
 
const Dtk_InfoPtr & GetInfo () const
 
const LeaderTerminatorTypeEnum GetType () const
 
void GetWidthHeight (Dtk_Double64 &outWidth, Dtk_Double64 &outHeight) const
 
ArrowHead & operator= (ArrowHead &&in) DTK_NOEXCEPT
 
ArrowHead & operator= (const ArrowHead &in)
 Copy assignment operator. More...
 
void SetData (const Dtk_Double64 inWidth, const Dtk_Double64 inHeight, const Dtk_pnt &inArrowLocation, const LeaderTerminatorTypeEnum inTerminatorType, const Dtk_InfoPtr &inInfos, const Dtk_dir &inRefDir, const Dtk_dir &inAxisDir)
 
void SetType (const LeaderTerminatorTypeEnum inTerminatorType)
 
void SetWidthHeight (const Dtk_Double64 inWidth, const Dtk_Double64 inHeight)
 
Dtk_ErrorStatus Transform (const Dtk_transfo &inTransfo)
 Applies a transformation matrix to the ApplicationZone. More...
 
Dtk_ErrorStatus Translate (const Dtk_dir &inTranslateDir)
 Translates the ApplicationZone giving a translation vector. More...
 
 ~ArrowHead ()
 Destructor. More...
 

Protected Attributes

Dtk_pnt m_ArrowLocation
 
Dtk_dir m_AxisDir
 
LeaderTerminatorTypeEnum m_HeadType
 
Dtk_InfoPtr m_Infos
 
Dtk_dir m_RefDir
 

Detailed Description

This class graphically represents a leader head.

Constructor & Destructor Documentation

◆ ArrowHead() [1/4]

Dtk_Leader::ArrowHead::ArrowHead ( const Dtk_Double64  inWidth,
const Dtk_Double64  inHeight,
const Dtk_pnt &  inArrowLocation,
const LeaderTerminatorTypeEnum  inTerminatorType,
const Dtk_InfoPtr &  inInfos,
const Dtk_dir &  inRefDir,
const Dtk_dir &  inAxisDir 
)
1973  {
1974  SetData( inWidth, inHeight, inArrowLocation, inTerminatorType, inInfos, inRefDir, inAxisDir );
1975  }

◆ ArrowHead() [2/4]

Dtk_Leader::ArrowHead::ArrowHead ( )

Default constructor.

1978  : m_Infos( Dtk_Info::Create() )
1980  {}

◆ ~ArrowHead()

Dtk_Leader::ArrowHead::~ArrowHead ( )

Destructor.

1982 {}

◆ ArrowHead() [3/4]

Dtk_Leader::ArrowHead::ArrowHead ( const ArrowHead &  in)
1985  : m_HeadType( in.m_HeadType )
1986  , m_ArrowLocation( in.m_ArrowLocation )
1987  , m_RefDir( in.m_RefDir )
1988  , m_AxisDir( in.m_AxisDir )
1989  {
1990  in.m_Infos.Clone( m_Infos );
1991  }

◆ ArrowHead() [4/4]

Dtk_Leader::ArrowHead::ArrowHead ( ArrowHead &&  in)
1992 : m_HeadType( in.m_HeadType ), m_ArrowLocation( std::move(in.m_ArrowLocation) ), m_RefDir( std::move(in.m_RefDir) ), m_AxisDir( std::move(in.m_AxisDir) ), m_Infos( std::move(in.m_Infos) ) {}

Member Function Documentation

◆ CreateGeometries()

void Dtk_Leader::ArrowHead::CreateGeometries ( Dtk_tab< Dtk_CurvePtr > &  outRes,
Dtk_Int32  inByPolygon = DTK_FALSE 
) const

◆ GetArrowLocation()

const Dtk_pnt& Dtk_Leader::ArrowHead::GetArrowLocation ( ) const
2036 { return m_ArrowLocation; }

◆ GetDirections()

void Dtk_Leader::ArrowHead::GetDirections ( Dtk_dir &  outRefDir,
Dtk_dir &  outAxisDir 
) const
2041  {
2042  outRefDir = m_RefDir; outRefDir.Normalize();
2043  outAxisDir = m_AxisDir; outAxisDir.Normalize();
2044  }

◆ GetInfo() [1/2]

Dtk_InfoPtr& Dtk_Leader::ArrowHead::GetInfo ( )
2035 { return m_Infos; }

◆ GetInfo() [2/2]

const Dtk_InfoPtr& Dtk_Leader::ArrowHead::GetInfo ( ) const
2034 { return m_Infos; }

◆ GetType()

const LeaderTerminatorTypeEnum Dtk_Leader::ArrowHead::GetType ( ) const
2037 { return m_HeadType; }

◆ GetWidthHeight()

void Dtk_Leader::ArrowHead::GetWidthHeight ( Dtk_Double64 &  outWidth,
Dtk_Double64 &  outHeight 
) const
2046  {
2047  outWidth = m_RefDir.norm();
2048  outHeight = 2. * m_AxisDir.norm();
2049  }

◆ operator=() [1/2]

ArrowHead& Dtk_Leader::ArrowHead::operator= ( ArrowHead &&  in)
1994  {
1995  if( &in == this )
1996  {
1997  return *this;
1998  }
1999  m_HeadType = in.m_HeadType;
2000  m_ArrowLocation = std::move( in.m_ArrowLocation );
2001  m_RefDir = std::move( in.m_RefDir );
2002  m_AxisDir = std::move( in.m_AxisDir );
2003  m_Infos = std::move( in.m_Infos );
2004  };

◆ operator=() [2/2]

ArrowHead& Dtk_Leader::ArrowHead::operator= ( const ArrowHead &  in)

Copy assignment operator.

Parameters
inObject to copy from.
2007  {
2008  if( &in == this )
2009  {
2010  return *this;
2011  }
2012  in.m_Infos.Clone( m_Infos );
2013  m_HeadType = in.m_HeadType;
2014  m_ArrowLocation = in.m_ArrowLocation;
2015  m_RefDir = in.m_RefDir;
2016  m_AxisDir = in.m_AxisDir;
2017  return *this;
2018  }

◆ SetData()

void Dtk_Leader::ArrowHead::SetData ( const Dtk_Double64  inWidth,
const Dtk_Double64  inHeight,
const Dtk_pnt &  inArrowLocation,
const LeaderTerminatorTypeEnum  inTerminatorType,
const Dtk_InfoPtr &  inInfos,
const Dtk_dir &  inRefDir,
const Dtk_dir &  inAxisDir 
)
2026  {
2027  m_HeadType = inTerminatorType;
2028  m_ArrowLocation = inArrowLocation;
2029  m_RefDir = inRefDir;
2030  m_AxisDir = inAxisDir;
2031  SetWidthHeight( inWidth, inHeight );
2032  m_Infos = inInfos;
2033  }

◆ SetType()

void Dtk_Leader::ArrowHead::SetType ( const LeaderTerminatorTypeEnum  inTerminatorType)
2038 { m_HeadType = inTerminatorType; }

◆ SetWidthHeight()

void Dtk_Leader::ArrowHead::SetWidthHeight ( const Dtk_Double64  inWidth,
const Dtk_Double64  inHeight 
)
2051  {
2052  m_RefDir.Normalize();
2053  m_AxisDir.Normalize();
2054  m_RefDir *= inWidth;
2055  m_AxisDir *= 0.5 * inHeight;
2056  }

◆ Transform()

Dtk_ErrorStatus Dtk_Leader::ArrowHead::Transform ( const Dtk_transfo &  inTransfo)

Applies a transformation matrix to the ApplicationZone.

Parameters
inTransfoThe transformation matrix
Returns
dtkNoError if OK
2071  {
2072  m_RefDir = inTransfo * m_RefDir;
2073  m_AxisDir = inTransfo * m_AxisDir;
2074  m_ArrowLocation = inTransfo * m_ArrowLocation;
2075  return dtkNoError;
2076  }

◆ Translate()

Dtk_ErrorStatus Dtk_Leader::ArrowHead::Translate ( const Dtk_dir &  inTranslateDir)

Translates the ApplicationZone giving a translation vector.

Parameters
inTranslateDirthe translation vector
Returns
dtkNoError if OK
2062  {
2063  Dtk_transfo TmpMatrix;
2064  TmpMatrix.addTranslate( inTranslateDir );
2065  return Transform( TmpMatrix );
2066  }

Field Documentation

◆ m_ArrowLocation

Dtk_pnt Dtk_Leader::ArrowHead::m_ArrowLocation
protected

◆ m_AxisDir

Dtk_dir Dtk_Leader::ArrowHead::m_AxisDir
protected

◆ m_HeadType

LeaderTerminatorTypeEnum Dtk_Leader::ArrowHead::m_HeadType
protected

◆ m_Infos

Dtk_InfoPtr Dtk_Leader::ArrowHead::m_Infos
protected

◆ m_RefDir

Dtk_dir Dtk_Leader::ArrowHead::m_RefDir
protected
Dtk_Info::Create
static Dtk_SmartPtr< Dtk_Info > Create()
Calls default constructor to allocate a new object.
Dtk_transfo
This is the Transformation dedicated class.
Definition: dtk_transfo.hpp:19
Dtk_dir::norm
double norm() const
Dtk_Leader::ArrowHead::m_Infos
Dtk_InfoPtr m_Infos
Definition: util_draw_dtk.hpp:1958
Dtk_Leader::ArrowHead::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Applies a transformation matrix to the ApplicationZone.
Definition: util_draw_dtk.hpp:2070
Dtk_Leader::ArrowHead::SetWidthHeight
void SetWidthHeight(const Dtk_Double64 inWidth, const Dtk_Double64 inHeight)
Definition: util_draw_dtk.hpp:2050
Dtk_Leader::ArrowHead::m_ArrowLocation
Dtk_pnt m_ArrowLocation
Definition: util_draw_dtk.hpp:1960
Dtk_Leader::ArrowHead::SetData
void SetData(const Dtk_Double64 inWidth, const Dtk_Double64 inHeight, const Dtk_pnt &inArrowLocation, const LeaderTerminatorTypeEnum inTerminatorType, const Dtk_InfoPtr &inInfos, const Dtk_dir &inRefDir, const Dtk_dir &inAxisDir)
Definition: util_draw_dtk.hpp:2019
Dtk_transfo::addTranslate
void addTranslate(const Dtk_dir &V)
Translate the Dtk_transfo.
Dtk_Leader::ArrowHead::m_RefDir
Dtk_dir m_RefDir
Definition: util_draw_dtk.hpp:1961
Dtk_Leader::ArrowHead::m_AxisDir
Dtk_dir m_AxisDir
Definition: util_draw_dtk.hpp:1962
Dtk_dir::Normalize
double Normalize()
dtkNoError
@ dtkNoError
Definition: error_dtk.hpp:151
Dtk_Leader::ArrowHead::m_HeadType
LeaderTerminatorTypeEnum m_HeadType
Definition: util_draw_dtk.hpp:1959
Dtk_Leader::TerminatorTypeOpenArrow
@ TerminatorTypeOpenArrow
Definition: util_draw_dtk.hpp:1856