Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

SoImage.h

00001 /**************************************************************************\ 00002 * 00003 * This file is part of the Coin 3D visualization library. 00004 * Copyright (C) 1998-2003 by Systems in Motion. All rights reserved. 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public License 00008 * version 2.1 as published by the Free Software Foundation. See the 00009 * file LICENSE.LGPL at the root directory of the distribution for 00010 * more details. 00011 * 00012 * If you want to use Coin for applications not compatible with the 00013 * LGPL, please contact SIM to acquire a Professional Edition license. 00014 * 00015 * Systems in Motion, Teknobyen, Abels Gate 5, 7030 Trondheim, NORWAY 00016 * http://www.sim.no support@sim.no Voice: +47 22114160 Fax: +47 22207097 00017 * 00018 \**************************************************************************/ 00019 00020 #ifndef COIN_SOIMAGE_H 00021 #define COIN_SOIMAGE_H 00022 00023 #include <Inventor/nodes/SoSubNode.h> 00024 #include <Inventor/nodes/SoShape.h> 00025 #include <Inventor/fields/SoSFInt32.h> 00026 #include <Inventor/fields/SoSFEnum.h> 00027 #include <Inventor/fields/SoSFImage.h> 00028 #include <Inventor/fields/SoSFString.h> 00029 00030 class SoSensor; 00031 class SoFieldSensor; 00032 class SbImage; 00033 00034 class COIN_DLL_API SoImage : public SoShape { 00035 typedef SoShape inherited; 00036 00037 SO_NODE_HEADER(SoImage); 00038 00039 public: 00040 static void initClass(void); 00041 SoImage(void); 00042 00043 enum VertAlignment { 00044 BOTTOM, 00045 HALF, 00046 TOP 00047 }; 00048 00049 enum HorAlignment { 00050 LEFT, 00051 CENTER, 00052 RIGHT 00053 }; 00054 00055 SoSFInt32 width; 00056 SoSFInt32 height; 00057 SoSFEnum vertAlignment; 00058 SoSFEnum horAlignment; 00059 SoSFImage image; 00060 SoSFString filename; 00061 00062 virtual void GLRender(SoGLRenderAction * action); 00063 virtual void rayPick(SoRayPickAction * action); 00064 virtual void getPrimitiveCount(SoGetPrimitiveCountAction * action); 00065 00066 protected: 00067 virtual ~SoImage(); 00068 00069 virtual void generatePrimitives(SoAction * action); 00070 virtual void computeBBox(SoAction * action, SbBox3f & box, SbVec3f & center); 00071 00072 virtual SbBool readInstance(SoInput * in, unsigned short flags); 00073 virtual void notify(SoNotList * list); 00074 int getReadStatus(void); 00075 void setReadStatus(SbBool flag); 00076 00077 private: 00078 SbVec2s getSize(void) const; 00079 static SbVec3f getNilpoint(SoState *state); 00080 void getQuad(SoState *state, SbVec3f &v0, SbVec3f &v1, 00081 SbVec3f &v2, SbVec3f &v3); 00082 00083 const unsigned char * getImage(SbVec2s & size, int & nc); 00084 SbBool loadFilename(void); 00085 SbBool readstatus; 00086 SbImage * resizedimage; 00087 SbBool resizedimagevalid; 00088 class SoFieldSensor * filenamesensor; 00089 SbBool transparency; 00090 SbBool testtransparency; 00091 void testTransparency(void); 00092 static void filenameSensorCB(void *, SoSensor *); 00093 }; 00094 00095 #endif // !COIN_SOIMAGE_H

Generated on Tue Jul 27 23:53:01 2004 for Coin by doxygen 1.3.7