aggiunta delle sphere
This commit is contained in:
parent
d033c7df1a
commit
2f8bd5c457
|
@ -24,6 +24,9 @@
|
||||||
History
|
History
|
||||||
|
|
||||||
$Log: not supported by cvs2svn $
|
$Log: not supported by cvs2svn $
|
||||||
|
Revision 1.28 2005/02/08 12:43:03 ponchio
|
||||||
|
Added copyright
|
||||||
|
|
||||||
|
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
@ -110,8 +113,10 @@ void NexusMt::Render(DrawContest contest) {
|
||||||
Render(extraction, contest);
|
Render(extraction, contest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void NexusMt::Render(Extraction &extraction, DrawContest &contest,
|
void NexusMt::Render(Extraction &extraction, DrawContest &contest,
|
||||||
Stats *stats) {
|
Stats *stats) {
|
||||||
|
static ::GLUquadricObj * spr = gluNewQuadric();
|
||||||
if(stats) stats->Init();
|
if(stats) stats->Init();
|
||||||
|
|
||||||
for(unsigned int i = 0; i < heap.size(); i++) {
|
for(unsigned int i = 0; i < heap.size(); i++) {
|
||||||
|
@ -140,6 +145,16 @@ void NexusMt::Render(Extraction &extraction, DrawContest &contest,
|
||||||
if(extraction.frustum.IsOutside(sphere.Center(), sphere.Radius()))
|
if(extraction.frustum.IsOutside(sphere.Center(), sphere.Radius()))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if(contest.attrs & DrawContest::SPHERES){
|
||||||
|
glPushAttrib(GL_POLYGON_BIT);
|
||||||
|
glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
|
||||||
|
glPushMatrix();
|
||||||
|
glTranslatef(sphere.Center().X(),sphere.Center().Y(),sphere.Center().Z());
|
||||||
|
gluSphere(spr,sphere.Radius(),15,15);
|
||||||
|
glPopMatrix();
|
||||||
|
glPopAttrib();
|
||||||
|
}
|
||||||
|
|
||||||
if(stats) stats->ktri += entry.nface;
|
if(stats) stats->ktri += entry.nface;
|
||||||
|
|
||||||
if(!entry.patch) {
|
if(!entry.patch) {
|
||||||
|
@ -206,7 +221,7 @@ void NexusMt::Draw(unsigned int cell, DrawContest &contest) {
|
||||||
case DrawContest::POINTS:
|
case DrawContest::POINTS:
|
||||||
glDrawArrays(GL_POINTS, 0, patch.nv); break;
|
glDrawArrays(GL_POINTS, 0, patch.nv); break;
|
||||||
case DrawContest::PATCHES:
|
case DrawContest::PATCHES:
|
||||||
glColor3ub((cell * 27)%255, (cell * 37)%255, (cell * 87)%255);
|
glColor3ub((cell * 27)%225 + 30, (cell * 37)%225 + 30, (cell * 87)%225 + 30);
|
||||||
case DrawContest::SMOOTH:
|
case DrawContest::SMOOTH:
|
||||||
if(signature & NXS_FACES)
|
if(signature & NXS_FACES)
|
||||||
glDrawElements(GL_TRIANGLES, patch.nf * 3,
|
glDrawElements(GL_TRIANGLES, patch.nf * 3,
|
||||||
|
|
|
@ -24,6 +24,9 @@
|
||||||
History
|
History
|
||||||
|
|
||||||
$Log: not supported by cvs2svn $
|
$Log: not supported by cvs2svn $
|
||||||
|
Revision 1.22 2005/02/10 09:18:20 ponchio
|
||||||
|
Statistics.
|
||||||
|
|
||||||
Revision 1.21 2005/02/08 12:43:03 ponchio
|
Revision 1.21 2005/02/08 12:43:03 ponchio
|
||||||
Added copyright
|
Added copyright
|
||||||
|
|
||||||
|
@ -49,7 +52,7 @@ namespace nxs {
|
||||||
struct DrawContest {
|
struct DrawContest {
|
||||||
|
|
||||||
enum Mode { POINTS, SMOOTH, XRAY, HIDDEN_LINE, FLAT_WIRE, FLAT, PATCHES };
|
enum Mode { POINTS, SMOOTH, XRAY, HIDDEN_LINE, FLAT_WIRE, FLAT, PATCHES };
|
||||||
enum Attr { COLOR = 0x1, NORMAL = 0x2, TEXTURE = 0x4, DATA = 0x8 };
|
enum Attr { COLOR = 0x1, NORMAL = 0x2, TEXTURE = 0x4, DATA = 0x8, SPHERES = 0x10 };
|
||||||
|
|
||||||
Mode mode;
|
Mode mode;
|
||||||
unsigned int attrs;
|
unsigned int attrs;
|
||||||
|
|
|
@ -24,6 +24,9 @@
|
||||||
History
|
History
|
||||||
|
|
||||||
$Log: not supported by cvs2svn $
|
$Log: not supported by cvs2svn $
|
||||||
|
Revision 1.35 2005/02/14 14:49:09 ponchio
|
||||||
|
*** empty log message ***
|
||||||
|
|
||||||
Revision 1.34 2005/02/14 14:21:24 ponchio
|
Revision 1.34 2005/02/14 14:21:24 ponchio
|
||||||
Preload disabled at startap (-p)
|
Preload disabled at startap (-p)
|
||||||
|
|
||||||
|
@ -292,6 +295,7 @@ int main(int argc, char *argv[]) {
|
||||||
" f: flat shading mode\n"
|
" f: flat shading mode\n"
|
||||||
" m: smooth mode\n"
|
" m: smooth mode\n"
|
||||||
" p: draw points\n"
|
" p: draw points\n"
|
||||||
|
" h: draw bounding spheres\n"
|
||||||
|
|
||||||
" c: show colors\n"
|
" c: show colors\n"
|
||||||
" n: show normals\n"
|
" n: show normals\n"
|
||||||
|
@ -359,6 +363,11 @@ int main(int argc, char *argv[]) {
|
||||||
case SDLK_d: contest.mode = DrawContest::PATCHES; break;
|
case SDLK_d: contest.mode = DrawContest::PATCHES; break;
|
||||||
case SDLK_f: contest.mode = DrawContest::FLAT; break;
|
case SDLK_f: contest.mode = DrawContest::FLAT; break;
|
||||||
case SDLK_m: contest.mode = DrawContest::SMOOTH; break;
|
case SDLK_m: contest.mode = DrawContest::SMOOTH; break;
|
||||||
|
case SDLK_h: if(contest.attrs&DrawContest::SPHERES)
|
||||||
|
contest.attrs &=~DrawContest::SPHERES;
|
||||||
|
else
|
||||||
|
contest.attrs |=DrawContest::SPHERES;
|
||||||
|
break;
|
||||||
|
|
||||||
case SDLK_o: realtime = !realtime; break;
|
case SDLK_o: realtime = !realtime; break;
|
||||||
case SDLK_s: preload = !preload; nexus.SetPreload(preload); break;
|
case SDLK_s: preload = !preload; nexus.SetPreload(preload); break;
|
||||||
|
|
Loading…
Reference in New Issue