// QuadSet
//
// Supports various internal formats that result in rendering of a
-// set of rectangular objects.
+// set of planar (lines, rectangles, hegagons with shared normal) objects.
+//
+// Names of internal structures and their variables use A, B and C as
+// names for coordinate value-holders. Typical assignment is A->X,
+// B->Y, C->Z but each render mode can override this convention and
+// impose y or x as a fixed (third or C) coordinate. Alphabetic order
+// is obeyed in this correspondence.
//
-// Names of internal structures and their variables use fixed
-// assignment to x, z, y coordinates; the render types can override
-// this convention and impose Y as a fixed coordinate.
// For quad modes the deltas are expected to be positive.
// For line modes negative deltas are ok.
switch (qt) {
case QT_Undef: return 0;
case QT_FreeQuad: return sizeof(QFreeQuad);
- case QT_RectangleXY: return sizeof(QRect);
+ case QT_RectangleXY:
+ case QT_RectangleXZ:
+ case QT_RectangleYZ: return sizeof(QRect);
case QT_RectangleXYFixedDim: return sizeof(QRectFixDim);
+ case QT_RectangleXYFixedZ:
case QT_RectangleXZFixedY:
- case QT_RectangleXYFixedZ: return sizeof(QRectFixC);
+ case QT_RectangleYZFixedX: return sizeof(QRectFixC);
+ case QT_RectangleXYFixedDimZ:
case QT_RectangleXZFixedDimY:
- case QT_RectangleXYFixedDimZ: return sizeof(QRectFixDimC);
+ case QT_RectangleYZFixedDimX: return sizeof(QRectFixDimC);
case QT_LineXZFixedY:
case QT_LineXYFixedZ: return sizeof(QLineFixC);
case QT_HexagonXY:
memcpy(fq->fVertices, verts, sizeof(fq->fVertices));
}
-void QuadSet::AddQuad(Float_t x, Float_t y)
+void QuadSet::AddQuad(Float_t a, Float_t b)
{
- AddQuad(x, y, fDefCoord, fDefWidth, fDefHeight);
+ AddQuad(a, b, fDefCoord, fDefWidth, fDefHeight);
}
-void QuadSet::AddQuad(Float_t x, Float_t y, Float_t z)
+void QuadSet::AddQuad(Float_t a, Float_t b, Float_t c)
{
- AddQuad(x, y, z, fDefWidth, fDefHeight);
+ AddQuad(a, b, c, fDefWidth, fDefHeight);
}
-void QuadSet::AddQuad(Float_t x, Float_t y, Float_t w, Float_t h)
+void QuadSet::AddQuad(Float_t a, Float_t b, Float_t w, Float_t h)
{
- AddQuad(x, y, fDefCoord, w, h);
+ AddQuad(a, b, fDefCoord, w, h);
}
-void QuadSet::AddQuad(Float_t x, Float_t y, Float_t z, Float_t w, Float_t h)
+void QuadSet::AddQuad(Float_t a, Float_t b, Float_t c, Float_t w, Float_t h)
{
static const Exc_t eH("QuadSet::AddAAQuad ");
QOrigin& fq = * (QOrigin*) NewQuad();
- fq.fX = x; fq.fY = y;
+ fq.fA = a; fq.fB = b;
switch (fQuadType)
{
- case QT_RectangleXY: {
+ case QT_RectangleXY:
+ case QT_RectangleXZ:
+ case QT_RectangleYZ: {
QRect& q = (QRect&) fq;
- q.fZ = z; q.fW = w; q.fH = h;
+ q.fC = c; q.fW = w; q.fH = h;
break;
}
case QT_RectangleXYFixedDim: {
QRectFixDim& q = (QRectFixDim&) fq;
- q.fZ = z;
+ q.fC = c;
break;
}
+ case QT_RectangleXYFixedZ:
case QT_RectangleXZFixedY:
- case QT_RectangleXYFixedZ: {
+ case QT_RectangleYZFixedX: {
QRectFixC& q = (QRectFixC&) fq;
q.fW = w; q.fH = h;
break;
}
+ case QT_RectangleXYFixedDimZ:
case QT_RectangleXZFixedDimY:
- case QT_RectangleXYFixedDimZ: {
+ case QT_RectangleYZFixedDimX: {
break;
}
default:
}
}
-void QuadSet::AddLine(Float_t x, Float_t y, Float_t w, Float_t h)
+void QuadSet::AddLine(Float_t a, Float_t b, Float_t w, Float_t h)
{
static const Exc_t eH("QuadSet::AddLine ");
QOrigin& fq = * (QOrigin*) NewQuad();
- fq.fX = x; fq.fY = y;
+ fq.fA = a; fq.fB = b;
switch (fQuadType)
{
case QT_LineXZFixedY:
}
}
-void QuadSet::AddHexagon(Float_t x, Float_t y, Float_t z, Float_t r)
+void QuadSet::AddHexagon(Float_t a, Float_t b, Float_t c, Float_t r)
{
static const Exc_t eH("QuadSet::AddHexagon ");
QOrigin& fq = * (QOrigin*) NewQuad();
- fq.fX = x; fq.fY = y;
+ fq.fA = a; fq.fB = b;
switch (fQuadType)
{
case QT_HexagonXY:
case QT_HexagonYX: {
QHex& q = (QHex&) fq;
- q.fZ = z; q.fR = r;
+ q.fC = c; q.fR = r;
break;
}
default:
fBBox[2] = fDefCoord;
fBBox[3] = fDefCoord;
}
+ else if (fQuadType == QT_RectangleYZFixedX ||
+ fQuadType == QT_RectangleYZFixedDimX)
+ {
+ fBBox[0] = fDefCoord;
+ fBBox[1] = fDefCoord;
+ }
VoidCPlex::iterator qi(fPlex);
{
while (qi.next()) {
QRect& q = * (QRect*) qi();
- if(q.fX < fBBox[0]) fBBox[0] = q.fX;
- if(q.fX + q.fW > fBBox[1]) fBBox[1] = q.fX + q.fW;
- if(q.fY < fBBox[2]) fBBox[2] = q.fY;
- if(q.fY + q.fH > fBBox[3]) fBBox[3] = q.fY + q.fH;
- if(q.fZ < fBBox[4]) fBBox[4] = q.fZ;
- if(q.fZ > fBBox[5]) fBBox[5] = q.fZ;
+ if(q.fA < fBBox[0]) fBBox[0] = q.fA;
+ if(q.fA + q.fW > fBBox[1]) fBBox[1] = q.fA + q.fW;
+ if(q.fB < fBBox[2]) fBBox[2] = q.fB;
+ if(q.fB + q.fH > fBBox[3]) fBBox[3] = q.fB + q.fH;
+ if(q.fC < fBBox[4]) fBBox[4] = q.fC;
+ if(q.fC > fBBox[5]) fBBox[5] = q.fC;
+ }
+ break;
+ }
+
+ case QT_RectangleXZ:
+ {
+ while (qi.next()) {
+ QRect& q = * (QRect*) qi();
+ if(q.fA < fBBox[0]) fBBox[0] = q.fA;
+ if(q.fA + q.fW > fBBox[1]) fBBox[1] = q.fA + q.fW;
+ if(q.fB < fBBox[4]) fBBox[4] = q.fB;
+ if(q.fB + q.fH > fBBox[5]) fBBox[5] = q.fB + q.fH;
+ if(q.fC < fBBox[2]) fBBox[2] = q.fC;
+ if(q.fC > fBBox[3]) fBBox[3] = q.fC;
+ }
+ break;
+ }
+
+ case QT_RectangleYZ:
+ {
+ while (qi.next()) {
+ QRect& q = * (QRect*) qi();
+ if(q.fA < fBBox[2]) fBBox[2] = q.fA;
+ if(q.fA + q.fW > fBBox[3]) fBBox[3] = q.fA + q.fW;
+ if(q.fB < fBBox[4]) fBBox[4] = q.fB;
+ if(q.fB + q.fH > fBBox[5]) fBBox[5] = q.fB + q.fH;
+ if(q.fC < fBBox[0]) fBBox[0] = q.fC;
+ if(q.fC > fBBox[1]) fBBox[1] = q.fC;
}
break;
}
const Float_t& h = fDefHeight;
while (qi.next()) {
QRectFixDim& q = * (QRectFixDim*) qi();
- if(q.fX < fBBox[0]) fBBox[0] = q.fX;
- if(q.fX + w > fBBox[1]) fBBox[1] = q.fX + w;
- if(q.fY < fBBox[2]) fBBox[2] = q.fY;
- if(q.fY + h > fBBox[3]) fBBox[3] = q.fY + h;
- if(q.fZ < fBBox[4]) fBBox[4] = q.fZ;
- if(q.fZ > fBBox[5]) fBBox[5] = q.fZ;
+ if(q.fA < fBBox[0]) fBBox[0] = q.fA;
+ if(q.fA + w > fBBox[1]) fBBox[1] = q.fA + w;
+ if(q.fB < fBBox[2]) fBBox[2] = q.fB;
+ if(q.fB + h > fBBox[3]) fBBox[3] = q.fB + h;
+ if(q.fC < fBBox[4]) fBBox[4] = q.fC;
+ if(q.fC > fBBox[5]) fBBox[5] = q.fC;
}
break;
}
{
while (qi.next()) {
QRectFixC& q = * (QRectFixC*) qi();
- if(q.fX < fBBox[0]) fBBox[0] = q.fX;
- if(q.fX + q.fW > fBBox[1]) fBBox[1] = q.fX + q.fW;
- if(q.fY < fBBox[2]) fBBox[2] = q.fY;
- if(q.fY + q.fH > fBBox[3]) fBBox[3] = q.fY + q.fH;
+ if(q.fA < fBBox[0]) fBBox[0] = q.fA;
+ if(q.fA + q.fW > fBBox[1]) fBBox[1] = q.fA + q.fW;
+ if(q.fB < fBBox[2]) fBBox[2] = q.fB;
+ if(q.fB + q.fH > fBBox[3]) fBBox[3] = q.fB + q.fH;
}
break;
}
{
while (qi.next()) {
QRectFixC& q = * (QRectFixC*) qi();
- if(q.fX < fBBox[0]) fBBox[0] = q.fX;
- if(q.fX + q.fW > fBBox[1]) fBBox[1] = q.fX + q.fW;
- if(q.fY < fBBox[4]) fBBox[4] = q.fY;
- if(q.fY + q.fH > fBBox[5]) fBBox[5] = q.fY + q.fH;
+ if(q.fA < fBBox[0]) fBBox[0] = q.fA;
+ if(q.fA + q.fW > fBBox[1]) fBBox[1] = q.fA + q.fW;
+ if(q.fB < fBBox[4]) fBBox[4] = q.fB;
+ if(q.fB + q.fH > fBBox[5]) fBBox[5] = q.fB + q.fH;
+ }
+ break;
+ }
+
+ case QT_RectangleYZFixedX:
+ {
+ while (qi.next()) {
+ QRectFixC& q = * (QRectFixC*) qi();
+ if(q.fA < fBBox[2]) fBBox[2] = q.fA;
+ if(q.fA + q.fW > fBBox[3]) fBBox[3] = q.fA + q.fW;
+ if(q.fB < fBBox[4]) fBBox[4] = q.fB;
+ if(q.fB + q.fH > fBBox[5]) fBBox[5] = q.fB + q.fH;
}
break;
}
const Float_t& h = fDefHeight;
while (qi.next()) {
QRectFixDimC& q = * (QRectFixDimC*) qi();
- if(q.fX < fBBox[0]) fBBox[0] = q.fX;
- if(q.fX + w > fBBox[1]) fBBox[1] = q.fX + w;
- if(q.fY < fBBox[2]) fBBox[2] = q.fY;
- if(q.fY + h > fBBox[3]) fBBox[3] = q.fY + h;
+ if(q.fA < fBBox[0]) fBBox[0] = q.fA;
+ if(q.fA + w > fBBox[1]) fBBox[1] = q.fA + w;
+ if(q.fB < fBBox[2]) fBBox[2] = q.fB;
+ if(q.fB + h > fBBox[3]) fBBox[3] = q.fB + h;
}
break;
}
const Float_t& h = fDefHeight;
while (qi.next()) {
QRectFixDimC& q = * (QRectFixDimC*) qi();
- if(q.fX < fBBox[0]) fBBox[0] = q.fX;
- if(q.fX + w > fBBox[1]) fBBox[1] = q.fX + w;
- if(q.fY < fBBox[4]) fBBox[4] = q.fY;
- if(q.fY + h > fBBox[5]) fBBox[5] = q.fY + h;
+ if(q.fA < fBBox[0]) fBBox[0] = q.fA;
+ if(q.fA + w > fBBox[1]) fBBox[1] = q.fA + w;
+ if(q.fB < fBBox[4]) fBBox[4] = q.fB;
+ if(q.fB + h > fBBox[5]) fBBox[5] = q.fB + h;
}
break;
}
+ case QT_RectangleYZFixedDimX:
+ {
+ const Float_t& w = fDefWidth;
+ const Float_t& h = fDefHeight;
+ while (qi.next()) {
+ QRectFixDimC& q = * (QRectFixDimC*) qi();
+ if(q.fA < fBBox[2]) fBBox[2] = q.fA;
+ if(q.fA + w > fBBox[3]) fBBox[3] = q.fA + w;
+ if(q.fB < fBBox[4]) fBBox[4] = q.fB;
+ if(q.fB + h > fBBox[5]) fBBox[5] = q.fB + h;
+ }
+ break;
+ }
+
+ // Line modes
+
case QT_LineXYFixedZ:
{
while (qi.next()) {
QLineFixC& q = * (QLineFixC*) qi();
- BBoxCheckPoint(q.fX, q.fY, fDefCoord);
- BBoxCheckPoint(q.fX + q.fDx, q.fY + q.fDy, fDefCoord);
+ BBoxCheckPoint(q.fA, q.fB, fDefCoord);
+ BBoxCheckPoint(q.fA + q.fDx, q.fB + q.fDy, fDefCoord);
}
break;
}
{
while (qi.next()) {
QLineFixC& q = * (QLineFixC*) qi();
- BBoxCheckPoint(q.fX, fDefCoord, q.fY);
- BBoxCheckPoint(q.fX + q.fDx, fDefCoord, q.fY + q.fDy);
+ BBoxCheckPoint(q.fA, fDefCoord, q.fB);
+ BBoxCheckPoint(q.fA + q.fDx, fDefCoord, q.fB + q.fDy);
}
break;
}
+ // Hexagon modes
+
// Ignore 'slight' difference, assume square box for both cases.
case QT_HexagonXY:
case QT_HexagonYX:
{
while (qi.next()) {
QHex& q = * (QHex*) qi();
- BBoxCheckPoint(q.fX-q.fR, q.fY-q.fR, q.fZ);
- BBoxCheckPoint(q.fX+q.fR, q.fY+q.fR, q.fZ);
+ BBoxCheckPoint(q.fA-q.fR, q.fB-q.fR, q.fC);
+ BBoxCheckPoint(q.fA+q.fR, q.fB+q.fR, q.fC);
}
break;
}
QT_Undef, // unknown-ignored
QT_FreeQuad, // arbitrary quad: specify 4*(x,y,z) quad corners
QT_RectangleXY, // rectangle in x-y plane: specify x, y, z, w, h
+ QT_RectangleXZ, // rectangle in x-z plane: specify x, y, z, w, h
+ QT_RectangleYZ, // rectangle in y-z plane: specify x, y, z, w, h
QT_RectangleXYFixedDim, // rectangle in x-y plane: specify x, y, z; w, h taken from fDefWidth/Height
QT_RectangleXYFixedZ, // rectangle in x-y plane: specify x, y, w, h; z taken from fDefCoord
QT_RectangleXZFixedY, // rectangle in x-z plane: specify x, z, w, h; y taken from fDefCoord
+ QT_RectangleYZFixedX, // rectangle in y-z plane: specify y, z, w, h; x taken from fDefWidth/Height/Coord
QT_RectangleXYFixedDimZ, // rectangle in x-y plane: specify x, y; w, h, z taken from fDefWidth/Height/Coord
QT_RectangleXZFixedDimY, // rectangle in x-z plane: specify x, z; w, h, y taken from fDefWidth/Height/Coord
+ QT_RectangleYZFixedDimX, // rectangle in y-z plane: specify y, z; w, h, x taken from fDefWidth/Height/Coord
QT_Rectangle_End,
// line modes (needed for uniform handling of silicon-strip digits)
QT_LineXYFixedZ, // line in x-y plane: specify x, y, w(dx), h(dy); z taken from fDefCoord
struct QFreeQuad : public QuadBase { Float_t fVertices[12]; };
- struct QOrigin : public QuadBase { Float_t fX, fY; };
+ struct QOrigin : public QuadBase { Float_t fA, fB; };
struct QRectFixDimC : public QOrigin { };
- struct QRectFixDim : public QRectFixDimC { Float_t fZ; };
+ struct QRectFixDim : public QRectFixDimC { Float_t fC; };
struct QRectFixC : public QRectFixDimC { Float_t fW, fH; };
struct QLineFixC : public QOrigin { Float_t fDx, fDy; };
- struct QHex : public QOrigin { Float_t fZ, fR; };
+ struct QHex : public QOrigin { Float_t fC, fR; };
protected:
QuadType_e fQuadType;
VoidCPlex fPlex;
QuadBase* fLastQuad; //!
- Float_t fDefWidth;
- Float_t fDefHeight;
- Float_t fDefCoord;
+ Float_t fDefWidth; // Breadth assigned to first coordinate (A)
+ Float_t fDefHeight; // Breadth assigned to second coordinate (B)
+ Float_t fDefCoord; // Default value for third coordinate (C)
FrameBox* fFrame;
RGBAPalette* fPalette;
void AddQuad(Float_t* verts);
- void AddQuad(Float_t x, Float_t y);
- void AddQuad(Float_t x, Float_t y, Float_t z);
- void AddQuad(Float_t x, Float_t y, Float_t w, Float_t h);
- void AddQuad(Float_t x, Float_t y, Float_t z, Float_t w, Float_t h);
+ void AddQuad(Float_t a, Float_t b);
+ void AddQuad(Float_t a, Float_t b, Float_t c);
+ void AddQuad(Float_t a, Float_t b, Float_t w, Float_t h);
+ void AddQuad(Float_t a, Float_t b, Float_t c, Float_t w, Float_t h);
- void AddLine(Float_t x, Float_t y, Float_t w, Float_t h);
+ void AddLine(Float_t a, Float_t b, Float_t w, Float_t h);
- void AddHexagon(Float_t x, Float_t y, Float_t z, Float_t r);
+ void AddHexagon(Float_t a, Float_t b, Float_t z, Float_t r);
void QuadValue(Int_t value);
void QuadColor(Color_t ci);
{
if (flags.SecSelection()) glLoadName(qi.index());
glBegin(primitiveType);
- glVertex3f(q.fX, q.fY, q.fZ);
- glVertex3f(q.fX + q.fW, q.fY, q.fZ);
- glVertex3f(q.fX + q.fW, q.fY + q.fH, q.fZ);
- glVertex3f(q.fX, q.fY + q.fH, q.fZ);
+ glVertex3f(q.fA, q.fB, q.fC);
+ glVertex3f(q.fA + q.fW, q.fB, q.fC);
+ glVertex3f(q.fA + q.fW, q.fB + q.fH, q.fC);
+ glVertex3f(q.fA, q.fB + q.fH, q.fC);
+ glEnd();
+ }
+ }
+ break;
+ }
+
+ case QuadSet::QT_RectangleXZ:
+ {
+ while (qi.next()) {
+ QuadSet::QRect& q = * (QuadSet::QRect*) qi();
+ if (SetupColor(q))
+ {
+ if (flags.SecSelection()) glLoadName(qi.index());
+ glBegin(primitiveType);
+ glVertex3f(q.fA, q.fC, q.fB);
+ glVertex3f(q.fA + q.fW, q.fC, q.fB);
+ glVertex3f(q.fA + q.fW, q.fC, q.fB + q.fH);
+ glVertex3f(q.fA, q.fC, q.fB + q.fH);
+ glEnd();
+ }
+ }
+ break;
+ }
+
+ case QuadSet::QT_RectangleYZ:
+ {
+ while (qi.next()) {
+ QuadSet::QRect& q = * (QuadSet::QRect*) qi();
+ if (SetupColor(q))
+ {
+ if (flags.SecSelection()) glLoadName(qi.index());
+ glBegin(primitiveType);
+ glVertex3f(q.fC, q.fA, q.fB);
+ glVertex3f(q.fC, q.fA + q.fW, q.fB);
+ glVertex3f(q.fC, q.fA + q.fW, q.fB + q.fH);
+ glVertex3f(q.fC, q.fA, q.fB + q.fH);
glEnd();
}
}
{
if (flags.SecSelection()) glLoadName(qi.index());
glBegin(primitiveType);
- glVertex3f(q.fX, q.fY, q.fZ);
- glVertex3f(q.fX + w, q.fY, q.fZ);
- glVertex3f(q.fX + w, q.fY + h, q.fZ);
- glVertex3f(q.fX, q.fY + h, q.fZ);
+ glVertex3f(q.fA, q.fB, q.fC);
+ glVertex3f(q.fA + w, q.fB, q.fC);
+ glVertex3f(q.fA + w, q.fB + h, q.fC);
+ glVertex3f(q.fA, q.fB + h, q.fC);
glEnd();
}
}
{
if (flags.SecSelection()) glLoadName(qi.index());
glBegin(primitiveType);
- glVertex3f(q.fX, q.fY, z);
- glVertex3f(q.fX + q.fW, q.fY, z);
- glVertex3f(q.fX + q.fW, q.fY + q.fH, z);
- glVertex3f(q.fX, q.fY + q.fH, z);
+ glVertex3f(q.fA, q.fB, z);
+ glVertex3f(q.fA + q.fW, q.fB, z);
+ glVertex3f(q.fA + q.fW, q.fB + q.fH, z);
+ glVertex3f(q.fA, q.fB + q.fH, z);
glEnd();
}
}
case QuadSet::QT_RectangleXZFixedY:
{
- const Float_t& z = mQ.fDefCoord;
+ const Float_t& y = mQ.fDefCoord;
+ while (qi.next()) {
+ QuadSet::QRectFixC& q = * (QuadSet::QRectFixC*) qi();
+ if (SetupColor(q))
+ {
+ if (flags.SecSelection()) glLoadName(qi.index());
+ glBegin(primitiveType);
+ glVertex3f(q.fA, y, q.fB);
+ glVertex3f(q.fA + q.fW, y, q.fB);
+ glVertex3f(q.fA + q.fW, y, q.fB + q.fH);
+ glVertex3f(q.fA, y, q.fB + q.fH);
+ glEnd();
+ }
+ }
+ break;
+ }
+
+ case QuadSet::QT_RectangleYZFixedX:
+ {
+ const Float_t& x = mQ.fDefCoord;
while (qi.next()) {
QuadSet::QRectFixC& q = * (QuadSet::QRectFixC*) qi();
if (SetupColor(q))
{
if (flags.SecSelection()) glLoadName(qi.index());
glBegin(primitiveType);
- glVertex3f(q.fX, z, q.fY);
- glVertex3f(q.fX + q.fW, z, q.fY);
- glVertex3f(q.fX + q.fW, z, q.fY + q.fH);
- glVertex3f(q.fX, z, q.fY + q.fH);
+ glVertex3f(x, q.fA, q.fB);
+ glVertex3f(x, q.fA + q.fW, q.fB);
+ glVertex3f(x, q.fA + q.fW, q.fB + q.fH);
+ glVertex3f(x, q.fA, q.fB + q.fH);
glEnd();
}
}
{
if (flags.SecSelection()) glLoadName(qi.index());
glBegin(primitiveType);
- glVertex3f(q.fX, q.fY, z);
- glVertex3f(q.fX + w, q.fY, z);
- glVertex3f(q.fX + w, q.fY + h, z);
- glVertex3f(q.fX, q.fY + h, z);
+ glVertex3f(q.fA, q.fB, z);
+ glVertex3f(q.fA + w, q.fB, z);
+ glVertex3f(q.fA + w, q.fB + h, z);
+ glVertex3f(q.fA, q.fB + h, z);
glEnd();
}
}
case QuadSet::QT_RectangleXZFixedDimY:
{
- const Float_t& z = mQ.fDefCoord;
+ const Float_t& y = mQ.fDefCoord;
+ const Float_t& w = mQ.fDefWidth;
+ const Float_t& h = mQ.fDefHeight;
+ while (qi.next()) {
+ QuadSet::QRectFixDimC& q = * (QuadSet::QRectFixDimC*) qi();
+ if (SetupColor(q))
+ {
+ if (flags.SecSelection()) glLoadName(qi.index());
+ glBegin(primitiveType);
+ glVertex3f(q.fA, y, q.fB);
+ glVertex3f(q.fA + w, y, q.fB);
+ glVertex3f(q.fA + w, y, q.fB + h);
+ glVertex3f(q.fA, y, q.fB + h);
+ glEnd();
+ }
+ }
+ break;
+ }
+
+ case QuadSet::QT_RectangleYZFixedDimX:
+ {
+ const Float_t& x = mQ.fDefCoord;
const Float_t& w = mQ.fDefWidth;
const Float_t& h = mQ.fDefHeight;
while (qi.next()) {
{
if (flags.SecSelection()) glLoadName(qi.index());
glBegin(primitiveType);
- glVertex3f(q.fX, z, q.fY);
- glVertex3f(q.fX + w, z, q.fY);
- glVertex3f(q.fX + w, z, q.fY + h);
- glVertex3f(q.fX, z, q.fY + h);
+ glVertex3f(x, q.fA, q.fB);
+ glVertex3f(x, q.fA + w, q.fB);
+ glVertex3f(x, q.fA + w, q.fB + h);
+ glVertex3f(x, q.fA, q.fB + h);
glEnd();
}
}
{
if (flags.SecSelection()) glLoadName(qi.index());
glBegin(GL_LINES);
- glVertex3f(q.fX, q.fY, z);
- glVertex3f(q.fX + q.fDx, q.fY + q.fDy, z);
+ glVertex3f(q.fA, q.fB, z);
+ glVertex3f(q.fA + q.fDx, q.fB + q.fDy, z);
glEnd();
}
}
{
if (flags.SecSelection()) glLoadName(qi.index());
glBegin(GL_LINES);
- glVertex3f(q.fX, z, q.fY);
- glVertex3f(q.fX + q.fDx, z, q.fY + q.fDy);
+ glVertex3f(q.fA, z, q.fB);
+ glVertex3f(q.fA + q.fDx, z, q.fB + q.fDy);
glEnd();
}
}
const Float_t rs = q.fR * sqr3hf;
if (flags.SecSelection()) glLoadName(qi.index());
glBegin(primitveType);
- glVertex3f( q.fR + q.fX, q.fY, q.fZ);
- glVertex3f( rh + q.fX, rs + q.fY, q.fZ);
- glVertex3f( -rh + q.fX, rs + q.fY, q.fZ);
- glVertex3f(-q.fR + q.fX, q.fY, q.fZ);
- glVertex3f( -rh + q.fX, -rs + q.fY, q.fZ);
- glVertex3f( rh + q.fX, -rs + q.fY, q.fZ);
+ glVertex3f( q.fR + q.fA, q.fB, q.fC);
+ glVertex3f( rh + q.fA, rs + q.fB, q.fC);
+ glVertex3f( -rh + q.fA, rs + q.fB, q.fC);
+ glVertex3f(-q.fR + q.fA, q.fB, q.fC);
+ glVertex3f( -rh + q.fA, -rs + q.fB, q.fC);
+ glVertex3f( rh + q.fA, -rs + q.fB, q.fC);
glEnd();
}
}
const Float_t rs = q.fR * sqr3hf;
if (flags.SecSelection()) glLoadName(qi.index());
glBegin(primitveType);
- glVertex3f( rs + q.fX, rh + q.fY, q.fZ);
- glVertex3f( q.fX, q.fR + q.fY, q.fZ);
- glVertex3f(-rs + q.fX, rh + q.fY, q.fZ);
- glVertex3f(-rs + q.fX, -rh + q.fY, q.fZ);
- glVertex3f( q.fX, -q.fR + q.fY, q.fZ);
- glVertex3f( rs + q.fX, -rh + q.fY, q.fZ);
+ glVertex3f( rs + q.fA, rh + q.fB, q.fC);
+ glVertex3f( q.fA, q.fR + q.fB, q.fC);
+ glVertex3f(-rs + q.fA, rh + q.fB, q.fC);
+ glVertex3f(-rs + q.fA, -rh + q.fB, q.fC);
+ glVertex3f( q.fA, -q.fR + q.fB, q.fC);
+ glVertex3f( rs + q.fA, -rh + q.fB, q.fC);
glEnd();
}
}