52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
| 
								 | 
							
								#include "..\ecollider.h"
							 | 
						||
| 
								 | 
							
								#include "..\enode.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								e2d::ColliderRect::ColliderRect()
							 | 
						||
| 
								 | 
							
									: m_pD2dRectangle(nullptr)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								e2d::ColliderRect::ColliderRect(double x, double y, double width, double height)
							 | 
						||
| 
								 | 
							
									: m_pD2dRectangle(nullptr)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									this->setRect(x, y, x + width, y + height);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								e2d::ColliderRect::ColliderRect(Node * node)
							 | 
						||
| 
								 | 
							
									: m_pD2dRectangle(nullptr)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									this->setRect(0, 0, node->getRealWidth(), node->getRealHeight());
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								e2d::ColliderRect::~ColliderRect()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									SafeReleaseInterface(&m_pD2dRectangle);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void e2d::ColliderRect::setRect(double left, double top, double right, double bottom)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									SafeReleaseInterface(&m_pD2dRectangle);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									Renderer::getID2D1Factory()->CreateRectangleGeometry(
							 | 
						||
| 
								 | 
							
										D2D1::RectF(
							 | 
						||
| 
								 | 
							
											static_cast<float>(left), 
							 | 
						||
| 
								 | 
							
											static_cast<float>(top), 
							 | 
						||
| 
								 | 
							
											static_cast<float>(right), 
							 | 
						||
| 
								 | 
							
											static_cast<float>(bottom)),
							 | 
						||
| 
								 | 
							
										&m_pD2dRectangle
							 | 
						||
| 
								 | 
							
									);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void e2d::ColliderRect::_resize()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									if (m_pParentNode && m_bEnable)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										this->setRect( 0, 0, m_pParentNode->getRealWidth(), m_pParentNode->getRealHeight());
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ID2D1RectangleGeometry * e2d::ColliderRect::getD2dGeometry() const
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									return m_pD2dRectangle;
							 | 
						||
| 
								 | 
							
								}
							 |