MCPcopy Create free account
hub / github.com/OpenSees/OpenSees / drawPolygon

Method drawPolygon

SRC/renderer/X11Renderer.cpp:385–441  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

383
384
385int
386X11Renderer::drawPolygon(const Matrix &pos, const Vector &data, int tag, int mode)
387
388{
389#ifdef _G3DEBUG
390 if (pos.noCols() != 3) {
391 opserr <<"X11Renderer::drawPolygon - matrix needs 3 cols\n";
392 return -1;
393 }
394 if (pos.noRows() != data.Size()) {
395 opserr <<"X11Renderer::drawPolygon - matrix & vector incompatible\n";
396 return -1;
397 }
398#endif
399
400 FACE *theFace = new FACE();
401
402 float posX,posY,posZ, r, g, b;
403 double value;
404 MYPOINT *point;
405
406 // add POINTs to the FACE
407 int numRows = pos.noRows();
408 for (int i=0; i<numRows; i++) {
409 posX = pos(i,0);
410 posY = pos(i,1);
411 posZ = pos(i,2);
412 value = data(i);
413 r = theMap->getRed(value);
414 g = theMap->getGreen(value);
415 b = theMap->getBlue(value);
416
417 if (aFile == 1) {
418 theFile << posX << " " << posY << " " << posZ << " " << r
419 << " " << g << " " << b << " " << endln;
420 }
421
422 point = new MYPOINT(1,posX,posY,posZ);
423 point->r = r;
424 point->g = g;
425 point->b = b;
426
427 theFace->AddPoint(*point);
428 }
429
430 // display the face
431 FACE &res1 = theView->transform(*theFace);
432 // opserr << "X11Renderer: face after view " << theFace;
433 FACE &res2 = theProjection->transform(res1);
434 // opserr << "X11Renderer: face after projection " << theFace;
435 FACE &res3 = theClipping->transform(res2);
436 // opserr << "X11Renderer: face after clipping " << theFace;
437 FACE &res4 = theViewport->transform(res3);
438 // opserr << "X11Renderer: face after viewport " << theFace;
439 theScan->scanPolygon(res4);
440 return 0;
441}
442

Callers 15

drawCubeMethod · 0.45
drawCubeMethod · 0.45
displaySelfMethod · 0.45
displaySelfMethod · 0.45
displaySelfMethod · 0.45
displaySelfMethod · 0.45
displaySelfMethod · 0.45
displaySelfMethod · 0.45
displaySelfMethod · 0.45
displaySelfMethod · 0.45
displaySelfMethod · 0.45
displaySelfMethod · 0.45

Calls 8

AddPointMethod · 0.80
scanPolygonMethod · 0.80
noColsMethod · 0.45
noRowsMethod · 0.45
SizeMethod · 0.45
getRedMethod · 0.45
getGreenMethod · 0.45
getBlueMethod · 0.45

Tested by

no test coverage detected