Coin Logo http://www.sim.no
http://www.coin3d.org

SoVolumeDetail.h
1 #ifndef COIN_SOVOLUMEDETAIL_H
2 #define COIN_SOVOLUMEDETAIL_H
3 
4 /**************************************************************************\
5  *
6  * This file is part of the SIM Voleon visualization library.
7  * Copyright (C) 2003-2004 by Systems in Motion. All rights reserved.
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License
11  * ("GPL") version 2 as published by the Free Software Foundation.
12  * See the file LICENSE.GPL at the root directory of this source
13  * distribution for additional information about the GNU GPL.
14  *
15  * For using SIM Voleon with software that can not be combined with
16  * the GNU GPL, and for taking advantage of the additional benefits
17  * of our support services, please contact Systems in Motion about
18  * acquiring a SIM Voleon Professional Edition License.
19  *
20  * See <URL:http://www.coin3d.org/> for more information.
21  *
22  * Systems in Motion, Postboks 1283, Pirsenteret, 7462 Trondheim, NORWAY.
23  * <URL:http://www.sim.no/>.
24  *
25 \**************************************************************************/
26 
27 
28 #include <Inventor/misc/SoState.h>
29 #include <Inventor/nodes/SoNode.h>
30 #include <Inventor/details/SoDetail.h>
31 #include <Inventor/details/SoSubDetail.h>
32 #include <Inventor/SbLinear.h>
33 
34 #include <VolumeViz/C/basic.h>
35 
36 class SIMVOLEON_DLL_API SoVolumeDetail : public SoDetail {
37  typedef SoDetail inherited;
38 
39  SO_DETAIL_HEADER(SoVolumeDetail);
40 
41 public:
42  static void initClass(void);
43  SoVolumeDetail(void);
44  virtual ~SoVolumeDetail();
45 
46  virtual SoDetail * copy(void) const;
47 
48  void getProfileObjectPos(SbVec3f profile[2]) const;
49  int getProfileDataPos(SbVec3s profile[2] = 0) const;
50  unsigned int getProfileValue(int index,
51  SbVec3s * pos = 0, SbVec3f * objpos = 0,
52  SbBool flag = FALSE) const;
53 
54  SbBool getFirstNonTransparentValue(unsigned int * value,
55  SbVec3s * pos = 0, SbVec3f * objpos = 0,
56  SbBool flag = FALSE) const;
57 
58 
59  // NOTE: The TGS VolumeViz signature of this function differs from
60  // the following. We consider their solution to be unoptimal, and
61  // have therefore changed the input arguments. This function is
62  // anyway unlikely to be of any interest to the application
63  // programmer.
64  void setDetails(const SbVec3f raystart, const SbVec3f rayend,
65  SoState * state, SoNode * caller);
66 
67 private:
68  class SoVolumeDetailP * pimpl;
69  friend class SoVolumeDetailP;
70 };
71 
72 #endif // !COIN_SOVOLUMEDETAIL_H
The SoVolumeDetail stores ray intersection information through a volume.
Definition: SoVolumeDetail.h:36

Copyright © 1998-2004 by Systems in Motion AS. All rights reserved.

Generated on Fri Jul 31 2015 13:47:24 for SIMVoleon by Doxygen. 1.8.9.1