source: trunk/packages/vizservers/nanovis/ZincBlendeVolume.cpp @ 3630

Last change on this file since 3630 was 3630, checked in by ldelgass, 7 years ago

Nanovis refactoring to fix problems with scaling and multiple results.
Do rendering in world space to properly place and scale multiple data sets.
Also fix flows to reduce resets of animations. More work toward removing
Cg dependency. Fix panning to convert viewport coords to world coords.

  • Property svn:eol-style set to native
File size: 1.7 KB
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * ----------------------------------------------------------------------
4 * ZincBlendeVolume.cpp: 3d zincblende volume class, a subclass of Volume.
5 *                      It contains two cubic volumes.
6 *
7 * ======================================================================
8 *  AUTHOR:  Wei Qiao <qiaow@purdue.edu>
9 *           Purdue Rendering and Perceptualization Lab (PURPL)
10 *
11 *  Copyright (c) 2004-2013  HUBzero Foundation, LLC
12 *
13 *  See the file "license.terms" for information on usage and
14 *  redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
15 * ======================================================================
16 */
17#include <assert.h>
18
19#include <vrmath/Vector3f.h>
20
21#include "ZincBlendeVolume.h"
22
23using namespace nv;
24using namespace vrmath;
25
26ZincBlendeVolume::ZincBlendeVolume(int w, int h, int d, int n, 
27                                   float *dataVolumeA, float *dataVolumeB,
28                                   double v0, double v1, double non_zeromin,
29                                   const Vector3f& cellSz) :
30    Volume(w, h, d, n, dataVolumeA, v0, v1, non_zeromin),
31    cellSize(cellSz)
32{
33    //label it as zincblende
34    _volumeType = ZINCBLENDE;
35
36    //store member tex initialize in Volume() as zincblende_tex[0]
37    assert(_tex);
38    zincblendeTex[0] = _tex;
39
40    //now add another tex as zincblende_tex[1]
41    Texture3D *secondTex = new Texture3D(w, h, d, GL_FLOAT, GL_LINEAR, n);
42    assert(secondTex);
43    secondTex->initialize(dataVolumeB);
44
45    zincblendeTex[1] = secondTex;
46}
47
48ZincBlendeVolume::~ZincBlendeVolume()
49{ 
50    // First texture will be deleted in ~Volume()
51    if (zincblendeTex[1])
52        delete zincblendeTex[1];
53}
Note: See TracBrowser for help on using the repository browser.