2017-10-26 17:17:30 +08:00
|
|
|
#include "..\egeometry.h"
|
|
|
|
|
#include "..\Win\winbase.h"
|
2017-10-28 18:48:21 +08:00
|
|
|
#include "..\enodes.h"
|
2017-10-26 17:17:30 +08:00
|
|
|
|
|
|
|
|
e2d::EGeometry::EGeometry()
|
2017-10-28 18:48:21 +08:00
|
|
|
: m_bTransformNeeded(true)
|
2017-10-26 17:17:30 +08:00
|
|
|
, m_pParentNode(nullptr)
|
2017-10-28 18:48:21 +08:00
|
|
|
, m_pTransformedGeometry(nullptr)
|
2017-10-26 17:17:30 +08:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
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)
|
2017-10-26 17:17:30 +08:00
|
|
|
{
|
|
|
|
|
D2D1_GEOMETRY_RELATION relation;
|
|
|
|
|
|
2017-10-28 18:48:21 +08:00
|
|
|
m_pTransformedGeometry->CompareWithGeometry(
|
|
|
|
|
pGeometry->m_pTransformedGeometry,
|
2017-10-26 17:17:30 +08:00
|
|
|
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-26 17:17:30 +08:00
|
|
|
{
|
2017-10-28 18:48:21 +08:00
|
|
|
SafeReleaseInterface(&m_pTransformedGeometry);
|
2017-10-26 17:17:30 +08:00
|
|
|
|
2017-10-28 18:48:21 +08:00
|
|
|
GetFactory()->CreateTransformedGeometry(
|
|
|
|
|
_getD2dGeometry(),
|
|
|
|
|
m_pParentNode->m_Matri,
|
|
|
|
|
&m_pTransformedGeometry
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
m_bTransformNeeded = false;
|
|
|
|
|
}
|