44 glBegin(GL_LINE_LOOP);
46 Int_t nPoints =
b.fFrameSize / 3;
47 for (
Int_t i = 0; i < nPoints; ++i, p += 3)
58 glVertex3fv(p); glVertex3fv(p + 3);
59 glVertex3fv(p + 6); glVertex3fv(p + 9);
63 glVertex3fv(p + 21); glVertex3fv(p + 18);
64 glVertex3fv(p + 15); glVertex3fv(p + 12);
68 glVertex3fv(p); glVertex3fv(p + 12);
69 glVertex3fv(p + 15); glVertex3fv(p + 3);
73 glVertex3fv(p + 9); glVertex3fv(p + 6);
74 glVertex3fv(p + 18); glVertex3fv(p + 21);
78 glVertex3fv(p); glVertex3fv(p + 9);
79 glVertex3fv(p + 21); glVertex3fv(p + 12);
83 glVertex3fv(p + 3); glVertex3fv(p + 15);
84 glVertex3fv(p + 18); glVertex3fv(p + 6);
89 glBegin(GL_LINE_STRIP);
90 glVertex3fv(p); glVertex3fv(p + 3);
91 glVertex3fv(p + 6); glVertex3fv(p + 9);
93 glVertex3fv(p + 12); glVertex3fv(p + 15);
94 glVertex3fv(p + 18); glVertex3fv(p + 21);
98 glVertex3fv(p + 3); glVertex3fv(p + 15);
99 glVertex3fv(p + 6); glVertex3fv(p + 18);
100 glVertex3fv(p + 9); glVertex3fv(p + 21);
113 glPushAttrib(GL_POLYGON_BIT | GL_LINE_BIT | GL_ENABLE_BIT);
115 glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
116 glEnable(GL_COLOR_MATERIAL);
117 glDisable(GL_CULL_FACE);
122 glGetBooleanv(GL_LIGHT_MODEL_TWO_SIDE, &lmts);
123 if (!lmts) glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
125 glEnable(GL_POLYGON_OFFSET_FILL);
126 glPolygonOffset(2, 2);
127 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
129 if (
b.fBackRGBA[3] < 255)
132 glDepthMask(GL_FALSE);
138 if (!lmts) glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE);
141 glDisable(GL_LIGHTING);
142 glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
144 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
145 glEnable(GL_LINE_SMOOTH);
T * Normal2Plane(const T v1[3], const T v2[3], const T v3[3], T normal[3])
Calculates a normal vector of a plane.