virtual void handleRender()
	{
		if (m_hitPosSet)
		{
			const float s = m_sample->getAgentRadius();
			glColor4ub(0,0,0,128);
			glLineWidth(2.0f);
			glBegin(GL_LINES);
			glVertex3f(m_hitPos[0]-s,m_hitPos[1]+0.1f,m_hitPos[2]);
			glVertex3f(m_hitPos[0]+s,m_hitPos[1]+0.1f,m_hitPos[2]);
			glVertex3f(m_hitPos[0],m_hitPos[1]-s+0.1f,m_hitPos[2]);
			glVertex3f(m_hitPos[0],m_hitPos[1]+s+0.1f,m_hitPos[2]);
			glVertex3f(m_hitPos[0],m_hitPos[1]+0.1f,m_hitPos[2]-s);
			glVertex3f(m_hitPos[0],m_hitPos[1]+0.1f,m_hitPos[2]+s);
			glEnd();
			glLineWidth(1.0f);
			
			if (m_sample)
			{
				int tx=0, ty=0;
				m_sample->getTilePos(m_hitPos, tx, ty);
				m_sample->renderCachedTile(tx,ty,m_drawType);
			}

		}
	}
 virtual void handleClick(const float* s, const float* p, bool shift)
 {
     if (m_sample)
     {
         if (shift)
             m_sample->removeTempObstacle(s,p);
         else
             m_sample->addTempObstacle(p);
     }
 }
 virtual void handleRenderOverlay(double* proj, double* model, int* view)
 {
     if (m_hitPosSet)
     {
         if (m_sample)
         {
             int tx=0, ty=0;
             m_sample->getTilePos(m_hitPos, tx, ty);
             m_sample->renderCachedTileOverlay(tx,ty,proj,model,view);
         }
     }
 }
    virtual void handleMenu()
    {
        imguiLabel("Create Temp Obstacles");

        if (imguiButton("Remove All"))
            m_sample->clearAllTempObstacles();

        imguiSeparator();

        imguiValue("Click LMB to create an obstacle.");
        imguiValue("Shift+LMB to remove an obstacle.");
    }
	virtual void handleMenu()
	{
		ImGui::Text("Create Temp Obstacles");
		
		if (ImGui::Button("Remove All"))
			m_sample->clearAllTempObstacles();
		
		ImGui::Separator();

		ImGui::Text("Click LMB to create an obstacle.");
		ImGui::Text("Shift+LMB to remove an obstacle.");
	}