comparison src/graphics/opengl/gl-render.cc @ 7870:b1823dfd6ec7

style fixes
author John W. Eaton <jwe@octave.org>
date Thu, 05 Jun 2008 01:29:26 -0400
parents 35e8d6199455
children
comparison
equal deleted inserted replaced
7869:e6d5532f760e 7870:b1823dfd6ec7
40 AXE_ANY_DIR = 0, 40 AXE_ANY_DIR = 0,
41 AXE_DEPTH_DIR = 1, 41 AXE_DEPTH_DIR = 1,
42 AXE_HORZ_DIR = 2, 42 AXE_HORZ_DIR = 2,
43 AXE_VERT_DIR = 3 43 AXE_VERT_DIR = 3
44 }; 44 };
45
46 static octave_idx_type
47 xmin (octave_idx_type x, octave_idx_type y)
48 {
49 return x < y ? x : y;
50 }
45 51
46 class 52 class
47 opengl_texture 53 opengl_texture
48 { 54 {
49 protected: 55 protected:
240 246
241 void add_vertex (double *loc, void *data) const 247 void add_vertex (double *loc, void *data) const
242 { gluTessVertex (glu_tess, loc, data); } 248 { gluTessVertex (glu_tess, loc, data); }
243 249
244 protected: 250 protected:
245 virtual void begin (GLenum type) { } 251 virtual void begin (GLenum /*type*/) { }
246 252
247 virtual void end (void) { } 253 virtual void end (void) { }
248 254
249 virtual void vertex (void *data) { } 255 virtual void vertex (void */*data*/) { }
250 256
251 virtual void combine (GLdouble c[3], void *data[4], 257 virtual void combine (GLdouble /*c*/[3], void */*data*/[4],
252 GLfloat w[4], void **out_data) { } 258 GLfloat /*w*/[4], void **/*out_data*/) { }
253 259
254 virtual void edge_flag (GLboolean flag) { } 260 virtual void edge_flag (GLboolean /*flag*/) { }
255 261
256 virtual void error (GLenum err) 262 virtual void error (GLenum err)
257 { ::error ("OpenGL tesselation error (%d)", err); } 263 { ::error ("OpenGL tesselation error (%d)", err); }
258 264
259 virtual void init (void) 265 virtual void init (void)
596 // draw axes object 602 // draw axes object
597 603
598 Matrix xlim = xform.xscale (props.get_xlim ().matrix_value ()); 604 Matrix xlim = xform.xscale (props.get_xlim ().matrix_value ());
599 Matrix ylim = xform.yscale (props.get_ylim ().matrix_value ()); 605 Matrix ylim = xform.yscale (props.get_ylim ().matrix_value ());
600 Matrix zlim = xform.zscale (props.get_zlim ().matrix_value ()); 606 Matrix zlim = xform.zscale (props.get_zlim ().matrix_value ());
601 double xmin = xlim(0), xmax = xlim(1); 607 double x_min = xlim(0), x_max = xlim(1);
602 double ymin = ylim(0), ymax = ylim(1); 608 double y_min = ylim(0), y_max = ylim(1);
603 double zmin = zlim(0), zmax = zlim(1); 609 double z_min = zlim(0), z_max = zlim(1);
604 610
605 double xd = (props.xdir_is ("normal") ? 1 : -1); 611 double xd = (props.xdir_is ("normal") ? 1 : -1);
606 double yd = (props.ydir_is ("normal") ? 1 : -1); 612 double yd = (props.ydir_is ("normal") ? 1 : -1);
607 double zd = (props.zdir_is ("normal") ? 1 : -1); 613 double zd = (props.zdir_is ("normal") ? 1 : -1);
608 614
609 ColumnVector p1, p2, xv (3), yv (3), zv (3); 615 ColumnVector p1, p2, xv (3), yv (3), zv (3);
610 int xstate, ystate, zstate; 616 int xstate, ystate, zstate;
611 617
612 xstate = ystate = zstate = AXE_ANY_DIR; 618 xstate = ystate = zstate = AXE_ANY_DIR;
613 619
614 p1 = xform.transform (xmin, (ymin+ymax)/2, (zmin+zmax)/2, false); 620 p1 = xform.transform (x_min, (y_min+y_max)/2, (z_min+z_max)/2, false);
615 p2 = xform.transform (xmax, (ymin+ymax)/2, (zmin+zmax)/2, false); 621 p2 = xform.transform (x_max, (y_min+y_max)/2, (z_min+z_max)/2, false);
616 xv(0) = xround (p2(0)-p1(0)); 622 xv(0) = xround (p2(0)-p1(0));
617 xv(1) = xround (p2(1)-p1(1)); 623 xv(1) = xround (p2(1)-p1(1));
618 xv(2) = (p2(2)-p1(2)); 624 xv(2) = (p2(2)-p1(2));
619 if (xv(0) == 0 && xv(1) == 0) 625 if (xv(0) == 0 && xv(1) == 0)
620 xstate = AXE_DEPTH_DIR; 626 xstate = AXE_DEPTH_DIR;
626 xstate = AXE_HORZ_DIR; 632 xstate = AXE_HORZ_DIR;
627 } 633 }
628 double xPlane; 634 double xPlane;
629 if (xv(2) == 0) 635 if (xv(2) == 0)
630 if (xv(1) == 0) 636 if (xv(1) == 0)
631 xPlane = (xv(0) > 0 ? xmax : xmin); 637 xPlane = (xv(0) > 0 ? x_max : x_min);
632 else 638 else
633 xPlane = (xv(1) < 0 ? xmax : xmin); 639 xPlane = (xv(1) < 0 ? x_max : x_min);
634 else 640 else
635 xPlane = (xv(2) < 0 ? xmin : xmax); 641 xPlane = (xv(2) < 0 ? x_min : x_max);
636 double xPlaneN = (xPlane == xmin ? xmax : xmin); 642 double xPlaneN = (xPlane == x_min ? x_max : x_min);
637 double fx = (xmax-xmin)/sqrt(xv(0)*xv(0)+xv(1)*xv(1)); 643 double fx = (x_max-x_min)/sqrt(xv(0)*xv(0)+xv(1)*xv(1));
638 644
639 p1 = xform.transform ((xmin+xmax)/2, ymin, (zmin+zmax)/2, false); 645 p1 = xform.transform ((x_min+x_max)/2, y_min, (z_min+z_max)/2, false);
640 p2 = xform.transform ((xmin+xmax)/2, ymax, (zmin+zmax)/2, false); 646 p2 = xform.transform ((x_min+x_max)/2, y_max, (z_min+z_max)/2, false);
641 yv(0) = xround (p2(0)-p1(0)); 647 yv(0) = xround (p2(0)-p1(0));
642 yv(1) = xround (p2(1)-p1(1)); 648 yv(1) = xround (p2(1)-p1(1));
643 yv(2) = (p2(2)-p1(2)); 649 yv(2) = (p2(2)-p1(2));
644 if (yv(0) == 0 && yv(1) == 0) 650 if (yv(0) == 0 && yv(1) == 0)
645 ystate = AXE_DEPTH_DIR; 651 ystate = AXE_DEPTH_DIR;
651 ystate = AXE_HORZ_DIR; 657 ystate = AXE_HORZ_DIR;
652 } 658 }
653 double yPlane; 659 double yPlane;
654 if (yv(2) == 0) 660 if (yv(2) == 0)
655 if (yv(1) == 0) 661 if (yv(1) == 0)
656 yPlane = (yv(0) > 0 ? ymax : ymin); 662 yPlane = (yv(0) > 0 ? y_max : y_min);
657 else 663 else
658 yPlane = (yv(1) < 0 ? ymax : ymin); 664 yPlane = (yv(1) < 0 ? y_max : y_min);
659 else 665 else
660 yPlane = (yv(2) < 0 ? ymin : ymax); 666 yPlane = (yv(2) < 0 ? y_min : y_max);
661 double yPlaneN = (yPlane == ymin ? ymax : ymin); 667 double yPlaneN = (yPlane == y_min ? y_max : y_min);
662 double fy = (ymax-ymin)/sqrt(yv(0)*yv(0)+yv(1)*yv(1)); 668 double fy = (y_max-y_min)/sqrt(yv(0)*yv(0)+yv(1)*yv(1));
663 669
664 p1 = xform.transform((xmin+xmax)/2, (ymin+ymax)/2, zmin, false); 670 p1 = xform.transform((x_min+x_max)/2, (y_min+y_max)/2, z_min, false);
665 p2 = xform.transform((xmin+xmax)/2, (ymin+ymax)/2, zmax, false); 671 p2 = xform.transform((x_min+x_max)/2, (y_min+y_max)/2, z_max, false);
666 zv(0) = xround(p2(0)-p1(0)); 672 zv(0) = xround(p2(0)-p1(0));
667 zv(1) = xround (p2(1)-p1(1)); 673 zv(1) = xround (p2(1)-p1(1));
668 zv(2) = (p2(2)-p1(2)); 674 zv(2) = (p2(2)-p1(2));
669 if (zv(0) == 0 && zv(1) == 0) 675 if (zv(0) == 0 && zv(1) == 0)
670 zstate = AXE_DEPTH_DIR; 676 zstate = AXE_DEPTH_DIR;
676 zstate = AXE_HORZ_DIR; 682 zstate = AXE_HORZ_DIR;
677 } 683 }
678 double zPlane; 684 double zPlane;
679 if (zv(2) == 0) 685 if (zv(2) == 0)
680 if (zv(1) == 0) 686 if (zv(1) == 0)
681 zPlane = (zv(0) > 0 ? zmin : zmax); 687 zPlane = (zv(0) > 0 ? z_min : z_max);
682 else 688 else
683 zPlane = (zv(1) < 0 ? zmin : zmax); 689 zPlane = (zv(1) < 0 ? z_min : z_max);
684 else 690 else
685 zPlane = (zv(2) < 0 ? zmin : zmax); 691 zPlane = (zv(2) < 0 ? z_min : z_max);
686 double zPlaneN = (zPlane == zmin ? zmax : zmin); 692 double zPlaneN = (zPlane == z_min ? z_max : z_min);
687 double fz = (zmax-zmin)/sqrt(zv(0)*zv(0)+zv(1)*zv(1)); 693 double fz = (z_max-z_min)/sqrt(zv(0)*zv(0)+zv(1)*zv(1));
688 694
689 bool mode2d = (((xstate > AXE_DEPTH_DIR ? 1 : 0) + 695 bool mode2d = (((xstate > AXE_DEPTH_DIR ? 1 : 0) +
690 (ystate > AXE_DEPTH_DIR ? 1 : 0) + 696 (ystate > AXE_DEPTH_DIR ? 1 : 0) +
691 (zstate > AXE_DEPTH_DIR ? 1 : 0)) == 2); 697 (zstate > AXE_DEPTH_DIR ? 1 : 0)) == 2);
692 if (props.tickdirmode_is ("auto")) 698 if (props.tickdirmode_is ("auto"))
747 set_polygon_offset (true, 2.5); 753 set_polygon_offset (true, 2.5);
748 754
749 glBegin (GL_QUADS); 755 glBegin (GL_QUADS);
750 756
751 // X plane 757 // X plane
752 glVertex3d (xPlane, ymin, zmin); 758 glVertex3d (xPlane, y_min, z_min);
753 glVertex3d (xPlane, ymax, zmin); 759 glVertex3d (xPlane, y_max, z_min);
754 glVertex3d (xPlane, ymax, zmax); 760 glVertex3d (xPlane, y_max, z_max);
755 glVertex3d (xPlane, ymin, zmax); 761 glVertex3d (xPlane, y_min, z_max);
756 762
757 // Y plane 763 // Y plane
758 glVertex3d (xmin, yPlane, zmin); 764 glVertex3d (x_min, yPlane, z_min);
759 glVertex3d (xmax, yPlane, zmin); 765 glVertex3d (x_max, yPlane, z_min);
760 glVertex3d (xmax, yPlane, zmax); 766 glVertex3d (x_max, yPlane, z_max);
761 glVertex3d (xmin, yPlane, zmax); 767 glVertex3d (x_min, yPlane, z_max);
762 768
763 // Z plane 769 // Z plane
764 glVertex3d (xmin, ymin, zPlane); 770 glVertex3d (x_min, y_min, zPlane);
765 glVertex3d (xmax, ymin, zPlane); 771 glVertex3d (x_max, y_min, zPlane);
766 glVertex3d (xmax, ymax, zPlane); 772 glVertex3d (x_max, y_max, zPlane);
767 glVertex3d (xmin, ymax, zPlane); 773 glVertex3d (x_min, y_max, zPlane);
768 774
769 glEnd (); 775 glEnd ();
770 776
771 set_polygon_offset (false); 777 set_polygon_offset (false);
772 } 778 }
2188 Matrix v = xform.scale (props.get_vertices ().matrix_value ()); 2194 Matrix v = xform.scale (props.get_vertices ().matrix_value ());
2189 Matrix c; 2195 Matrix c;
2190 Matrix n = props.get_vertexnormals ().matrix_value (); 2196 Matrix n = props.get_vertexnormals ().matrix_value ();
2191 Matrix a; 2197 Matrix a;
2192 2198
2193 int nv = v.rows (), vmax = v.columns (); 2199 int nv = v.rows ();
2194 int nf = f.rows (), fcmax = f.columns (); 2200 // int vmax = v.columns ();
2201 int nf = f.rows ();
2202 int fcmax = f.columns ();
2195 2203
2196 bool has_z = (v.columns () > 2); 2204 bool has_z = (v.columns () > 2);
2197 bool has_facecolor = false; 2205 bool has_facecolor = false;
2198 bool has_facealpha = false; 2206 bool has_facealpha = false;
2199 2207