Ejemplo n.º 1
0
//-----------------------------------------------------------------------------
// Purpose: Renders a selection gizmo at our bounds center.
// Input  : pRender - Rendering interface.
//-----------------------------------------------------------------------------
void Marker3D::RenderTool3D(CRender3D *pRender)
{
	if (!IsActiveTool())
	{
		return;
	}

	Vector *pPos;

	if (IsTranslating())
	{
		pPos = &m_vecTranslatePos;
	}
	else
	{
		if (IsEmpty())
		{
			return;
		}

		pPos = &m_vecPos;
	}
	
	//
	// Setup the renderer.
	//
	pRender->SetRenderMode(RENDER_MODE_WIREFRAME);

	CMeshBuilder meshBuilder;
	IMesh* pMesh = MaterialSystemInterface()->GetDynamicMesh();

	meshBuilder.Begin(pMesh, MATERIAL_LINES, 3);

	meshBuilder.Position3f(g_MIN_MAP_COORD, (*pPos)[1], (*pPos)[2]);
	meshBuilder.Color3ub(255, 0, 0);
	meshBuilder.AdvanceVertex();
	meshBuilder.Position3f(g_MAX_MAP_COORD, (*pPos)[1], (*pPos)[2]);
	meshBuilder.Color3ub(255, 0, 0);
	meshBuilder.AdvanceVertex();

	meshBuilder.Position3f((*pPos)[0], g_MIN_MAP_COORD, (*pPos)[2]);
	meshBuilder.Color3ub(0, 255, 0);
	meshBuilder.AdvanceVertex();
	meshBuilder.Position3f((*pPos)[0], g_MAX_MAP_COORD, (*pPos)[2]);
	meshBuilder.Color3ub(0, 255, 0);
	meshBuilder.AdvanceVertex();

	meshBuilder.Position3f((*pPos)[0], (*pPos)[1], g_MIN_MAP_COORD);
	meshBuilder.Color3ub(0, 0, 255);
	meshBuilder.AdvanceVertex();
	meshBuilder.Position3f((*pPos)[0], (*pPos)[1], g_MAX_MAP_COORD);
	meshBuilder.Color3ub(0, 0, 255);
	meshBuilder.AdvanceVertex();

	meshBuilder.End();
	pMesh->Draw();

	pRender->SetRenderMode(RENDER_MODE_DEFAULT);
}
Ejemplo n.º 2
0
//-----------------------------------------------------------------------------
// Purpose: Called when the tool is activated.
// Input  : eOldTool - The ID of the previously active tool.
//-----------------------------------------------------------------------------
void Clipper3D::OnActivate(ToolID_t eOldTool)
{
	if (IsActiveTool())
	{
		//
		// Already the active tool - toggle the mode.
		//
        IterateClipMode();
		m_pDocument->ToolUpdateViews(CMapView2D::updTool);
	}
}
Ejemplo n.º 3
0
//-----------------------------------------------------------------------------
// Purpose: Called when the tool is activated.
// Input  : eOldTool - The ID of the previously active tool.
//-----------------------------------------------------------------------------
void Cordon3D::OnActivate()
{
	if (!IsActiveTool())
	{
		Vector mins,maxs;
		m_pDocument->GetCordon( mins, maxs );
		SetBounds( mins,maxs );

		m_bEmpty = !IsValidBox();
		EnableHandles( true );
	}
}
Ejemplo n.º 4
0
//-----------------------------------------------------------------------------
// Purpose: 
// Input  : pRender - 
//-----------------------------------------------------------------------------
void Marker3D::RenderTool2D(CRender2D *pRender)
{
	if (!IsActiveTool())
	{
		return;
	}

	Vector vecPos;
	CRect rect;
	CPoint pt;

	if (IsTranslating())
	{
		vecPos = m_vecTranslatePos;
	}
	else
	{
		if (IsEmpty())
		{
			return;
		}

		vecPos = m_vecPos;
	}

	pt.x = vecPos[axHorz];
	pt.y = vecPos[axVert];
	PointToScreen(pt);

	pRender->SetLineType(CRender2D::LINE_SOLID, CRender2D::LINE_THIN, 35, 255, 75);

	//
	// Draw center rect.
	//
	rect.SetRect(pt, pt);
	rect.InflateRect(6, 6);
	pRender->Rectangle(rect, false);

	//
	// Draw crosshairs.
	//
	pRender->MoveTo(g_MIN_MAP_COORD, pt.y);
	pRender->LineTo(g_MAX_MAP_COORD, pt.y);
	pRender->MoveTo(pt.x, g_MIN_MAP_COORD);
	pRender->LineTo(pt.x, g_MAX_MAP_COORD);
}