#include <dru.h>
Definition at line 106 of file dru.h.
Static Public Member Functions | |
IDriver * | createGlDriver () throw (EDru) |
Portable Function which create a GL Driver (using gl dll...). | |
2D render. | |
void | drawBitmap (float x, float y, float width, float height, class ITexture &texture, IDriver &driver, CViewport viewport=CViewport(), bool blend=true) |
Draw a bitmap 2D. Warning: this is slow... | |
void | drawLine (float x0, float y0, float x1, float y1, IDriver &driver, CRGBA col=CRGBA(255, 255, 255, 255), CViewport viewport=CViewport()) |
Draw a line in 2D. Warning: this is slow... | |
void | drawQuad (float xcenter, float ycenter, float radius, IDriver &driver, CRGBA col, CViewport viewport) |
Draw a Quad in 2D. Warning: this is slow... | |
void | drawQuad (float x0, float y0, float x1, float y1, CRGBA col0, CRGBA col1, CRGBA col2, CRGBA col3, IDriver &driver, CViewport viewport) |
void | drawQuad (float x0, float y0, float x1, float y1, IDriver &driver, CRGBA col, CViewport viewport) |
Draw a Quad in 2D. Warning: this is slow... | |
void | drawTriangle (float x0, float y0, float x1, float y1, float x2, float y2, IDriver &driver, CRGBA col, CViewport viewport) |
Draw a Triangle in 2D. Warning: this is slow... | |
void | drawWiredQuad (float xcenter, float ycenter, float radius, IDriver &driver, CRGBA col, CViewport viewport) |
Draw a Quad in 2D. Warning: this is slow... | |
void | drawWiredQuad (float x0, float y0, float x1, float y1, IDriver &driver, CRGBA col, CViewport viewport) |
Draw a Quad in 2D. Warning: this is slow... | |
Easy render (2D or 3D). | |
void | drawLine (const CVector &a, const CVector &b, CRGBA color, IDriver &driver) |
Draw one line in 3D only, with a specific color. | |
void | drawLinesUnlit (const std::vector< NLMISC::CLine > &linelist, CMaterial &mat, IDriver &driver) |
Draw the Lines, with Vertex only. "mat" should not be a lighted material since no normal is computed. | |
void | drawLinesUnlit (const NLMISC::CLine *linelist, sint nlines, CMaterial &mat, IDriver &driver) |
Draw the Lines, with Vertex only. "mat" should not be a lighted material since no normal is computed. | |
void | drawTrianglesUnlit (const std::vector< NLMISC::CTriangleUV > &trilist, CMaterial &mat, IDriver &driver) |
Draw the triangles, with Vertex and 1 UV. "mat" should not be a lighted material since no normal is computed. | |
void | drawTrianglesUnlit (const NLMISC::CTriangleUV *trilist, sint ntris, CMaterial &mat, IDriver &driver) |
Draw the triangles, with Vertex and 1 UV. "mat" should not be a lighted material since no normal is computed. | |
void | drawWiredBox (const CVector &corner, const CVector &vi, const CVector &vj, const CVector &vk, CRGBA color, IDriver &driver) |
Draw a wired box in 3D, with a specific color. |
|
Portable Function which create a GL Driver (using gl dll...).
Definition at line 59 of file dru.cpp. References buffer, NL3D::IDRV_CREATE_PROC, NL3D::IDRV_CREATE_PROC_NAME, NL3D::IDRV_VERSION_PROC, NL3D::IDRV_VERSION_PROC_NAME, nlinfo, and nlwarning.
00060 { 00061 IDRV_CREATE_PROC createDriver = NULL; 00062 IDRV_VERSION_PROC versionDriver = NULL; 00063 00064 #ifdef NL_OS_WINDOWS 00065 00066 // WINDOWS code. 00067 HINSTANCE hInst; 00068 00069 hInst=LoadLibrary(NL3D_DLL_NAME); 00070 00071 if (!hInst) 00072 { 00073 throw EDruOpenglDriverNotFound(); 00074 } 00075 00076 char buffer[1024], *ptr; 00077 SearchPath (NULL, NL3D_DLL_NAME, NULL, 1023, buffer, &ptr); 00078 nlinfo ("Using the library '"NL3D_DLL_NAME"' that is in the directory: '%s'", buffer); 00079 00080 createDriver = (IDRV_CREATE_PROC) GetProcAddress (hInst, IDRV_CREATE_PROC_NAME); 00081 if (createDriver == NULL) 00082 { 00083 throw EDruOpenglDriverCorrupted(); 00084 } 00085 00086 versionDriver = (IDRV_VERSION_PROC) GetProcAddress (hInst, IDRV_VERSION_PROC_NAME); 00087 if (versionDriver != NULL) 00088 { 00089 if (versionDriver()<IDriver::InterfaceVersion) 00090 throw EDruOpenglDriverOldVersion(); 00091 else if (versionDriver()>IDriver::InterfaceVersion) 00092 throw EDruOpenglDriverUnknownVersion(); 00093 } 00094 00095 #elif defined (NL_OS_UNIX) 00096 00097 void *handle = dlopen(NL3D_DLL_NAME, RTLD_NOW); 00098 00099 if (handle == NULL) 00100 { 00101 nlwarning ("when loading dynamic library '%s': %s", NL3D_DLL_NAME, dlerror()); 00102 throw EDruOpenglDriverNotFound(); 00103 } 00104 00105 /* Not ANSI. Might produce a warning */ 00106 createDriver = (IDRV_CREATE_PROC) dlsym (handle, IDRV_CREATE_PROC_NAME); 00107 if (createDriver == NULL) 00108 { 00109 nlwarning ("when getting function in dynamic library '%s': %s", NL3D_DLL_NAME, dlerror()); 00110 throw EDruOpenglDriverCorrupted(); 00111 } 00112 00113 versionDriver = (IDRV_VERSION_PROC) dlsym (handle, IDRV_VERSION_PROC_NAME); 00114 if (versionDriver != NULL) 00115 { 00116 if (versionDriver()<IDriver::InterfaceVersion) 00117 throw EDruOpenglDriverOldVersion(); 00118 else if (versionDriver()>IDriver::InterfaceVersion) 00119 throw EDruOpenglDriverUnknownVersion(); 00120 } 00121 00122 #else // NL_OS_UNIX 00123 #error "Dynamic DLL loading not implemented!" 00124 #endif // NL_OS_UNIX 00125 00126 IDriver *ret= createDriver(); 00127 if (ret == NULL) 00128 { 00129 throw EDruOpenglDriverCantCreateDriver(); 00130 } 00131 return ret; 00132 } |
|
Draw a bitmap 2D. Warning: this is slow...
Definition at line 136 of file dru.cpp. References NL3D::IDriver::activeVertexBuffer(), height, NLMISC::CMatrix::identity(), NL3D::CMaterial::initUnlit(), NL3D::IDriver::render(), NL3D::CMaterial::setBlend(), NL3D::IDriver::setFrustum(), NL3D::CPrimitiveBlock::setNumQuad(), NL3D::CVertexBuffer::setNumVertices(), NL3D::CPrimitiveBlock::setQuad(), NL3D::CVertexBuffer::setTexCoord(), NL3D::CMaterial::setTexture(), NL3D::IDriver::setupModelMatrix(), NL3D::IDriver::setupViewMatrix(), NL3D::IDriver::setupViewport(), NL3D::CVertexBuffer::setVertexCoord(), NL3D::CVertexBuffer::setVertexFormat(), NL3D::CMaterial::setZFunc(), width, x, and y.
00137 { 00138 CMatrix mtx; 00139 mtx.identity(); 00140 driver.setupViewport (viewport); 00141 driver.setupViewMatrix (mtx); 00142 driver.setupModelMatrix (mtx); 00143 driver.setFrustum (0.f, 1.f, 0.f, 1.f, -1.f, 1.f, false); 00144 00145 static CMaterial mat; 00146 mat.initUnlit (); 00147 mat.setTexture (0, &texture); 00148 mat.setBlend(blend); 00149 mat.setZFunc(CMaterial::always); 00150 00151 static CVertexBuffer vb; 00152 vb.setVertexFormat (CVertexBuffer::PositionFlag|CVertexBuffer::TexCoord0Flag); 00153 vb.setNumVertices (4); 00154 vb.setVertexCoord (0, CVector (x, 0, y)); 00155 vb.setVertexCoord (1, CVector (x+width, 0, y)); 00156 vb.setVertexCoord (2, CVector (x+width, 0, y+height)); 00157 vb.setVertexCoord (3, CVector (x, 0, y+height)); 00158 vb.setTexCoord (0, 0, 0.f, 1.f); 00159 vb.setTexCoord (1, 0, 1.f, 1.f); 00160 vb.setTexCoord (2, 0, 1.f, 0.f); 00161 vb.setTexCoord (3, 0, 0.f, 0.f); 00162 driver.activeVertexBuffer(vb); 00163 00164 CPrimitiveBlock pb; 00165 pb.setNumQuad (1); 00166 pb.setQuad (0, 0, 1, 2, 3); 00167 00168 driver.render(pb, mat); 00169 } |
|
Draw one line in 3D only, with a specific color.
Definition at line 404 of file dru.cpp. References NL3D::CMaterial::initUnlit(), and NL3D::CMaterial::setColor().
00405 { 00406 static NLMISC::CLine line; 00407 static CMaterial mat; 00408 static bool inited= false; 00409 00410 // Setup material. 00411 if(!inited) 00412 { 00413 inited= true; 00414 mat.initUnlit(); 00415 } 00416 mat.setColor(color); 00417 00418 00419 line.V0= a; 00420 line.V1= b; 00421 CDRU::drawLinesUnlit(&line, 1, mat, driver); 00422 } |
|
Draw a line in 2D. Warning: this is slow...
Definition at line 173 of file dru.cpp. References NL3D::IDriver::activeVertexBuffer(), NLMISC::CMatrix::identity(), NL3D::CMaterial::initUnlit(), NL3D::IDriver::render(), NL3D::CMaterial::setBlend(), NL3D::CMaterial::setColor(), NL3D::CMaterial::setDstBlend(), NL3D::IDriver::setFrustum(), NL3D::CPrimitiveBlock::setLine(), NL3D::CPrimitiveBlock::setNumLine(), NL3D::CVertexBuffer::setNumVertices(), NL3D::CMaterial::setSrcBlend(), NL3D::IDriver::setupModelMatrix(), NL3D::IDriver::setupViewMatrix(), NL3D::IDriver::setupViewport(), NL3D::CVertexBuffer::setVertexCoord(), NL3D::CVertexBuffer::setVertexFormat(), and NL3D::CMaterial::setZFunc(). Referenced by drawWiredBox().
00174 { 00175 CMatrix mtx; 00176 mtx.identity(); 00177 driver.setupViewport (viewport); 00178 driver.setupViewMatrix (mtx); 00179 driver.setupModelMatrix (mtx); 00180 driver.setFrustum (0.f, 1.f, 0.f, 1.f, -1.f, 1.f, false); 00181 00182 static CMaterial mat; 00183 mat.initUnlit (); 00184 mat.setSrcBlend(CMaterial::srcalpha); 00185 mat.setDstBlend(CMaterial::invsrcalpha); 00186 mat.setBlend(true); 00187 mat.setColor(col); 00188 mat.setZFunc (CMaterial::always); 00189 00190 static CVertexBuffer vb; 00191 vb.setVertexFormat (CVertexBuffer::PositionFlag); 00192 vb.setNumVertices (2); 00193 vb.setVertexCoord (0, CVector (x0, 0, y0)); 00194 vb.setVertexCoord (1, CVector (x1, 0, y1)); 00195 driver.activeVertexBuffer(vb); 00196 00197 CPrimitiveBlock pb; 00198 pb.setNumLine (1); 00199 pb.setLine (0, 0, 1); 00200 00201 driver.render(pb, mat); 00202 } |
|
Draw the Lines, with Vertex only. "mat" should not be a lighted material since no normal is computed.
Definition at line 397 of file dru.cpp.
00398 { 00399 if(linelist.size()==0) 00400 return; 00401 CDRU::drawLinesUnlit( &(*linelist.begin()), linelist.size(), mat, driver); 00402 } |
|
Draw the Lines, with Vertex only. "mat" should not be a lighted material since no normal is computed.
Definition at line 377 of file dru.cpp. References NL3D::IDriver::activeVertexBuffer(), NL3D::IDriver::render(), NL3D::CPrimitiveBlock::setLine(), NL3D::CPrimitiveBlock::setNumLine(), NL3D::CVertexBuffer::setNumVertices(), NL3D::CVertexBuffer::setVertexCoord(), NL3D::CVertexBuffer::setVertexFormat(), and sint.
00378 { 00379 static CVertexBuffer vb; 00380 vb.setVertexFormat (CVertexBuffer::PositionFlag); 00381 vb.setNumVertices (nlines*2); 00382 00383 static CPrimitiveBlock pb; 00384 pb.setNumLine(nlines); 00385 00386 for(sint i=0;i<nlines;i++) 00387 { 00388 vb.setVertexCoord (i*2+0, linelist[i].V0); 00389 vb.setVertexCoord (i*2+1, linelist[i].V1); 00390 pb.setLine(i, i*2+0, i*2+1); 00391 } 00392 00393 driver.activeVertexBuffer(vb); 00394 driver.render(pb, mat); 00395 } |
|
Draw a Quad in 2D. Warning: this is slow...
Definition at line 277 of file dru.cpp. References NL3D::IDriver::activeVertexBuffer(), NLMISC::CMatrix::identity(), NL3D::CMaterial::initUnlit(), NL3D::IDriver::render(), NL3D::CMaterial::setBlend(), NL3D::CMaterial::setColor(), NL3D::CMaterial::setDstBlend(), NL3D::IDriver::setFrustum(), NL3D::CPrimitiveBlock::setNumQuad(), NL3D::CVertexBuffer::setNumVertices(), NL3D::CPrimitiveBlock::setQuad(), NL3D::CMaterial::setSrcBlend(), NL3D::IDriver::setupModelMatrix(), NL3D::IDriver::setupViewMatrix(), NL3D::IDriver::setupViewport(), NL3D::CVertexBuffer::setVertexCoord(), NL3D::CVertexBuffer::setVertexFormat(), and NL3D::CMaterial::setZFunc().
00278 { 00279 CMatrix mtx; 00280 mtx.identity(); 00281 driver.setupViewport (viewport); 00282 driver.setupViewMatrix (mtx); 00283 driver.setupModelMatrix (mtx); 00284 driver.setFrustum (0.f, 1.f, 0.f, 1.f, -1.f, 1.f, false); 00285 00286 static CMaterial mat; 00287 mat.initUnlit(); 00288 mat.setSrcBlend(CMaterial::srcalpha); 00289 mat.setDstBlend(CMaterial::invsrcalpha); 00290 mat.setBlend(true); 00291 mat.setColor(col); 00292 mat.setZFunc (CMaterial::always); 00293 00294 static CVertexBuffer vb; 00295 vb.setVertexFormat (CVertexBuffer::PositionFlag); 00296 vb.setNumVertices (4); 00297 vb.setVertexCoord (0, CVector (xcenter-radius, 0, ycenter-radius)); 00298 vb.setVertexCoord (1, CVector (xcenter+radius, 0, ycenter-radius)); 00299 vb.setVertexCoord (2, CVector (xcenter+radius, 0, ycenter+radius)); 00300 vb.setVertexCoord (3, CVector (xcenter-radius, 0, ycenter+radius)); 00301 00302 driver.activeVertexBuffer(vb); 00303 00304 CPrimitiveBlock pb; 00305 pb.setNumQuad (1); 00306 pb.setQuad (0, 0, 1, 2, 3); 00307 00308 driver.render(pb, mat); 00309 } |
|
Draw a color Quad in 2D. Warning: this is slow...
Definition at line 424 of file dru.cpp. References NL3D::IDriver::activeVertexBuffer(), NLMISC::CMatrix::identity(), NL3D::CMaterial::initUnlit(), NL3D::IDriver::render(), NL3D::CMaterial::setBlend(), NL3D::CVertexBuffer::setColor(), NL3D::CMaterial::setDstBlend(), NL3D::IDriver::setFrustum(), NL3D::CPrimitiveBlock::setNumQuad(), NL3D::CVertexBuffer::setNumVertices(), NL3D::CPrimitiveBlock::setQuad(), NL3D::CMaterial::setSrcBlend(), NL3D::IDriver::setupModelMatrix(), NL3D::IDriver::setupViewMatrix(), NL3D::IDriver::setupViewport(), NL3D::CVertexBuffer::setVertexCoord(), NL3D::CVertexBuffer::setVertexFormat(), and NL3D::CMaterial::setZFunc().
00425 { 00426 CMatrix mtx; 00427 mtx.identity(); 00428 driver.setupViewport (viewport); 00429 driver.setupViewMatrix (mtx); 00430 driver.setupModelMatrix (mtx); 00431 driver.setFrustum (0.f, 1.f, 0.f, 1.f, -1.f, 1.f, false); 00432 00433 static CMaterial mat; 00434 mat.initUnlit(); 00435 mat.setSrcBlend(CMaterial::srcalpha); 00436 mat.setDstBlend(CMaterial::invsrcalpha); 00437 mat.setBlend(true); 00438 mat.setZFunc (CMaterial::always); 00439 00440 static CVertexBuffer vb; 00441 vb.setVertexFormat (CVertexBuffer::PositionFlag|CVertexBuffer::PrimaryColorFlag); 00442 vb.setNumVertices (4); 00443 vb.setVertexCoord (0, CVector (x0, 0, y0)); 00444 vb.setColor (0, col0); 00445 vb.setVertexCoord (1, CVector (x1, 0, y0)); 00446 vb.setColor (1, col1); 00447 vb.setVertexCoord (2, CVector (x1, 0, y1)); 00448 vb.setColor (2, col2); 00449 vb.setVertexCoord (3, CVector (x0, 0, y1)); 00450 vb.setColor (3, col3); 00451 00452 driver.activeVertexBuffer(vb); 00453 00454 CPrimitiveBlock pb; 00455 pb.setNumQuad (1); 00456 pb.setQuad (0, 0, 1, 2, 3); 00457 00458 driver.render(pb, mat); 00459 } |
|
Draw a Quad in 2D. Warning: this is slow...
Definition at line 241 of file dru.cpp. References NL3D::IDriver::activeVertexBuffer(), NLMISC::CMatrix::identity(), NL3D::CMaterial::initUnlit(), NL3D::IDriver::render(), NL3D::CMaterial::setBlend(), NL3D::CMaterial::setColor(), NL3D::CMaterial::setDstBlend(), NL3D::IDriver::setFrustum(), NL3D::CPrimitiveBlock::setNumQuad(), NL3D::CVertexBuffer::setNumVertices(), NL3D::CPrimitiveBlock::setQuad(), NL3D::CMaterial::setSrcBlend(), NL3D::IDriver::setupModelMatrix(), NL3D::IDriver::setupViewMatrix(), NL3D::IDriver::setupViewport(), NL3D::CVertexBuffer::setVertexCoord(), NL3D::CVertexBuffer::setVertexFormat(), and NL3D::CMaterial::setZFunc().
00242 { 00243 CMatrix mtx; 00244 mtx.identity(); 00245 driver.setupViewport (viewport); 00246 driver.setupViewMatrix (mtx); 00247 driver.setupModelMatrix (mtx); 00248 driver.setFrustum (0.f, 1.f, 0.f, 1.f, -1.f, 1.f, false); 00249 00250 static CMaterial mat; 00251 mat.initUnlit(); 00252 mat.setSrcBlend(CMaterial::srcalpha); 00253 mat.setDstBlend(CMaterial::invsrcalpha); 00254 mat.setBlend(true); 00255 mat.setColor(col); 00256 mat.setZFunc (CMaterial::always); 00257 00258 static CVertexBuffer vb; 00259 vb.setVertexFormat (CVertexBuffer::PositionFlag); 00260 vb.setNumVertices (4); 00261 vb.setVertexCoord (0, CVector (x0, 0, y0)); 00262 vb.setVertexCoord (1, CVector (x1, 0, y0)); 00263 vb.setVertexCoord (2, CVector (x1, 0, y1)); 00264 vb.setVertexCoord (3, CVector (x0, 0, y1)); 00265 00266 driver.activeVertexBuffer(vb); 00267 00268 CPrimitiveBlock pb; 00269 pb.setNumQuad (1); 00270 pb.setQuad (0, 0, 1, 2, 3); 00271 00272 driver.render(pb, mat); 00273 } |
|
Draw a Triangle in 2D. Warning: this is slow...
Definition at line 206 of file dru.cpp. References NL3D::IDriver::activeVertexBuffer(), NLMISC::CMatrix::identity(), NL3D::CMaterial::initUnlit(), NL3D::IDriver::render(), NL3D::CMaterial::setBlend(), NL3D::CMaterial::setColor(), NL3D::CMaterial::setDstBlend(), NL3D::IDriver::setFrustum(), NL3D::CPrimitiveBlock::setNumTri(), NL3D::CVertexBuffer::setNumVertices(), NL3D::CMaterial::setSrcBlend(), NL3D::CPrimitiveBlock::setTri(), NL3D::IDriver::setupModelMatrix(), NL3D::IDriver::setupViewMatrix(), NL3D::IDriver::setupViewport(), NL3D::CVertexBuffer::setVertexCoord(), NL3D::CVertexBuffer::setVertexFormat(), and NL3D::CMaterial::setZFunc().
00207 { 00208 CMatrix mtx; 00209 mtx.identity(); 00210 driver.setupViewport (viewport); 00211 driver.setupViewMatrix (mtx); 00212 driver.setupModelMatrix (mtx); 00213 driver.setFrustum (0.f, 1.f, 0.f, 1.f, -1.f, 1.f, false); 00214 00215 static CMaterial mat; 00216 mat.initUnlit(); 00217 mat.setSrcBlend(CMaterial::srcalpha); 00218 mat.setDstBlend(CMaterial::invsrcalpha); 00219 mat.setBlend(true); 00220 mat.setColor(col); 00221 mat.setZFunc (CMaterial::always); 00222 00223 static CVertexBuffer vb; 00224 vb.setVertexFormat (CVertexBuffer::PositionFlag); 00225 vb.setNumVertices (3); 00226 vb.setVertexCoord (0, CVector (x0, 0, y0)); 00227 vb.setVertexCoord (1, CVector (x1, 0, y1)); 00228 vb.setVertexCoord (2, CVector (x2, 0, y2)); 00229 driver.activeVertexBuffer(vb); 00230 00231 CPrimitiveBlock pb; 00232 pb.setNumTri (1); 00233 pb.setTri (0, 0, 1, 2); 00234 00235 driver.render(pb, mat); 00236 } |
|
Draw the triangles, with Vertex and 1 UV. "mat" should not be a lighted material since no normal is computed.
Definition at line 367 of file dru.cpp.
00368 { 00369 if(trilist.size()==0) 00370 return; 00371 00372 CDRU::drawTrianglesUnlit( &(*trilist.begin()), trilist.size(), mat, driver); 00373 } |
|
Draw the triangles, with Vertex and 1 UV. "mat" should not be a lighted material since no normal is computed. Those render methods work in the current driver viewport/frustum/matrixes. Since no vertex sharing is performed, their use may be slower than direct use of VBuffer/PBlock etc... Also, A VBuffer and a PBlock is created, and copies are made from the list of primitives to the driver... Definition at line 341 of file dru.cpp. References NL3D::IDriver::activeVertexBuffer(), NL3D::IDriver::render(), NL3D::CPrimitiveBlock::setNumTri(), NL3D::CVertexBuffer::setNumVertices(), NL3D::CVertexBuffer::setTexCoord(), NL3D::CPrimitiveBlock::setTri(), NL3D::CVertexBuffer::setVertexCoord(), NL3D::CVertexBuffer::setVertexFormat(), and sint.
00342 { 00343 static CVertexBuffer vb; 00344 vb.setVertexFormat (CVertexBuffer::PositionFlag | CVertexBuffer::TexCoord0Flag); 00345 vb.setNumVertices (ntris*3); 00346 00347 static CPrimitiveBlock pb; 00348 pb.setNumTri(ntris); 00349 00350 for(sint i=0;i<ntris;i++) 00351 { 00352 vb.setVertexCoord (i*3+0, trilist[i].V0); 00353 vb.setVertexCoord (i*3+1, trilist[i].V1); 00354 vb.setVertexCoord (i*3+2, trilist[i].V2); 00355 vb.setTexCoord (i*3+0, 0, trilist[i].Uv0); 00356 vb.setTexCoord (i*3+1, 0, trilist[i].Uv1); 00357 vb.setTexCoord (i*3+2, 0, trilist[i].Uv2); 00358 pb.setTri(i, i*3+0, i*3+1, i*3+2); 00359 } 00360 00361 driver.activeVertexBuffer(vb); 00362 driver.render(pb, mat); 00363 } |
|
Draw a wired box in 3D, with a specific color.
Definition at line 462 of file dru.cpp. References drawLine().
00463 { 00464 CVector p0= corner; 00465 CVector p1= p0 + vi + vj + vk; 00466 drawLine(p0, p0+vi, color, drv); 00467 drawLine(p0, p0+vj, color, drv); 00468 drawLine(p0, p0+vk, color, drv); 00469 drawLine(p1, p1-vi, color, drv); 00470 drawLine(p1, p1-vj, color, drv); 00471 drawLine(p1, p1-vk, color, drv); 00472 drawLine(p0+vi, p0+vi+vj, color, drv); 00473 drawLine(p0+vi, p0+vi+vk, color, drv); 00474 drawLine(p0+vj, p0+vj+vi, color, drv); 00475 drawLine(p0+vj, p0+vj+vk, color, drv); 00476 drawLine(p0+vk, p0+vk+vi, color, drv); 00477 drawLine(p0+vk, p0+vk+vj, color, drv); 00478 } |
|
Draw a Quad in 2D. Warning: this is slow...
Definition at line 327 of file dru.cpp.
00328 { 00329 // v-left 00330 CDRU::drawLine(xcenter-radius,ycenter-radius,xcenter-radius,ycenter+radius,driver,col,viewport); 00331 // v-right 00332 CDRU::drawLine(xcenter+radius,ycenter-radius,xcenter+radius,ycenter+radius,driver,col,viewport); 00333 // h-up 00334 CDRU::drawLine(xcenter-radius,ycenter+radius,xcenter+radius,ycenter+radius,driver,col,viewport); 00335 // h-bottom 00336 CDRU::drawLine(xcenter-radius,ycenter-radius,xcenter+radius,ycenter-radius,driver,col,viewport); 00337 } |
|
Draw a Quad in 2D. Warning: this is slow...
Definition at line 313 of file dru.cpp.
00314 { 00315 // v-left 00316 CDRU::drawLine(x0,y0,x0,y1 ,driver,col,viewport); 00317 // v-right 00318 CDRU::drawLine(x1,y0,x1,y1 ,driver,col,viewport); 00319 // h-up 00320 CDRU::drawLine(x0,y1,x1,y1,driver,col,viewport); 00321 // h-bottom 00322 CDRU::drawLine(x0,y0,x1,y0,driver,col,viewport); 00323 } |