SoVRMLImageTexture - Online Linux Manual PageSection : 3
Updated : Mon Jan 25 2021
Source : Version 4.0.0
Note : Coin

NAMESoVRMLImageTexture − The SoVRMLImageTexture class is used for mapping a texture file onto geometry​.

SYNOPSIS
#include <Inventor/VRMLnodes/SoVRMLImageTexture​.h> Inherits SoVRMLTexture​.

Public Member Functionsvirtual SoType getTypeId (void) const
Returns the type identification of an object derived from a class inheriting SoBase​. This is used for run-time type checking and 'downward' casting​.
SoVRMLImageTexture (void)
void allowPrequalifyFile (SbBool enable)
virtual void doAction (SoAction *action)
virtual void GLRender (SoGLRenderAction *action)
virtual void callback (SoCallbackAction *action)
virtual void rayPick (SoRayPickAction *action)
void setImage (const SbImage &image)
const SbImage * getImage (void) const

Static Public Member Functionsstatic SoType getClassTypeId (void)
static void initClass (void)
static void setDelayFetchURL (const SbBool onoff)
static void setPrequalifyFileCallBack (VRMLPrequalifyFileCallback *cb, void *closure)
static void setImageDataMaxAge (const uint32_t maxage)

Public AttributesSoMFString url

Protected Member Functionsvirtual const SoFieldData * getFieldData (void) const
virtual ~SoVRMLImageTexture ()
virtual SbBool readInstance (SoInput *in, unsigned short flags)
int getReadStatus (void) const
void setReadStatus (int status)

Static Protected Member Functionsstatic const SoFieldData ** getFieldDataPtr (void)

Additional Inherited Members

Detailed DescriptionThe SoVRMLImageTexture class is used for mapping a texture file onto geometry​. The detailed class documentation is taken verbatim from the VRML97 standard (ISO/IEC 14772-1:1997)​. It is copyright The Web3D Consortium, and is used by permission of the Consortium:

ImageTexture { exposedField MFString url [] field SFBool repeatS TRUE field SFBool repeatT TRUE } The ImageTexture node defines a texture map by specifying an image file and general parameters for mapping to geometry​. Texture maps are defined in a 2D coordinate system (s, t) that ranges from [0​.0, 1​.0] in both directions​. The bottom edge of the image corresponds to the S-axis of the texture map, and left edge of the image corresponds to the T-axis of the texture map​. The lower-left pixel of the image corresponds to s=0, t=0, and the top-right pixel of the image corresponds to s=1, t=1​. These relationships are depicted in Figure 6​.9​.
  Figure 6​.9
The texture is read from the URL specified by the url field​. When the url field contains no values ([]), texturing is disabled​. Browsers shall support the JPEG and PNG image file formats​. In addition, browsers may support other image formats (e​.g​. CGM) which can be rendered into a 2D image​. Support for the GIF format is also recommended (including transparency)​. Details on the url field can be found in 4​.5, VRML and the World Wide Web​. See 4​.6​.11, Texture maps (http://www.web3d.org/documents/specifications/14772/V2.0/part1/concepts.html#4.6.11), for a general description of texture maps​. See 4​.14, Lighting model (http://www.web3d.org/documents/specifications/14772/V2.0/part1/concepts.html#4.14), for a description of lighting equations and the interaction between textures, materials, and geometry appearance​. The repeatS and repeatT fields specify how the texture wraps in the S and T directions​. If repeatS is TRUE (the default), the texture map is repeated outside the [0​.0, 1​.0] texture coordinate range in the S direction so that it fills the shape​. If repeatS is FALSE, the texture coordinates are clamped in the S direction to lie within the [0​.0, 1​.0] range​. The repeatT field is analogous to the repeatS field​. The rest of this class documentation is not from the VRML97 standards documentation, but was written specifically for the Coin3D API documentation​.


 One common flaw with many programs that has support for exporting VRML or Inventor files, is that the same texture file is exported several times, but as different nodes​. This can cause excessive texture memory usage and slow rendering​. Below is an example program that fixes this by replacing all instances of the same texture with a pointer to the first node:
#include <Inventor/actions/SoSearchAction​.h> #include <Inventor/actions/SoWriteAction​.h> #include <Inventor/VRMLnodes/SoVRMLGroup​.h> #include <Inventor/VRMLnodes/SoVRMLImageTexture​.h> #include <Inventor/VRMLnodes/SoVRMLAppearance​.h> #include <Inventor/SoDB​.h> #include <Inventor/SoInput​.h> #include <Inventor/SoOutput​.h> #include <cassert> int main(int argc, char ** argv) { if (argc < 2) return -1; SoDB::init(); SoInput in; if (!in​.openFile(argv[1])) return -1; if (!in​.isFileVRML2()) return -1; // file is not a vrml2 file SoVRMLGroup * root = SoDB::readAllVRML(&in); if (!root) return -1; root->ref(); SoSearchAction sa; sa​.setType(SoVRMLImageTexture::getClassTypeId()); sa​.setInterest(SoSearchAction::ALL); sa​.setSearchingAll(TRUE); sa​.apply(root); SoPathList & pl = sa​.getPaths(); SbDict namedict; for (int i = 0; i < pl​.getLength(); i++) { SoFullPath * p = (SoFullPath*) pl[i]; if (p->getTail()->isOfType(SoVRMLImageTexture::getClassTypeId())) { SoVRMLImageTexture * tex = (SoVRMLImageTexture*) p->getTail(); if (tex->url​.getNum()) { // FIXME: we only check the first name here​. Should really check all of them SbName name = tex->url[0]​.getString(); unsigned long key = (unsigned long) ((void*) name​.getString()); void * tmp; if (!namedict​.find(key, tmp)) { (void) namedict​.enter(key, tex); } else if (tmp != (void*) tex) { SoNode * parent = p->getNodeFromTail(1); if (parent->isOfType(SoVRMLAppearance::getClassTypeId())) { ((SoVRMLAppearance*)parent)->texture = (SoNode*) tmp; } else { // not a valid VRML2 file​. Print a warning or something​. } } } } } sa​.reset(); SoOutput out; out​.setHeaderString("#VRML V2​.0 utf8"); SoWriteAction wa(&out); wa​.apply(root); root->unref(); }

Constructor & Destructor Documentation

SoVRMLImageTexture::SoVRMLImageTexture (void)Constructor​.

SoVRMLImageTexture::~SoVRMLImageTexture () [protected], [virtual]Destructor​.

Member Function Documentation

SoType SoVRMLImageTexture::getTypeId (void) const [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: void foo(SoNode * node) { if (node->getTypeId() == SoFile::getClassTypeId()) { SoFile * filenode = (SoFile *)node; // safe downward cast, knows the type } }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​. Reimplemented from SoVRMLTexture​.

const SoFieldData * SoVRMLImageTexture::getFieldData (void) const [protected], [virtual]Returns a pointer to the class-wide field data storage object for this instance​. If no fields are present, returns NULL​. Reimplemented from SoVRMLTexture​.

void SoVRMLImageTexture::setDelayFetchURL (const SbBool onoff) [static]Sets whether the image loading is delayed until the first time the image is needed, or if the image is loaded immediately when the url field is changed/set​. Default value is TRUE​.

void SoVRMLImageTexture::setPrequalifyFileCallBack (VRMLPrequalifyFileCallback * cb, void * closure) [static]Sets the prequalify callback for ImageTexture nodes​. This is a callback that will be called when an image is about to be read​.

void SoVRMLImageTexture::allowPrequalifyFile (SbBool enable)Enable prequalify file loading​.

void SoVRMLImageTexture::doAction (SoAction * action) [virtual]This function performs the typical operation of a node for any action​. Reimplemented from SoNode​.

void SoVRMLImageTexture::GLRender (SoGLRenderAction * action) [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 SoVRMLTexture​.

void SoVRMLImageTexture::callback (SoCallbackAction * action) [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​.

void SoVRMLImageTexture::rayPick (SoRayPickAction * action) [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​.

void SoVRMLImageTexture::setImage (const SbImage & image)Set the image data for this node​. Can be used by the prequalify callback to set the data in the node​.

const SbImage * SoVRMLImageTexture::getImage (void) constReturns the texture image​.

void SoVRMLImageTexture::setImageDataMaxAge (const uint32_t maxage) [static]This API member is considered internal to the library, as it is not likely to be of interest to the application programmer​.


SbBool SoVRMLImageTexture::readInstance (SoInput * in, unsigned short flags) [protected], [virtual]This method is mainly intended for internal use during file import operations​. It reads a definition of an instance from the input stream in​. The input stream state points to the start of a serialized / persistant representation of an instance of this class type​. TRUE or FALSE is returned, depending on if the instantiation and configuration of the new object of this class type went ok or not​. The import process should be robust and handle corrupted input streams by returning FALSE​. flags is used internally during binary import when reading user extension nodes, group nodes or engines​. Reimplemented from SoNode​.

int SoVRMLImageTexture::getReadStatus (void) const [protected]Returns the read status​.

void SoVRMLImageTexture::setReadStatus (int status) [protected]Sets the read status​.

AuthorGenerated automatically by Doxygen for Coin from the source code​.
0
Johanes Gumabo
Data Size   :   41,312 byte
man-SoVRMLImageTexture.3coin4Build   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   3 / 192,552
Visitor ID   :     :  
Visitor IP   :   3.145.105.85   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.