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

SoVRMLImageTexture.h
1 /**************************************************************************\
2  *
3  * This file is part of the Coin 3D visualization library.
4  * Copyright (C) by Kongsberg Oil & Gas Technologies.
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * ("GPL") version 2 as published by the Free Software Foundation.
9  * See the file LICENSE.GPL at the root directory of this source
10  * distribution for additional information about the GNU GPL.
11  *
12  * For using Coin with software that can not be combined with the GNU
13  * GPL, and for taking advantage of the additional benefits of our
14  * support services, please contact Kongsberg Oil & Gas Technologies
15  * about acquiring a Coin Professional Edition License.
16  *
17  * See http://www.coin3d.org/ for more information.
18  *
19  * Kongsberg Oil & Gas Technologies, Bygdoy Alle 5, 0257 Oslo, NORWAY.
20  * http://www.sim.no/ sales@sim.no coin-support@coin3d.org
21  *
22 \**************************************************************************/
23 
24 #ifndef COIN_SOVRMLIMAGETEXTURE_H
25 #define COIN_SOVRMLIMAGETEXTURE_H
26 
27 #include <Inventor/nodes/SoSubNode.h>
28 #include <Inventor/VRMLnodes/SoVRMLTexture.h>
29 #include <Inventor/fields/SoMFString.h>
30 #include <Inventor/SbImage.h>
31 
32 class SoVRMLImageTexture;
33 class SoSensor;
34 class SbImage;
35 
36 typedef SbBool VRMLPrequalifyFileCallback(const SbString &, void *,
38 
39 class COIN_DLL_API SoVRMLImageTexture : public SoVRMLTexture
40 {
41  typedef SoVRMLTexture inherited;
43 
44 public:
45  static void initClass(void);
46  SoVRMLImageTexture(void);
47 
48  SoMFString url;
49 
50  static void setDelayFetchURL(const SbBool onoff);
51  static void setPrequalifyFileCallBack(VRMLPrequalifyFileCallback * cb,
52  void * closure);
53  void allowPrequalifyFile(SbBool enable);
54 
55  virtual void doAction(SoAction * action);
56  virtual void GLRender(SoGLRenderAction * action);
57  virtual void callback(SoCallbackAction * action);
58  virtual void rayPick(SoRayPickAction * action);
59 
60  void setImage(const SbImage & image);
61  const SbImage * getImage(void) const;
62 
63  static void setImageDataMaxAge(const uint32_t maxage);
64 
65 protected:
66  virtual ~SoVRMLImageTexture();
67 
68  virtual SbBool readInstance(SoInput * in, unsigned short flags);
69  int getReadStatus(void) const;
70  void setReadStatus(int status);
71 
72 private:
73 
74  SbBool readImage(const SbString & filename);
75  SbBool loadUrl(void);
76  class SoVRMLImageTextureP * pimpl;
77  static void urlSensorCB(void *, SoSensor *);
78  static void glimage_callback(void * closure);
79  static SbBool image_read_cb(const SbString &, SbImage *, void *);
80  static void read_thread(void * closure);
81  static SbBool default_prequalify_cb(const SbString & url, void * closure,
82  SoVRMLImageTexture * node);
83  static void oneshot_readimage_cb(void *, SoSensor *);
84 
85 }; // class SoVRMLImageTexture
86 
87 #endif // ! COIN_SOVRMLIMAGETEXTURE_H
The SoRayPickAction class does ray intersection with scene graphs.For interaction with the scene grap...
Definition: SoRayPickAction.h:41
#define SO_NODE_HEADER(classname)
virtual void GLRender(SoGLRenderAction *action)
Definition: Texture.cpp:80
virtual void rayPick(SoRayPickAction *action)
Definition: SoNode.cpp:1115
The SoSensor class is the abstract base class for all sensors.Sensors is a mechanism in Coin for sche...
Definition: SoSensor.h:34
virtual SbBool readInstance(SoInput *in, unsigned short flags)
Definition: SoNode.cpp:1466
The SoAction class is the base class for all traversal actions.Applying actions is the basic mechanis...
Definition: SoAction.h:68
The SoMFString class is a container for SbString values.This field is used where nodes, engines or other field containers needs to store arrays of strings.
Definition: SoMFString.h:31
virtual void doAction(SoAction *action)
Definition: SoNode.cpp:785
The SoVRMLTexture class is a superclass for VRML texture nodes.
Definition: SoVRMLTexture.h:31
The SoCallbackAction class invokes callbacks at specific nodes.This action has mechanisms for trackin...
Definition: SoCallbackAction.h:71
The SoInput class is an abstraction of file import functionality.This class takes care of most of the...
Definition: SoInput.h:52
The SbImage class is an abstract datatype for 2D and 3D images.Be aware that this class is an extensi...
Definition: SbImage.h:37
The SbString class is a string class with convenience functions for string operations.This is the class used for storing and working with character strings. It automatically takes care of supporting all the &quot;bookkeeping&quot; tasks usually associated with working with character strings, like memory allocation and deallocation etc.
Definition: SbString.h:42
virtual void callback(SoCallbackAction *action)
Definition: SoNode.cpp:1002
The SoVRMLImageTexture class is used for mapping a texture file onto geometry.The detailed class docu...
Definition: SoVRMLImageTexture.h:39
The SoGLRenderAction class renders the scene graph with OpenGL calls.Applying this method at a root n...
Definition: SoGLRenderAction.h:41

Copyright © 1998-2010 by Kongsberg Oil & Gas Technologies. All rights reserved.

Generated on Fri Sep 9 2016 for Coin by Doxygen 1.8.5.