![]() |
http://www.sim.no http://www.coin3d.org |
The SoSceneTexture2 class is used to create a 2D texture from a Coin scene graph.Lets the rendering of a scene graph be specified as a texture image to be used in another scene graph. Set up the scene graph used for a texture in the SoSceneTexture2::scene field. More...
#include <Inventor/nodes/SoSceneTexture2.h>
Public Types | |
enum | Model { MODULATE = SoTextureImageElement::MODULATE, DECAL = SoTextureImageElement::DECAL, BLEND = SoTextureImageElement::BLEND, REPLACE = SoTextureImageElement::REPLACE } |
enum | Wrap { REPEAT = SoTextureImageElement::REPEAT, CLAMP = SoTextureImageElement::CLAMP, CLAMP_TO_BORDER = SoTextureImageElement::CLAMP_TO_BORDER } |
enum | TransparencyFunction { NONE, ALPHA_BLEND, ALPHA_TEST } |
enum | Type { DEPTH, RGBA8, RGBA32F, RGB32F, RGBA16F, RGB16F, R3_G3_B2, RGB, RGB4, RGB5, RGB8, RGB10, RGB12, RGB16, RGBA, RGBA2, RGBA4, RGB5_A1, RGB10_A2, RGBA12, RGBA16 } |
![]() | |
enum | NodeType { INVENTOR = 0x0000, VRML1 = 0x0001, VRML2 = 0x0002, INVENTOR_1 = 0x0004, INVENTOR_2_0 = 0x0008, INVENTOR_2_1 = 0x0010, INVENTOR_2_5 = 0x0020, INVENTOR_2_6 = 0x0040, COIN_1_0 = 0x0080, COIN_2_0 = 0x0100, EXTENSION = 0x0200, COIN_2_2 = 0x0400, COIN_2_3 = 0x0800, COIN_2_4 = 0x1000, INVENTOR_5_0 = 0x2000, COIN_2_5 = 0x4000 } |
Public Member Functions | |
virtual SoType | getTypeId (void) const |
virtual void | notify (SoNotList *list) |
virtual void | write (SoWriteAction *action) |
virtual void | doAction (SoAction *action) |
virtual void | GLRender (SoGLRenderAction *action) |
virtual void | callback (SoCallbackAction *action) |
virtual void | rayPick (SoRayPickAction *action) |
void | setType (const Type type) |
void | setSceneTransparencyType (SoNode *node) |
![]() | |
void | setOverride (const SbBool state) |
SbBool | isOverride (void) const |
void | setNodeType (const NodeType type) |
NodeType | getNodeType (void) const |
virtual SoNode * | copy (SbBool copyconnections=0) const |
virtual SbBool | affectsState (void) const |
virtual void | GLRenderBelowPath (SoGLRenderAction *action) |
virtual void | GLRenderInPath (SoGLRenderAction *action) |
virtual void | GLRenderOffPath (SoGLRenderAction *action) |
virtual void | getBoundingBox (SoGetBoundingBoxAction *action) |
virtual void | getMatrix (SoGetMatrixAction *action) |
virtual void | handleEvent (SoHandleEventAction *action) |
virtual void | pick (SoPickAction *action) |
virtual void | search (SoSearchAction *action) |
virtual void | audioRender (SoAudioRenderAction *action) |
virtual void | getPrimitiveCount (SoGetPrimitiveCountAction *action) |
virtual void | grabEventsSetup (void) |
virtual void | grabEventsCleanup (void) |
virtual void | startNotify (void) |
uint32_t | getNodeId (void) const |
virtual SoChildList * | getChildren (void) const |
virtual void | writeInstance (SoOutput *out) |
virtual SoNode * | addToCopyDict (void) const |
virtual void | copyContents (const SoFieldContainer *from, SbBool copyconnections) |
virtual SoFieldContainer * | copyThroughConnection (void) const |
![]() | |
void | setToDefaults (void) |
SbBool | hasDefaultValues (void) const |
SbBool | fieldsAreEqual (const SoFieldContainer *container) const |
void | copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=0) |
SbBool | set (const char *const fielddata) |
void | get (SbString &fielddata) |
virtual int | getFields (SoFieldList &l) const |
virtual int | getAllFields (SoFieldList &l) const |
virtual SoField * | getField (const SbName &name) const |
virtual SoField * | getEventIn (const SbName &name) const |
virtual SoField * | getEventOut (const SbName &name) const |
SbBool | getFieldName (const SoField *const field, SbName &name) const |
SbBool | enableNotify (const SbBool flag) |
SbBool | isNotifyEnabled (void) const |
SbBool | set (const char *fielddata, SoInput *in) |
void | get (SbString &fielddata, SoOutput *out) |
virtual SbBool | validateNewFieldValue (SoField *field, void *newval) |
virtual void | addWriteReference (SoOutput *out, SbBool isfromfield=0) |
SbBool | getIsBuiltIn (void) const |
void | setUserData (void *userdata) const |
void * | getUserData (void) const |
![]() | |
void | ref (void) const |
void | unref (void) const |
void | unrefNoDelete (void) const |
int32_t | getRefCount (void) const |
void | touch (void) |
SbBool | isOfType (SoType type) const |
virtual SbName | getName (void) const |
virtual void | setName (const SbName &newname) |
void | addAuditor (void *const auditor, const SoNotRec::Type type) |
void | removeAuditor (void *const auditor, const SoNotRec::Type type) |
const SoAuditorList & | getAuditors (void) const |
SbBool | shouldWrite (void) |
void | assertAlive (void) const |
Static Public Member Functions | |
static SoType | getClassTypeId (void) |
static void | initClass (void) |
![]() | |
static uint32_t | getCompatibilityTypes (const SoType &nodetype) |
static SoType | getClassTypeId (void) |
static SoNode * | getByName (const SbName &name) |
static int | getByName (const SbName &name, SoNodeList &l) |
static void | initClass (void) |
static void | initClasses (void) |
static uint32_t | getNextNodeId (void) |
static int | getActionMethodIndex (const SoType type) |
static void | getBoundingBoxS (SoAction *action, SoNode *node) |
static void | GLRenderS (SoAction *action, SoNode *node) |
static void | callbackS (SoAction *action, SoNode *node) |
static void | getMatrixS (SoAction *action, SoNode *node) |
static void | handleEventS (SoAction *action, SoNode *node) |
static void | pickS (SoAction *action, SoNode *node) |
static void | rayPickS (SoAction *action, SoNode *node) |
static void | searchS (SoAction *action, SoNode *node) |
static void | writeS (SoAction *action, SoNode *node) |
static void | audioRenderS (SoAction *action, SoNode *node) |
static void | getPrimitiveCountS (SoAction *action, SoNode *node) |
![]() | |
static void | initClass (void) |
static SoType | getClassTypeId (void) |
static void | initCopyDict (void) |
static void | addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy) |
static SoFieldContainer * | checkCopy (const SoFieldContainer *orig) |
static SoFieldContainer * | findCopy (const SoFieldContainer *orig, const SbBool copyconnections) |
static void | copyDone (void) |
![]() | |
static void | initClass (void) |
static SoType | getClassTypeId (void) |
static void | addName (SoBase *const base, const char *const name) |
static void | removeName (SoBase *const base, const char *const name) |
static void | incrementCurrentWriteCounter (void) |
static void | decrementCurrentWriteCounter (void) |
static SoBase * | getNamedBase (const SbName &name, SoType type) |
static int | getNamedBases (const SbName &name, SoBaseList &baselist, SoType type) |
static SbBool | read (SoInput *in, SoBase *&base, SoType expectedtype) |
static void | setInstancePrefix (const SbString &c) |
static void | setTraceRefs (SbBool trace) |
static SbBool | getTraceRefs (void) |
static SbBool | connectRoute (SoInput *in, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname) |
static SbBool | readRoute (SoInput *in) |
Public Attributes | |
SoSFEnum | wrapS |
SoSFEnum | wrapT |
SoSFEnum | model |
SoSFColor | blendColor |
SoSFVec4f | backgroundColor |
SoSFVec2s | size |
SoSFNode | scene |
SoSFEnum | transparencyFunction |
Protected Member Functions | |
virtual const SoFieldData * | getFieldData (void) const |
![]() | |
SoNode (void) | |
virtual | ~SoNode () |
virtual SbBool | readInstance (SoInput *in, unsigned short flags) |
![]() | |
SoFieldContainer (void) | |
~SoFieldContainer () | |
![]() | |
SoBase (void) | |
virtual | ~SoBase () |
virtual void | destroy (void) |
SbBool | hasMultipleWriteRefs (void) const |
SbBool | writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const |
void | writeFooter (SoOutput *out) const |
virtual const char * | getFileFormatName (void) const |
Static Protected Member Functions | |
static const SoFieldData ** | getFieldDataPtr (void) |
![]() | |
static const SoFieldData ** | getFieldDataPtr (void) |
static void | setNextActionMethodIndex (int index) |
static int | getNextActionMethodIndex (void) |
static void | incNextActionMethodIndex (void) |
static void | setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask) |
![]() | |
static uint32_t | getCurrentWriteCounter (void) |
static void | staticDataLock (void) |
static void | staticDataUnlock (void) |
Additional Inherited Members | |
![]() | |
enum | BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 } |
![]() | |
uint32_t | uniqueId |
![]() | |
SbBool | isBuiltIn |
![]() | |
static uint32_t | nextUniqueId = 0 |
static int | nextActionMethodIndex = 0 |
The SoSceneTexture2 class is used to create a 2D texture from a Coin scene graph.
Lets the rendering of a scene graph be specified as a texture image to be used in another scene graph. Set up the scene graph used for a texture in the SoSceneTexture2::scene field.
This node behaves exactly like SoTexture2 when it comes mapping the actual texture onto subsequent geometry. Please read the SoTexture2 documentation for more information about how textures are mapped onto shapes.
A notable feature of this node is that it will use offscreen pbuffers for hardware accelerated rendering, if they are available from the OpenGL driver. WGL, GLX and AGL, for OpenGL drivers on Microsoft Windows, X11 and Mac OS X, respectively, all support the OpenGL Architecture Review Board (ARB) pbuffer extension in later incarnations from most OpenGL vendors.
Note also that the offscreen pbuffer will be used directly on the card as a texture, with no costly round trip back and forth from CPU memory, if the OpenGL driver supports the recent ARB_render_texture extension.
An important limitation is that textures should have dimensions that are equal to a whole power-of-two, see documentation for SoSceneTexture::size.
FILE FORMAT/DEFAULTS:
Texture mapping model, for deciding how to "merge" the texturemap with the object it is mapped onto.
Enumerator | |
---|---|
MODULATE | Texture color is multiplied by the polygon color. The result will be Phong shaded (if light model is PHONG). |
DECAL | Texture image overwrites polygon shading. Textured pixels will not be Phong shaded. Has undefined behaviour for grayscale and grayscale-alpha textures. |
BLEND | This model is normally used with monochrome textures (i.e. textures with one or two components). The first component, the intensity, is then used to blend between the shaded color of the polygon and the SoSceneTexture2::blendColor. |
REPLACE | Texture image overwrites polygon shading. Textured pixels will not be Phong shaded. Supports grayscale and grayscale alpha textures. This feature requires OpenGL 1.1. MODULATE will be used if OpenGL version < 1.1 is detected. |
For deciding how the texture's alpha channel is handled. It's not possible to automatically detect this, since the texture is stored only on the graphics card's memory, and it'd be too slow to fetch the image to test the alpha channel like Coin does for regular textures.
Enumerator | |
---|---|
NONE | The alpha channel is ignored. |
ALPHA_BLEND | Alpha blending is used. |
ALPHA_TEST | An alpha test function is used. |
|
virtual |
Returns the type identification of an object derived from a class inheriting SoBase. This is used for run-time type checking and "downward" casting.
Usage example:
For application programmers wanting to extend the library with new nodes, engines, nodekits, draggers or others: this method needs to be overridden in all subclasses. This is typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the pre-defined macros available through for instance Inventor/nodes/SoSubNode.h (SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine.h (for engine classes) and so on.
For more information on writing Coin extensions, see the class documentation of the toplevel superclasses for the various class groups.
Implements SoBase.
|
protectedvirtual |
Returns a pointer to the class-wide field data storage object for this instance. If no fields are present, returns NULL
.
Reimplemented from SoFieldContainer.
|
virtual |
Notifies all auditors for this instance when changes are made.
Reimplemented from SoNode.
References SoNotList::getLastField(), model, SoNode::notify(), scene, size, transparencyFunction, wrapS, and wrapT.
|
virtual |
Action method for SoWriteAction.
Writes out a node object, and any connected nodes, engines etc, if necessary.
Reimplemented from SoNode.
References SoNode::write().
|
virtual |
This function performs the typical operation of a node for any action.
Reimplemented from SoNode.
References blendColor, SoAction::getState(), SoNode::isOverride(), model, size, wrapS, and wrapT.
Referenced by callback(), and rayPick().
|
virtual |
Action method for the SoGLRenderAction.
This is called during rendering traversals. Nodes influencing the rendering state in any way or who wants to throw geometry primitives at OpenGL overrides this method.
Reimplemented from SoNode.
References blendColor, SoAction::getState(), SoState::isCacheOpen(), SoNode::isOverride(), model, SoDebugError::postWarning(), and scene.
|
virtual |
Action method for SoCallbackAction.
Simply updates the state according to how the node behaves for the render action, so the application programmer can use the SoCallbackAction for extracting information about the scene graph.
Reimplemented from SoNode.
References doAction().
|
virtual |
Action method for SoRayPickAction.
Checks the ray specification of the action and tests for intersection with the data of the node.
Nodes influencing relevant state variables for how picking is done also overrides this method.
Reimplemented from SoNode.
References doAction().
void SoSceneTexture2::setType | ( | const Type | type | ) |
Temporary function in Coin 2.5. Used to set the buffer type. In Coin-3 this function will be obsoleted and replaced with a field.
void SoSceneTexture2::setSceneTransparencyType | ( | SoNode * | node | ) |
Temporary function in Coin 2.5. Used to set the scene transparency typex. In Coin-3 this function will be obsoleted and replaced with a field.
References SoBase::ref().
SoSFEnum SoSceneTexture2::wrapS |
Wrapping strategy for the S coordinate when the texturemap is narrower than the object to map onto.
Default value is SoSceneTexture2::REPEAT.
Referenced by doAction(), and notify().
SoSFEnum SoSceneTexture2::wrapT |
Wrapping strategy for the T coordinate when the texturemap is shorter than the object to map onto.
Default value is SoSceneTexture2::REPEAT.
Referenced by doAction(), and notify().
SoSFEnum SoSceneTexture2::model |
Texturemapping model for how the texturemap is "merged" with the polygon primitives it is applied to. Default value is SoSceneTexture2::MODULATE.
Referenced by doAction(), GLRender(), and notify().
SoSFColor SoSceneTexture2::blendColor |
Blend color. Used when SoSceneTexture2::model is SoSceneTexture2::BLEND.
Default color value is [0, 0, 0], black, which means no contribution to the blending is made.
Referenced by doAction(), and GLRender().
SoSFVec4f SoSceneTexture2::backgroundColor |
The color the color buffer is cleared to before rendering the scene. Default value is (0.0f, 0.0f, 0.0f, 0.0f).
SoSFVec2s SoSceneTexture2::size |
The size of the texture.
This node currently only supports power of two textures. If the size is not a power of two, the value will be rounded upwards to the next power of two.
Referenced by doAction(), and notify().
SoSFNode SoSceneTexture2::scene |
The scene graph that is rendered into the texture.
Referenced by GLRender(), and notify().
SoSFEnum SoSceneTexture2::transparencyFunction |
The transparency function used. Default value is NONE.
Referenced by notify().
Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.
Generated on Fri Jul 20 2018 for Coin by Doxygen. 1.8.14