Example #1
0
/**
 *	Function used to draw all objects in a vector of object pointers that are related to renderobjects
 *	@param _objects is a vector of Object pointers that contains a list of all objects to draw
 *	@param _renderobjects is a vector of RenderObject that contain the direction of how to draw each object
 */
void RenderEngine::drawobjects(vector<Object*>* _objects, vector<RenderObject> _renderobjects)
{
	vector<RenderObject>::iterator renderobjectsiter;
	vector<RenderObject>::iterator renderobjectsend;

	list<Point>::iterator piter;
	int objectID;
	Point3D point1;
	Point3D point2;
	Pose position;
	for(int i = 0;i < _objects->size(); i++)
	{
		objectID = (*_objects)[i]->getObjectID();
		position = (*_objects)[i]->getPose();
		renderobjectsiter = _renderobjects.begin();
		renderobjectsend = _renderobjects.end();
		while(renderobjectsiter != renderobjectsend)
		{
			if(renderobjectsiter->getObjectID() == objectID)
			{
				piter = renderobjectsiter->getPointsBegin();
				while(piter != renderobjectsiter->getPointsEnd())
				{
					point1.setXYZ(piter->getX() + position.getX(), 
						piter->getY() - position.getY(),
						piter->getZ() - position.getZ());
					piter++;
					point2.setXYZ(piter->getX() + position.getX(), 
						piter->getY() - position.getY(),
						piter->getZ() - position.getZ());
					window->DrawLineInSpace(point1,point2);
					piter++;
				}
			}
			renderobjectsiter++;
			window->DrawLineOnScreen(Point2D(-1,0),Point2D(1,0));
			window->DrawLineOnScreen(Point2D(-.001,0),Point2D(.001,0));
			window->DrawLineOnScreen(Point2D(0.00,-.001),Point2D(0.00,.001));
		}
	}
}