Select Git revision
Forked from
gmsh / gmsh
Source project has a limited visibility.
Scale.cpp 9.98 KiB
// $Id: Scale.cpp,v 1.68 2007-09-15 16:57:28 geuzaine Exp $
//
// Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to <gmsh@geuz.org>.
#include "GmshUI.h"
#include "Draw.h"
#include "PView.h"
#include "Context.h"
#include "gl2ps.h"
extern Context_T CTX;
static void drawScaleBar(PView *p, double xmin, double ymin, double width,
double height, double tic, int horizontal)
{
PViewOptions *opt = p->getOptions();
double box = (horizontal ? width : height) / (opt->NbIso ? opt->NbIso : 1);
for(int i = 0; i < opt->NbIso; i++) {
if(opt->IntervalsType == PViewOptions::Discrete){
unsigned int col = opt->getColor(i, opt->NbIso);
glColor4ubv((GLubyte *) &col);
glBegin(GL_QUADS);
if(horizontal){
glVertex2d(xmin + i * box, ymin);
glVertex2d(xmin + (i + 1) * box, ymin);
glVertex2d(xmin + (i + 1) * box, ymin + height);
glVertex2d(xmin + i * box, ymin + height);
}
else{
glVertex2d(xmin, ymin + i * box);
glVertex2d(xmin + width, ymin + i * box);
glVertex2d(xmin + width, ymin + (i + 1) * box);
glVertex2d(xmin, ymin + (i + 1) * box);
}
glEnd();
}
else if(opt->IntervalsType == PViewOptions::Continuous){
glBegin(GL_QUADS);
double dv = (opt->TmpMax - opt->TmpMin) / (opt->NbIso ? opt->NbIso : 1);
double v1 = opt->TmpMin + i * dv;
unsigned int col1 = opt->getColor(v1, opt->TmpMin, opt->TmpMax);
glColor4ubv((GLubyte *) &col1);
if(horizontal){
glVertex2d(xmin + i * box, ymin + height);
glVertex2d(xmin + i * box, ymin);
}
else{
glVertex2d(xmin, ymin + i * box);
glVertex2d(xmin + width, ymin + i * box);
}
double v2 = opt->TmpMin + (i + 1) * dv;