# HG changeset patch # User Ben Abbott # Date 1283208845 14400 # Node ID f56255a2b89082b4c96dfc3c2d1b6c83d050332d # Parent 4c1ffaed8caaf06c7ba6abe7bf3b7b2ff8af4397 gl-render.cc: Matlab compatible markers for the OpenGL. diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2010-08-30 Ben Abbott + + * gl-render.cc: Matlab compatible markers for the OpenGL. + 2010-08-30 John W. Eaton * graphics.cc (convert_cdata_1, convert_cdata_2): New functions. diff --git a/src/gl-render.cc b/src/gl-render.cc --- a/src/gl-render.cc +++ b/src/gl-render.cc @@ -3092,12 +3092,14 @@ glEnd (); break; case '.': - glBegin (GL_POLYGON); - glVertex2f (-sz/10, -sz/10); - glVertex2f (-sz/10, sz/10); - glVertex2f (sz/10, sz/10); - glVertex2f (sz/10, -sz/10); - glEnd (); + { + double ang_step = M_PI / 5; + + glBegin (GL_POLYGON); + for (double ang = 0; ang < (2*M_PI); ang += ang_step) + glVertex2d (sz*cos(ang)/6, sz*sin(ang)/6); + glEnd (); + } break; case 's': glBegin ((filled ? GL_POLYGON : GL_LINE_LOOP)); @@ -3153,6 +3155,38 @@ glVertex2f (sz/2, sz/2); glEnd (); break; + case 'p': + { + double ang; + double r; + double dr = 1.0 - sin(M_PI/10)/sin(3*M_PI/10)*1.02; + + glBegin ((filled ? GL_POLYGON : GL_LINE_LOOP)); + for (int i = 0; i < 2*5; i++) + { + ang = (-0.5 + double(i+1)/5) * M_PI; + r = 1.0 - (dr * mod(double(i+1), 2.0)); + glVertex2d (sz*r*cos(ang)/2, sz*r*sin(ang)/2); + } + glEnd (); + } + break; + case 'h': + { + double ang; + double r; + double dr = 1.0 - 0.5/sin(M_PI/3)*1.02; + + glBegin ((filled ? GL_POLYGON : GL_LINE_LOOP)); + for (int i = 0; i < 2*6; i++) + { + ang = (0.5 + double(i+1)/6.0) * M_PI; + r = 1.0 - (dr * mod(double(i+1), 2.0)); + glVertex2d (sz*r*cos(ang)/2, sz*r*sin(ang)/2); + } + glEnd (); + } + break; default: warning ("opengl_renderer: unsupported marker `%s'", marker.c_str ());