24 void DrawMesh(GLenum 
type, 
const std::vector<V> &vs, 
const std::vector<V> &ns,
    25               const std::vector<UInt_t> &fTS)
    27    glEnableClientState(GL_VERTEX_ARRAY);
    28    glEnableClientState(GL_NORMAL_ARRAY);
    29    glVertexPointer(3, type, 0, &vs[0]);
    30    glNormalPointer(type, 0, &ns[0]);
    31    glDrawElements(GL_TRIANGLES, fTS.size(), GL_UNSIGNED_INT, &fTS[0]);
    32    glDisableClientState(GL_NORMAL_ARRAY);
    33    glDisableClientState(GL_VERTEX_ARRAY);
    39 void DrawMesh(
const std::vector<Float_t> &vs, 
const std::vector<Float_t> &ns,
    40               const std::vector<UInt_t> &ts)
    48 void DrawMesh(
const std::vector<Double_t> &vs, 
const std::vector<Double_t> &ns,
    49               const std::vector<UInt_t> &ts)
    58 void DrawMesh(GLenum 
type, 
const std::vector<V> &vs, 
const std::vector<UInt_t> &fTS)
    60    glEnableClientState(GL_VERTEX_ARRAY);
    61    glVertexPointer(3, type, 0, &vs[0]);
    62    glDrawElements(GL_TRIANGLES, fTS.size(), GL_UNSIGNED_INT, &fTS[0]);
    63    glDisableClientState(GL_VERTEX_ARRAY);
    69 void DrawMesh(
const std::vector<Float_t> &vs, 
const std::vector<UInt_t> &ts)
    77 void DrawMesh(
const std::vector<Double_t> &vs, 
const std::vector<UInt_t> &ts)
    86 template<
class V, 
class GLN, 
class GLV>
    87 void DrawMesh(GLN normal3, GLV vertex3, 
const std::vector<V> &vs,
    88               const std::vector<V> &ns, 
const std::vector<UInt_t> &fTS,
    91    glBegin(GL_TRIANGLES);
    93    for (
UInt_t i = 0, 
e = fTS.size() / 3; i < 
e; ++i) {
    94       const UInt_t * t = &fTS[i * 3];
   102       normal3(&ns[t[0] * 3]);
   103       vertex3(&vs[t[0] * 3]);
   105       normal3(&ns[t[1] * 3]);
   106       vertex3(&vs[t[1] * 3]);
   108       normal3(&ns[t[2] * 3]);
   109       vertex3(&vs[t[2] * 3]);
   118 void DrawMesh(
const std::vector<Float_t> &vs, 
const std::vector<Float_t> &ns,
   121    DrawMesh(&glNormal3fv, &glVertex3fv, vs,  ns, ts, box);
   127 void DrawMesh(
const std::vector<Double_t> &vs, 
const std::vector<Double_t> &ns,
   130    DrawMesh(&glNormal3dv, &glVertex3dv, vs, ns, ts, box);
   137 template<
class V, 
class GLV>
   138 void DrawMesh(GLV vertex3, 
const std::vector<V> &vs, 
const std::vector<UInt_t> &fTS,
   141    glBegin(GL_TRIANGLES);
   143    for (
UInt_t i = 0, 
e = fTS.size() / 3; i < 
e; ++i) {
   144       const UInt_t * t = &fTS[i * 3];
   145       if (box.
IsInCut(&vs[t[0] * 3]))
   147       if (box.
IsInCut(&vs[t[1] * 3]))
   149       if (box.
IsInCut(&vs[t[2] * 3]))
   152       vertex3(&vs[t[0] * 3]);
   153       vertex3(&vs[t[1] * 3]);
   154       vertex3(&vs[t[2] * 3]);
   165    DrawMesh(&glVertex3fv, vs, ts, box);
   173    DrawMesh(&glVertex3dv, vs, ts, box);
   184    rfColor[0] = (x > 0. ? 
x : 0.) + (y < 0. ? -0.5 * 
y : 0.) + (z < 0. ? -0.5 * 
z : 0.);
   185    rfColor[1] = (y > 0. ? 
y : 0.) + (z < 0. ? -0.5 * 
z : 0.) + (x < 0. ? -0.5 * 
x : 0.);
   186    rfColor[2] = (z > 0. ? 
z : 0.) + (x < 0. ? -0.5 * 
x : 0.) + (y < 0. ? -0.5 * 
y : 0.);
   192 void DrawMapleMesh(
const std::vector<Double_t> &vs, 
const std::vector<Double_t> &ns,
   193                    const std::vector<UInt_t> &fTS)
   195    Double_t color[] = {0., 0., 0., 0.15};
   197    glBegin(GL_TRIANGLES);
   199    for (
UInt_t i = 0, 
e = fTS.size() / 3; i < 
e; ++i) {
   200       const UInt_t *t = &fTS[i * 3];
   205       glVertex3dv(&vs[t[0] * 3]);
   210       glVertex3dv(&vs[t[1] * 3]);
   215       glVertex3dv(&vs[t[2] * 3]);
   224 void DrawMapleMesh(
const std::vector<Double_t> &vs, 
const std::vector<Double_t> &ns,
   227    Double_t color[] = {0., 0., 0., 0.15};
   229    glBegin(GL_TRIANGLES);
   231    for (
UInt_t i = 0, 
e = fTS.size() / 3; i < 
e; ++i) {
   232       const UInt_t *t = &fTS[i * 3];
   233       if (box.
IsInCut(&vs[t[0] * 3]))
   235       if (box.
IsInCut(&vs[t[1] * 3]))
   237       if (box.
IsInCut(&vs[t[2] * 3]))
   243       glVertex3dv(&vs[t[0] * 3]);
   248       glVertex3dv(&vs[t[1] * 3]);
   253       glVertex3dv(&vs[t[2] * 3]);
 void NormalToColor(Double_t *rfColor, const Double_t *n)
NormalToColor generates a color from a given normal. 
 
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
 
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
 
void DrawMapleMesh(const std::vector< Double_t > &vs, const std::vector< Double_t > &ns, const std::vector< UInt_t > &ts)
Colored mesh with lighting disabled. 
 
you should not use this method at all Int_t Int_t z
 
Used by plot-painters to determine the area of the plot that is cut away. 
 
void DrawMesh(const std::vector< Float_t > &vs, const std::vector< Float_t > &ns, const std::vector< UInt_t > &ts)
Call function-template. 
 
Bool_t IsInCut(Double_t xMin, Double_t xMax, Double_t yMin, Double_t yMax, Double_t zMin, Double_t zMax) const
Check, if box defined by xmin/xmax etc. is in cut.