| 
									
										
										
										
											2018-04-21 21:24:46 +08:00
										 |  |  | #include "..\e2dcollider.h"
 | 
					
						
							|  |  |  | #include "..\e2dnode.h"
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | e2d::ColliderRect::ColliderRect() | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  | 	: _d2dRectangle(nullptr) | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | e2d::ColliderRect::ColliderRect(double x, double y, double width, double height) | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  | 	: _d2dRectangle(nullptr) | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  | { | 
					
						
							|  |  |  | 	this->setRect(x, y, x + width, y + height); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | e2d::ColliderRect::ColliderRect(Node * node) | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  | 	: _d2dRectangle(nullptr) | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  | { | 
					
						
							|  |  |  | 	this->setRect(0, 0, node->getRealWidth(), node->getRealHeight()); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | e2d::ColliderRect::~ColliderRect() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-10 20:23:32 +08:00
										 |  |  | 	SafeReleaseInterface(_d2dRectangle); | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void e2d::ColliderRect::setRect(double left, double top, double right, double bottom) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-10 20:23:32 +08:00
										 |  |  | 	SafeReleaseInterface(_d2dRectangle); | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	Renderer::getID2D1Factory()->CreateRectangleGeometry( | 
					
						
							|  |  |  | 		D2D1::RectF( | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  | 			float(left),  | 
					
						
							|  |  |  | 			float(top),  | 
					
						
							|  |  |  | 			float(right),  | 
					
						
							|  |  |  | 			float(bottom)), | 
					
						
							|  |  |  | 		&_d2dRectangle | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  | 	); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void e2d::ColliderRect::_resize() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  | 	if (_parentNode && _enable) | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  | 		this->setRect( 0, 0, _parentNode->getRealWidth(), _parentNode->getRealHeight()); | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ID2D1RectangleGeometry * e2d::ColliderRect::getD2dGeometry() const | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  | 	return _d2dRectangle; | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  | } |