void InputGeom::drawOffMeshConnections(duDebugDraw* dd, bool hilight) { unsigned int conColor = duRGBA(192,0,128,192); unsigned int baseColor = duRGBA(0,0,0,64); dd->depthMask(false); dd->begin(DU_DRAW_LINES, 2.0f); for (int i = 0; i < m_offMeshConCount; ++i) { float* v = &m_offMeshConVerts[i*3*2]; dd->vertex(v[0],v[1],v[2], baseColor); dd->vertex(v[0],v[1]+0.2f,v[2], baseColor); dd->vertex(v[3],v[4],v[5], baseColor); dd->vertex(v[3],v[4]+0.2f,v[5], baseColor); duAppendCircle(dd, v[0],v[1]+0.1f,v[2], m_offMeshConRads[i], baseColor); duAppendCircle(dd, v[3],v[4]+0.1f,v[5], m_offMeshConRads[i], baseColor); if (hilight) { duAppendArc(dd, v[0],v[1],v[2], v[3],v[4],v[5], 0.25f, (m_offMeshConDirs[i]&1) ? 0.6f : 0.0f, 0.6f, conColor); } } dd->end(); dd->depthMask(true); }
void cocos2d::NavMesh::drawOffMeshConnections() { unsigned int conColor = duRGBA(192, 0, 128, 192); unsigned int baseColor = duRGBA(0, 0, 0, 64); _debugDraw.begin(DU_DRAW_LINES, 2.0f); for (int i = 0; i < _geomData->offMeshConCount; ++i) { float* v = &_geomData->offMeshConVerts[i * 3 * 2]; _debugDraw.vertex(v[0], v[1], v[2], baseColor); _debugDraw.vertex(v[0], v[1] + 0.2f, v[2], baseColor); _debugDraw.vertex(v[3], v[4], v[5], baseColor); _debugDraw.vertex(v[3], v[4] + 0.2f, v[5], baseColor); duAppendCircle(&_debugDraw, v[0], v[1] + 0.1f, v[2], _geomData->offMeshConRads[i], baseColor); duAppendCircle(&_debugDraw, v[3], v[4] + 0.1f, v[5], _geomData->offMeshConRads[i], baseColor); if (/*hilight*/true) { duAppendArc(&_debugDraw, v[0], v[1], v[2], v[3], v[4], v[5], 0.25f, (_geomData->offMeshConDirs[i] & 1) ? 0.6f : 0.0f, 0.6f, conColor); } } _debugDraw.end(); }
void duDebugDrawCircle(struct duDebugDraw* dd, const float x, const float y, const float z, const float r, unsigned int col, const float lineWidth) { if (!dd) return; dd->begin(DU_DRAW_LINES, lineWidth); duAppendCircle(dd, x,y,z, r, col); dd->end(); }
void BotDrawNavEdit( DebugDrawQuake *dd ) { rVec p; if ( cmd.enabled && GetPointPointedTo( cmd.nav, p ) ) { unsigned int col = duRGBA( 255, 255, 255, 220 ); dd->begin( DU_DRAW_LINES, 2.0f ); duAppendCircle( dd, p[ 0 ], p[ 1 ], p[ 2 ], connectionSize, col ); if ( cmd.offBegin ) { duAppendArc( dd, cmd.pc.start[ 0 ], cmd.pc.start[ 1 ], cmd.pc.start[ 2 ], p[ 0 ], p[ 1 ], p[ 2 ], 0.25f, 0.6f, 0.6f, col ); duAppendCircle( dd, cmd.pc.start[ 0 ], cmd.pc.start[ 1 ], cmd.pc.start[ 2 ], connectionSize, col ); } dd->end(); } }