H3D API  2.4.1
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
H3D::H3DImageLoaderNode Class Referenceabstract

H3DImageLoaderNode is a virtual base class for classes that read an image file format such as PNG or JPEG and construct an Image class with the data from the file. More...

#include <H3D/H3DImageLoaderNode.h>

Inheritance diagram for H3D::H3DImageLoaderNode:
Inheritance graph

Classes

struct  FileReaderRegistration
 Class used to register a class to the registered file readers. More...
 

Public Types

typedef bool(* SupportsFileFunc) (const string &url)
 Function ptr type for callback to ask if loader supports a url.
 
typedef bool(* SupportsStreamFunc) (istream &is)
 Function ptr type for callback to ask if loader supports a stream.
 
- Public Types inherited from H3D::Node
typedef std::map< Node *, Node * > DeepCopyMap
 A map type used during a deep copy clone() to map from original nodes to cloned nodes.
 

Public Member Functions

 H3DImageLoaderNode ()
 Constructor.
 
virtual ImageloadImage (const string &url)=0
 Pure virtual function to load an Image from a url. More...
 
virtual ImageloadImage (istream &)
 Load an image from an istream. More...
 
virtual string defaultXMLContainerField ()
 Returns the default xml containerField attribute value. More...
 
- Public Member Functions inherited from H3D::Node
 Node ()
 Constructor.
 
virtual Nodeclone (bool deepCopy=true, DeepCopyMap *deepCopyMap=NULL)
 Returns a new instance of this node type with the same state as this one. More...
 
virtual ~Node ()
 Destructor.
 
X3DPrototypeInstancegetProtoInstanceParent ()
 If this node is the root node in the proto body of a X3DPrototypeInstance then this will return that node. More...
 
void setProtoInstanceParent (X3DPrototypeInstance *p)
 Set the X3DPrototypeInstance this node is the the root node if applicaple.
 
virtual void render ()
 the render() function is used for the depth-first rendering traversal of the scene-graph. More...
 
virtual void traverseSG (TraverseInfo &ti)
 traverseSG is called once per scenegraph loop on the scene in order to traverse the scenegraph. More...
 
virtual bool lineIntersect (const Vec3f &from, const Vec3f &to, LineIntersectResult &result)
 Detect intersection between a line segment and the Node. More...
 
virtual void closestPoint (const Vec3f &p, NodeIntersectResult &result)
 Find closest point on Node to p. More...
 
virtual bool movingSphereIntersect (H3DFloat radius, const Vec3f &from, const Vec3f &to, NodeIntersectResult &result)
 Detect collision between a moving sphere and the Node. More...
 
virtual FieldgetField (const string &_name) const
 return a pointer to the field specified by name within this instance
 
int addDestructCallback (void(*func)(Node *, void *), void *args)
 Add a callback function to be run on destruction of node. More...
 
int removeDestructCallback (void(*func)(Node *, void *), void *args)
 Add a callback function to be run on destruction of node. More...
 

Static Public Member Functions

static H3DImageLoaderNodegetSupportedFileReader (const string &url)
 Given an url to a file, it returns an instance of a H3DImageLoaderNode class that can handle that file type. More...
 
static H3DImageLoaderNodegetSupportedFileReader (istream &is)
 Given an istream, it returns an instance of a H3DImageLoaderNode class that can handle that image type. More...
 
static void registerFileReader (const string &name, CreateNodeFunc create, SupportsFileFunc supports, SupportsStreamFunc supports_stream=NULL)
 Register a file reader that can then be returned by getSupportedFileReader(). More...
 
static void registerFileReader (const FileReaderRegistration &fr)
 Register a file reader that can then be returned by getSupportedFileReader().
 
- Static Public Member Functions inherited from H3D::Node
static unsigned int nrNodesAlive ()
 Returns the nr of nodes currently alive, i.e. nodes created but not destructed.
 
static int nrNodesCreated ()
 Returns the number of nodes created in total since the start of the program.
 

Additional Inherited Members

- Protected Member Functions inherited from H3D::Node
void cloneFieldValue (Field &_from, Field &_to, bool deepCopy, DeepCopyMap &deepCopyMap)
 A helper function for the clone() method. More...
 
- Static Protected Member Functions inherited from H3D::Node
static NodegetClonedInstance (Node *original, bool deepCopy, DeepCopyMap &deepCopyMap)
 A helper function for nodes that implement clone() More...
 

Detailed Description

H3DImageLoaderNode is a virtual base class for classes that read an image file format such as PNG or JPEG and construct an Image class with the data from the file.

Each subclass must define the loadImage () function. It is used by e.g. the ImageTexture node.

Member Function Documentation

◆ defaultXMLContainerField()

virtual string H3D::H3DImageLoaderNode::defaultXMLContainerField ( )
inlinevirtual

Returns the default xml containerField attribute value.

For this node it is "imageLoader".

Reimplemented from H3D::Node.

◆ getSupportedFileReader() [1/2]

H3DImageLoaderNode * H3DImageLoaderNode::getSupportedFileReader ( const string &  url)
static

Given an url to a file, it returns an instance of a H3DImageLoaderNode class that can handle that file type.

If no such class is registered NULL is returned.

Referenced by H3D::Image3DTexture::SFImage::loadImage(), and H3D::ImageTexture::SFImage::loadImage().

◆ getSupportedFileReader() [2/2]

H3DImageLoaderNode * H3DImageLoaderNode::getSupportedFileReader ( istream &  is)
static

Given an istream, it returns an instance of a H3DImageLoaderNode class that can handle that image type.

If no such class is registered NULL is returned.

◆ loadImage() [1/2]

virtual Image* H3D::H3DImageLoaderNode::loadImage ( const string &  url)
pure virtual

Pure virtual function to load an Image from a url.

Returns
An Image * with the image data loaded from the url.

Implemented in H3D::RawImageLoader, H3D::NrrdImageLoader, H3D::FreeImageLoader, H3D::DicomImageLoader, and H3D::DDSImageLoader.

Referenced by H3D::Image3DTexture::SFImage::loadImage(), and H3D::ImageTexture::SFImage::loadImage().

◆ loadImage() [2/2]

virtual Image* H3D::H3DImageLoaderNode::loadImage ( istream &  )
inlinevirtual

Load an image from an istream.

Does not need to be implemented for all image loaders

Returns
An Image * with the image data loaded from the url. Returns NULL if not implemented for image loader.

Reimplemented in H3D::FreeImageLoader, and H3D::DDSImageLoader.

◆ registerFileReader()

static void H3D::H3DImageLoaderNode::registerFileReader ( const string &  name,
CreateNodeFunc  create,
SupportsFileFunc  supports,
SupportsStreamFunc  supports_stream = NULL 
)
inlinestatic

Register a file reader that can then be returned by getSupportedFileReader().

Parameters
nameThe name of the class
createA function for creating an instance of that class.
supportsA function to determine if the class supports a given file type.
supports_streamA function to determine if the class supports loading from a file stream.

The documentation for this class was generated from the following files: