18 m_CursorCenter = { 0.0f, 0.0f };
19 m_pMouseDevice =
TNULL;
20 m_pPointerUpSection =
TNULL;
21 m_pPointerDownSection =
TNULL;
27 m_fRadialRadius = -1.0f;
34 if ( m_pMouseDevice ==
TNULL )
40 TFLOAT fCursorWidth = m_pPointerUpSection->GetWidth();
41 TFLOAT fCursorHeight = m_pPointerUpSection->GetHeight();
47 m_CursorCenter = { -fCursorWidth / 2, -fCursorHeight / 2 };
49 if ( a_szPointerDownTexture )
72 SetDimensions( m_pPointerUpSection->GetWidth(), m_pPointerUpSection->GetHeight() );
78 SetDimensions( m_pPointerDownSection->GetWidth(), m_pPointerDownSection->GetHeight() );
79 m_bIsMouseDown =
TTRUE;
86 oScreenTransform.
Transform( m_CursorPos, m_CursorCenter );
94 TFLOAT fCursorAccelerationX;
95 TFLOAT fCursorAccelerationY;
98 fCursorAccelerationX = 1.0f;
104 fCursorAccelerationX = 2.0f;
109 fCursorAccelerationX = 4.0f;
113 fCursorAccelerationY = 1.0f;
117 fCursorAccelerationY = 4.0f;
122 fCursorAccelerationY = 4.0f;
125 m_MousePos.x += fCursorAccelerationX * a_fDeltaX * m_fCursorAccelerations[
Acceleration_Off ];
126 m_MousePos.y += fCursorAccelerationY * a_fDeltaY * m_fCursorAccelerations[
Acceleration_Off ];
133 if ( m_MousePos.x < fMinsX ) m_MousePos.x = fMinsX;
134 if ( m_MousePos.x > fMaxsX ) m_MousePos.x = fMaxsX;
135 if ( m_MousePos.y < fMinsY ) m_MousePos.y = fMinsY;
136 if ( m_MousePos.y > fMaxsY ) m_MousePos.y = fMaxsY;
138 if ( m_fRadialRadius != -1.0f )
140 Toshi::TVector2 vec = m_MousePos - m_RadialFieldPos;
142 if ( m_fRadialRadius < vec.Magnitude() )
145 m_MousePos.x = vec.x * m_fRadialRadius + m_RadialFieldPos.x;
146 m_MousePos.y = vec.y * m_fRadialRadius + m_RadialFieldPos.y;
#define TOSHI_NAMESPACE_USING
@ AGUI2ATTACHMENT_TOPLEFT
@ AGUI2ATTACHMENT_MIDDLECENTER
TFORCEINLINE TFLOAT Abs(TFLOAT fVal)
TInputDevice * GetDeviceByIndex(TClass *a_pClass, TUINT a_uiIndex)
constinit static const TVector2 VEC_ZERO
static TFORCEINLINE TInputInterface * GetSingleton()
static AGUI2Element * GetRootElement()
AGUI2Transform & GetTransform()
void AddChildTail(AGUI2Element &a_rElement)
virtual void GetMaxs(TFLOAT &a_fX, TFLOAT &a_fY)
void SetAttachment(AGUI2ATTACHMENT a_eAnchor, AGUI2ATTACHMENT a_ePivot)
virtual void GetMins(TFLOAT &a_fX, TFLOAT &a_fY)
void GetScreenTransform(AGUI2Transform &a_rOutTransform)
virtual void SetDimensions(TFLOAT a_fWidth, TFLOAT a_fHeight)
TBOOL Create(const TCHAR *a_szPointerUpTexture, const TCHAR *a_szPointerDownTexture, TFLOAT a_fScalar)
void MoveCursor(TFLOAT a_fDeltaX, TFLOAT a_fDeltaY)
void SetTextureSection(AGUI2TextureSection *a_pTexSection)
Sets material and UVs from AGUI2TextureSection.
static AGUI2TextureSection * GetTextureSection(const TCHAR *a_szSectionName)
void Transform(Toshi::TVector2 &a_rOutVec, const Toshi::TVector2 &a_rTransformVec) const
constexpr void SetTranslation(TFLOAT a_fX, TFLOAT a_fY)
void Scale(TFLOAT a_fScaleX, TFLOAT a_fScaleY)