Changeset 837 for trunk


Ignore:
Timestamp:
Jan 2, 2008 11:00:15 AM (17 years ago)
Author:
vrinside
Message:

Modified scaling grids and heightmaps in order to match the grid and the heightmap. It is still needed to rendering axis.

Location:
trunk/vizservers/nanovis
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/vizservers/nanovis/Command.cpp

    r835 r837  
    10521052            x = - 10 + i%20;
    10531053            data[i] = exp(- (x * x)/(2 * sigma * sigma)) /
    1054                 (sigma * sqrt(2.0)) / mean;
    1055         }
     1054                (sigma * sqrt(2.0)) / mean * 2;
     1055        }
     1056
    10561057        HeightMap* heightMap = new HeightMap();
    1057         heightMap->setHeight(0.0f, 0.0f, 1.0f, 1.0f, 20, 20, data);
     1058    float minx = 0.0f;
     1059    float maxx = 1.0f;
     1060    float miny = 0.5f;
     1061    float maxy = 3.5f;
     1062        heightMap->setHeight(minx, miny, maxx, maxy, 20, 20, data);
    10581063        heightMap->setColorMap(NanoVis::get_transfunc("default"));
    10591064        heightMap->setVisible(true);
    10601065        heightMap->setLineContourVisible(true);
    10611066        NanoVis::g_heightMap.push_back(heightMap);
     1067
     1068
     1069    Vector3 min(minx, (float) heightMap->range_min(), miny);
     1070    Vector3 max(maxx, (float) heightMap->range_max(), maxy);
     1071
     1072    g_grid->setMinMax(min, max);
     1073    g_grid->setVisible(true);
     1074
    10621075        return TCL_OK;
    10631076    }
     
    12511264        }
    12521265        if (g_grid) {
    1253             g_grid->setAxisColor(r, g, b);
     1266            g_grid->setAxisColor(r, g, b, 1.0f);
    12541267        }
    12551268    } else if ((c == 'l') && (strcmp(argv[1],"linecolor") == 0)) {
     
    12611274        }
    12621275        if (g_grid) {
    1263             g_grid->setGridLineColor(r, g, b);
     1276            g_grid->setGridLineColor(r, g, b, 1.0f);
    12641277        }
    12651278    } else if ((c == 'm') && (strcmp(argv[1],"minmax") == 0)) {
  • trunk/vizservers/nanovis/Grid.cpp

    r776 r837  
    44
    55Grid::Grid()
    6 : _axisColor(1.0f, 1.0f, 1.0f), _font(0), _axisGridLineCount(5.0f, 5.0f, 5.0f),
    7 _axisMin(0.0f, 0.0f, 0.0f), _axisMax(1.0f, 1.0f, 1.0f), _gridLineColor(1.0f, 1.0f, 1.0f), _visible(false)
     6: _axisColor(1.0f, 1.0f, 1.0f, 1.0f), _font(0), _axisGridLineCount(5.0f, 5.0f, 5.0f),
     7_axisMin(0.0f, 0.0f, 0.0f), _axisMax(1.0f, 1.0f, 1.0f), _gridLineColor(1.0f, 1.0f, 1.0f, 1.0f), _visible(false)
    88{
    99        __axisScale = _axisMax - _axisMin;
     
    1818        glEnable(GL_DEPTH_TEST);
    1919
    20         //glTranslatef(0.5f, 0.5f, 0.5f);
    21         glScalef(1.0f, __axisScale.y / __axisScale.x, __axisScale.z / __axisScale.x);
     20        glScalef(1.0 / __axisScale.x, __axisScale.y / __axisScale.x, __axisScale.z / __axisScale.x);
     21
    2222        glTranslatef(-0.5f, -0.5f, -0.5f);
    2323        glLineWidth(2.0f);
     
    121121                                glLoadIdentity();
    122122                                glTranslatef((int) winx, (int) viewport[3] - (int)winy, 0.0f);
    123                                 sprintf(buff, "%0.2f", __axisScale.y / _axisGridLineCount.y * i);
     123                                sprintf(buff, "%0.2f", __axisScale.y / _axisGridLineCount.y * i + _axisMin.y);
    124124                                _font->draw(buff);
    125125                        }
     
    132132                                glLoadIdentity();
    133133                                glTranslatef((int) winx, (int) viewport[3] - (int)winy, 0.0f);
    134                                 sprintf(buff, "%0.2f", __axisScale.z / _axisGridLineCount.z * i);
     134                                sprintf(buff, "%0.2f", __axisScale.z / _axisGridLineCount.z * i + _axisMin.z);
    135135                                _font->draw(buff);
    136136                        }
     
    143143                                glLoadIdentity();
    144144                                glTranslatef((int) winx, (int) viewport[3] - (int)winy, 0.0f);
    145                                 sprintf(buff, "%0.2f", __axisScale.x / _axisGridLineCount.x * i);
     145                                sprintf(buff, "%0.2f", __axisScale.x / _axisGridLineCount.x * i + _axisMin.x);
    146146                                _font->draw(buff);
    147147                        }
  • trunk/vizservers/nanovis/Grid.h

    r776 r837  
    44#include <R2/R2Fonts.h>
    55#include "Vector3.h"
     6#include "Vector4.h"
    67
    78class Grid {
    89        Vector3 __axisScale;
    910
    10         Vector3 _axisColor;
    11         Vector3 _gridLineColor;
     11        Vector4 _axisColor;
     12        Vector4 _gridLineColor;
    1213        Vector3 _axisMax;
    1314        Vector3 _axisMin;
     
    3233
    3334    void setGridLineCount(int x, int y, int z);
    34     void setAxisColor(float r, float g, float b);
    35     void setGridLineColor(float r, float g, float b);
     35    void setAxisColor(float r, float g, float b, float a);
     36    void setGridLineColor(float r, float g, float b, float a);
    3637    void setMinMax(const Vector3& min, const Vector3& max);
    3738    void setAxisName(int axisID, const char* name);
     
    6768}
    6869
    69 inline void Grid::setAxisColor(float r, float g, float b)
     70inline void Grid::setAxisColor(float r, float g, float b, float a)
    7071{
    7172    _axisColor.x = r;
    7273    _axisColor.y = g;
    7374    _axisColor.z = b;
     75    _axisColor.w = a;
    7476}
    7577
    76 inline void Grid::setGridLineColor(float r, float g, float b)
     78inline void Grid::setGridLineColor(float r, float g, float b, float a)
    7779{
    7880    _gridLineColor.x = r;
    7981    _gridLineColor.y = g;
    8082    _gridLineColor.z = b;
     83    _gridLineColor.w = a;
    8184}
    8285
     
    8588    _axisMin = min;
    8689    _axisMax = max;
    87         __axisScale = _axisMax - _axisMin;
     90        __axisScale.x = _axisMax.x - _axisMin.x;
     91        __axisScale.y = _axisMax.y - _axisMin.y;
     92        __axisScale.z = _axisMax.z - _axisMin.z;
    8893}
    8994
  • trunk/vizservers/nanovis/HeightMap.cpp

    r835 r837  
    1515
    1616HeightMap::HeightMap()
    17 : _contour(0), _colorMap(0), _indexBuffer(0), _vertexBufferObjectID(0), _vertexCount(0), _textureBufferObjectID(0),
    18   _contourVisible(true), _scale(1.0f, 1.0f, 1.0f), _contourColor(1.0f, 0.0f, 0.0f)
     17: _contour(0), _colorMap(0), _indexBuffer(0), _indexCount(0), _vertexBufferObjectID(0), _vertexCount(0),
     18    _textureBufferObjectID(0), _contourVisible(true), _scale(1.0f, 1.0f, 1.0f), _contourColor(1.0f, 0.0f, 0.0f), _visible(false),
     19    _vmin(0.0f), _vmax(0.0f), _centerPoint(0.0f, 0.0f, 0.0f)
    1920{
    2021        _shader = new NvShader();
     
    4243{
    4344    glPushMatrix();
    44     glScalef(_scale.x, _scale.y, _scale.z);
    45     glTranslatef(-0.5f, -0.5f, -0.5f);
     45
     46    if (_scale.x != 0)
     47    {
     48        glScalef(1 / _scale.x, 1 / _scale.x , 1 / _scale.x);
     49    }
     50
     51    glTranslatef(-_centerPoint.x, - _centerPoint.y, - _centerPoint.z);
     52
    4653        if (_contour)
    4754        {
     
    208215            if (_vmin > heights[i].y) {
    209216                _vmin = heights[i].y;
    210             } else if (_vmax < heights[i].y) {
     217            }
     218        if (_vmax < heights[i].y) {
    211219                _vmax = heights[i].y;
    212220            }
    213221        }
     222
     223    _scale.x = 1.0f;
     224    _scale.z = _vmax - _vmin;
     225    _scale.y = 1.0f;
     226
     227    _centerPoint.set(_scale.x * 0.5, _scale.z * 0.5 + _vmin, _scale.y * 0.5);
    214228
    215229        Vector3* texcoord = (Vector3*) malloc(count * sizeof(Vector3));
     
    259273{
    260274        _vertexCount = xCount * yCount;
     275
    261276        reset();
    262277
     
    266281            if (_vmin > heights[i]) {
    267282                _vmin = heights[i];
    268             } else if (_vmax < heights[i]) {
     283            }
     284
     285        if (_vmax < heights[i]) {
    269286                _vmax = heights[i];
    270287            }
    271288        }
    272     //_scale.x = endX - startX;
    273     //_scale.y = (endY - startY) / _scale.x;
    274     //_scale.z = max / _scale.z;
     289
     290    _scale.x = endX - startX;
     291    _scale.y = _vmax - _vmin;
     292    _scale.z = endY - startY;
     293
     294    _centerPoint.set(_scale.x * 0.5 + startX, _scale.y * 0.5 + _vmin, _scale.z * 0.5 + startY);
    275295
    276296        Vector3* texcoord = (Vector3*) malloc(count * sizeof(Vector3));
    277         for (int i = 0; i < count; ++i) {
     297        for (int i = 0; i < count; ++i)
     298    {
    278299            texcoord[i].set(0, 0, heights[i]);
    279300        }
  • trunk/vizservers/nanovis/HeightMap.h

    r835 r837  
    3030   
    3131    Vector3 _scale;
     32    Vector3 _centerPoint;
    3233
    3334    double _vmin;               // minimum (unscaled) value in data
Note: See TracChangeset for help on using the changeset viewer.