Select Git revision
Numeric.cpp
Forked from
gmsh / gmsh
Source project has a limited visibility.
-
Christophe Geuzaine authoredChristophe Geuzaine authored
Scale.cpp 10.99 KiB
// $Id: Scale.cpp,v 1.58 2005-03-12 00:59:42 geuzaine Exp $
//
// Copyright (C) 1997-2005 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 "Gmsh.h"
#include "GmshUI.h"
#include "Numeric.h"
#include "Mesh.h"
#include "Draw.h"
#include "Context.h"
#include "Views.h"
#include "gl2ps.h"
extern Context_T CTX;
// Even if all computations in these routines are made in window
// coordinates, double precision is used to work at subpixel accuracy
void draw_scale(Post_View * v,
double xmin, double ymin, double width, double height,
double tic, int horizontal)
{
gl_font(CTX.gl_font_enum, CTX.gl_fontsize);
double font_h = gl_height(); // total font height
double font_a = gl_height() - gl_descent(); // height above ref pt
double box;
if(horizontal){
box = width / (v->NbIso ? v->NbIso : 1); // colorscale box width
}
else{
box = height / (v->NbIso ? v->NbIso : 1); // colorscale box height
}
glPointSize(v->PointSize);
gl2psPointSize(v->PointSize * CTX.print.eps_point_size_factor);
glLineWidth(v->LineWidth);
gl2psLineWidth(v->LineWidth * CTX.print.eps_line_width_factor);
double ValMin, ValMax;
if(v->ExternalViewIndex >= 0){
ValMin = v->ExternalMin;
ValMax = v->ExternalMax;
}
else{
switch(v->RangeType){
case DRAW_POST_RANGE_CUSTOM:
ValMin = v->CustomMin;
ValMax = v->CustomMax;
break;
case DRAW_POST_RANGE_PER_STEP:
if(v->TimeStepMin && v->TimeStepMax){