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

SoOrthoSlice.h

00001 #ifndef SIMVOLEON_SOORTHOSLICE_H
00002 #define SIMVOLEON_SOORTHOSLICE_H
00003 
00004 /**************************************************************************\
00005  *
00006  *  This file is part of the SIM Voleon visualization library.
00007  *  Copyright (C) 2003-2004 by Systems in Motion.  All rights reserved.
00008  *
00009  *  This library is free software; you can redistribute it and/or
00010  *  modify it under the terms of the GNU General Public License
00011  *  ("GPL") version 2 as published by the Free Software Foundation.
00012  *  See the file LICENSE.GPL at the root directory of this source
00013  *  distribution for additional information about the GNU GPL.
00014  *
00015  *  For using SIM Voleon with software that can not be combined with
00016  *  the GNU GPL, and for taking advantage of the additional benefits
00017  *  of our support services, please contact Systems in Motion about
00018  *  acquiring a SIM Voleon Professional Edition License.
00019  *
00020  *  See <URL:http://www.coin3d.org/> for more information.
00021  *
00022  *  Systems in Motion, Postboks 1283, Pirsenteret, 7462 Trondheim, NORWAY.
00023  *  <URL:http://www.sim.no/>.
00024  *
00025 \**************************************************************************/
00026 
00027 #include <Inventor/nodes/SoShape.h>
00028 #include <Inventor/fields/SoSFUInt32.h>
00029 #include <Inventor/fields/SoSFEnum.h>
00030 #include <Inventor/fields/SoSFBool.h>
00031 #include <Inventor/fields/SoSFNode.h>
00032 
00033 #include <VolumeViz/C/basic.h>
00034 
00035 // *************************************************************************
00036 
00037 class SIMVOLEON_DLL_API SoOrthoSlice : public SoShape {
00038   typedef SoShape inherited;
00039 
00040   SO_NODE_HEADER(SoOrthoSlice);
00041 
00042 public:
00043   static void initClass(void);
00044 
00045   SoOrthoSlice(void);
00046 
00047   enum Axis { X = 0, Y, Z };
00048   enum Interpolation { NEAREST, LINEAR };
00049   enum AlphaUse { ALPHA_AS_IS, ALPHA_OPAQUE, ALPHA_BINARY };
00050   enum ClippingSide { FRONT, BACK };
00051 
00052   SoSFUInt32 sliceNumber;
00053   SoSFEnum axis;
00054   SoSFEnum interpolation;
00055   SoSFEnum alphaUse;
00056   SoSFEnum clippingSide;
00057   SoSFBool clipping;
00058   SoSFNode alternateRep;
00059 
00060   virtual SbBool affectsState(void) const;
00061 
00062 protected:
00063   ~SoOrthoSlice();
00064 
00065   virtual void doAction(SoAction * action);
00066   virtual void GLRender(SoGLRenderAction * action);
00067   virtual void rayPick(SoRayPickAction * action);
00068   virtual void generatePrimitives(SoAction * action);
00069   virtual void computeBBox(SoAction * action, SbBox3f & box, SbVec3f & center);
00070   virtual void write(SoWriteAction * action);
00071 
00072   virtual SbBool readInstance(SoInput * in, unsigned short flags);
00073 
00074 private:
00075   friend class SoOrthoSliceP;
00076   class SoOrthoSliceP * pimpl;
00077 };
00078 
00079 #endif // !SIMVOLEON_SOORTHOSLICE_H

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

Generated on Wed Aug 22 00:21:48 2007 for SIMVoleon by Doxygen. 1.5.2