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

Last change on this file since 3628 was 3611, checked in by ldelgass, 11 years ago

Use nv namespace for classes in nanovis rather than prefixing class names with
Nv (still need to convert shader classes).

  • Property svn:eol-style set to native
File size: 1.8 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(float x, float y, float z,
27                                   int w, int h, int d, int n,
28                                   float *dataVolumeA, float *dataVolumeB,
29                                   double v0, double v1, double non_zeromin,
30                                   const Vector3f& cellSz) :
31    Volume(x, y, z, w, h, d, n, dataVolumeA, v0, v1, non_zeromin),
32    cellSize(cellSz)
33{
34    //label it as zincblende
35    _volumeType = ZINCBLENDE;
36
37    //store member tex initialize in Volume() as zincblende_tex[0]
38    assert(_tex);
39    zincblendeTex[0] = _tex;
40
41    //now add another tex as zincblende_tex[1]
42    Texture3D *secondTex = new Texture3D(w, h, d, GL_FLOAT, GL_LINEAR, n);
43    assert(secondTex);
44    secondTex->initialize(dataVolumeB);
45
46    zincblendeTex[1] = secondTex;
47}
48
49ZincBlendeVolume::~ZincBlendeVolume()
50{
51    // This data will be deleted in a destrutor of Volume class
52    //if (zincblende_tex[0])
53    //  delete zincblende_tex[0];
54    if (zincblendeTex[1])
55        delete zincblendeTex[1];
56}
Note: See TracBrowser for help on using the repository browser.