summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorprep <none@none>2012-03-21 09:53:32 -0400
committerprep <none@none>2012-03-21 09:53:32 -0400
commit154e569923d0caf99fb0d24af8475731f5ceaf33 (patch)
treedbb397f25b7e02c941e726bd6d0531e47cb3bdee
parentd3550dfcd64cfc182fd120338d3e7eb25ac339af (diff)
Path-282: Added support for viewing the walkability map for various character types
-rw-r--r--indra/llrender/llrendernavprim.cpp13
-rw-r--r--indra/llrender/llrendernavprim.h2
-rw-r--r--indra/newview/llfloaterpathfindingconsole.cpp29
-rw-r--r--indra/newview/llfloaterpathfindingconsole.h2
-rw-r--r--indra/newview/pipeline.cpp3
5 files changed, 47 insertions, 2 deletions
diff --git a/indra/llrender/llrendernavprim.cpp b/indra/llrender/llrendernavprim.cpp
index ebc453a32c..21ba29741e 100644
--- a/indra/llrender/llrendernavprim.cpp
+++ b/indra/llrender/llrendernavprim.cpp
@@ -62,6 +62,19 @@ void LLRenderNavPrim::renderTri( const LLVector3& a, const LLVector3& b, const L
gGL.end();
}
//=============================================================================
+void LLRenderNavPrim::renderLLTri( const LLVector3& a, const LLVector3& b, const LLVector3& c, const LLColor4U& color, bool overlayMode ) const
+{
+ LLColor4 cV(color);
+ gGL.color4fv( cV.mV );
+ gGL.begin(LLRender::TRIANGLES);
+ {
+ gGL.vertex3fv( a.mV );
+ gGL.vertex3fv( b.mV );
+ gGL.vertex3fv( c.mV );
+ }
+ gGL.end();
+}
+//=============================================================================
void LLRenderNavPrim::renderNavMeshVB( LLVertexBuffer* pVBO, int vertCnt )
{
pVBO->setBuffer( LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_COLOR | LLVertexBuffer::MAP_NORMAL );
diff --git a/indra/llrender/llrendernavprim.h b/indra/llrender/llrendernavprim.h
index 158093690e..b5509d9c5e 100644
--- a/indra/llrender/llrendernavprim.h
+++ b/indra/llrender/llrendernavprim.h
@@ -43,6 +43,8 @@ public:
void renderSegment( const LLVector3& start, const LLVector3& end, int color, bool overlayMode ) const;
//Draw simple tri
void renderTri( const LLVector3& a, const LLVector3& b, const LLVector3& c, int color, bool overlayMode ) const;
+ //Draw simple tri
+ void renderLLTri( const LLVector3& a, const LLVector3& b, const LLVector3& c, const LLColor4U& color, bool overlayMode ) const;
//Draw the contents of vertex buffer
void renderNavMeshVB( LLVertexBuffer* pVBO, int vertCnt );
//Draw a star
diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp
index ae08a166a1..f830dc1fac 100644
--- a/indra/newview/llfloaterpathfindingconsole.cpp
+++ b/indra/newview/llfloaterpathfindingconsole.cpp
@@ -368,6 +368,35 @@ LLFloaterPathfindingConsole::ERenderHeatmapType LLFloaterPathfindingConsole::get
return renderHeatmapType;
}
+int LLFloaterPathfindingConsole::getHeatMapType() const
+{
+ //converts the pathfinding console values to the navmesh filter values
+
+ int renderHeatmapType = 4; //none
+
+ switch ( mShowNavMeshWalkabilityComboBox->getValue().asInteger() )
+ {
+ case XUI_RENDER_HEATMAP_A :
+ renderHeatmapType = 0;
+ break;
+ case XUI_RENDER_HEATMAP_B :
+ renderHeatmapType = 1;
+ break;
+ case XUI_RENDER_HEATMAP_C :
+ renderHeatmapType = 2;
+ break;
+ case XUI_RENDER_HEATMAP_D :
+ renderHeatmapType = 3;
+ break;
+ default :
+ renderHeatmapType = 4;
+ break;
+ }
+
+ return renderHeatmapType;
+}
+
+
void LLFloaterPathfindingConsole::setRenderHeatmapType(ERenderHeatmapType pRenderHeatmapType)
{
LLSD comboBoxValue;
diff --git a/indra/newview/llfloaterpathfindingconsole.h b/indra/newview/llfloaterpathfindingconsole.h
index 8c22e5ead7..dff9b08383 100644
--- a/indra/newview/llfloaterpathfindingconsole.h
+++ b/indra/newview/llfloaterpathfindingconsole.h
@@ -112,7 +112,7 @@ public:
bool getHeartBeat() const { return mHeartBeat;}
void setHeartBeat( bool state ) { mHeartBeat=state; }
void regionCrossingOccured();
-
+ int getHeatMapType() const;
protected:
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index f0c5342425..f91dfa7c27 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -4347,7 +4347,8 @@ void LLPipeline::renderDebug()
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
}
- llPathingLibInstance->renderNavMesh();
+ int materialIndex = pathfindingConsole->getHeatMapType();
+ llPathingLibInstance->renderNavMesh( materialIndex );
glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
glLineWidth(1.0f);
gGL.flush();