Magic_Game/Easy2D/Geometry/EGeometry.cpp

44 lines
882 B
C++
Raw Normal View History

#include "..\egeometry.h"
#include "..\Win\winbase.h"
2017-10-28 18:48:21 +08:00
#include "..\enodes.h"
e2d::EGeometry::EGeometry()
2017-10-28 18:48:21 +08:00
: m_bTransformNeeded(true)
, m_pParentNode(nullptr)
2017-10-28 18:48:21 +08:00
, m_pTransformedGeometry(nullptr)
{
}
2017-10-28 18:48:21 +08:00
e2d::ENode * e2d::EGeometry::getParentNode() const
{
return m_pParentNode;
}
e2d::EPhysicsMsg::INTERSECT_RELATION e2d::EGeometry::_intersectWith(EGeometry * pGeometry)
{
D2D1_GEOMETRY_RELATION relation;
2017-10-28 18:48:21 +08:00
m_pTransformedGeometry->CompareWithGeometry(
pGeometry->m_pTransformedGeometry,
D2D1::Matrix3x2F::Identity(),
&relation
);
2017-10-28 18:48:21 +08:00
return EPhysicsMsg::INTERSECT_RELATION(relation);
}
void e2d::EGeometry::_transform()
{
if (m_bTransformNeeded && m_pParentNode)
{
2017-10-28 18:48:21 +08:00
SafeReleaseInterface(&m_pTransformedGeometry);
2017-10-28 18:48:21 +08:00
GetFactory()->CreateTransformedGeometry(
_getD2dGeometry(),
m_pParentNode->m_Matri,
&m_pTransformedGeometry
);
}
m_bTransformNeeded = false;
}