cgv
cgv::media::image::image_writer Class Reference

the image writer chooses a specific writer automatically based on the extension of the given file name More...

#include <image_writer.h>

Inheritance diagram for cgv::media::image::image_writer:
cgv::base::base cgv::data::ref_counted cgv::reflect::self_reflection_tag

Public Member Functions

 image_writer (const std::string &file_name)
 construct an image writer from a file name and choose a writer from the extension More...
 
 ~image_writer ()
 close file on destruction
 
std::string get_type_name () const
 overload to return the type name of this object
 
std::string get_property_declarations ()
 return a semicolon separated list of property declarations of the form "name:type", by default an empty list is returned
 
bool is_format_supported (const component_format &cf, const std::vector< component_format > *palette_formats=0) const
 check if the chosen writer supports the given component format More...
 
std::string get_options () const
 return a colon separated list of supported options
 
const std::string & get_last_error () const
 return a reference to the last error message
 
bool write_image (const const_data_view &dv, const std::vector< const_data_view > *palettes=0, double duration=0)
 
bool close ()
 close image file;
 
bool supports_multiple_images () const
 return whether multiple images are supported, default implementation returns false
 
virtual std::string get_default_options () const
 overload to provide default options for registration
 
virtual void on_register ()
 overload to handle register events that is sent after the instance has been registered More...
 
virtual void unregister ()
 overload to handle unregistration of instances
 
virtual void stream_stats (std::ostream &)
 overload to show the content of this object
 
virtual data::ref_ptr< named, true > get_named ()
 cast upward to named
 
virtual data::ref_ptr< node, true > get_node ()
 cast upward to node
 
virtual data::ref_ptr< group, true > get_group ()
 cast upward to group
 
template<class T >
data::ref_ptr< T, true > cast ()
 cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
T * get_interface ()
 use dynamic type cast to check for the given interface
 
template<class T >
const T * get_const_interface () const
 use dynamic type cast to check for the given interface
 
virtual void update ()
 this virtual update allows for example to ask a view to update the viewed value. The default implementation is empty.
 
virtual void * get_user_data () const
 this virtual method allows to pass application specific data for internal purposes More...
 
int get_ref_count () const
 read access to current count
 

Static Public Member Functions

static const std::string & get_supported_extensions (char sep=';')
 return a string with a list of supported extensions, where the list entries are separated with the passed character that defaults to a semicolon
 
static std::string construct_filter_string ()
 use this to generate a file_open_dialog or file_save_dialog
 

Protected Member Functions

bool set_void (const std::string &property, const std::string &type, const void *value)
 abstract interface for the setter, by default it simply returns false
 
bool get_void (const std::string &property, const std::string &type, void *value)
 abstract interface for the getter, by default it simply returns false
 
void set_ref_count (int c) const
 write access is also const to allow ref counted pointers to const instances
 

Static Protected Member Functions

template<class T >
static data::ref_ptr< T, true > cast_dynamic (base *b)
 use dynamic cast for upcast to given class
 

Protected Attributes

abst_image_writerwr
 store a pointer to the chosen reader
 
bool is_opened
 whether file has been opened
 
std::string file_name
 store the file name
 
std::string last_error
 store the last error not resulting from writer implementations
 

property interface

virtual bool self_reflect (cgv::reflect::reflection_handler &)
 used for simple self reflection More...
 
virtual void on_set (void *member_ptr)
 this callback is called when the set_void method has changed a member and can be overloaded in derived class
 
virtual bool call_void (const std::string &method, const std::vector< std::string > &param_value_types, const std::vector< const void * > &param_value_ptrs, const std::string &result_type="", void *result_value_ptr=0)
 abstract interface to call an action More...
 
void set (const std::string &property, const char *value)
 specialization of set method to support const char* as strings
 
template<typename T >
void set (const std::string &property, const T &value)
 set a property of the element to the given value and perform standard conversions if necessary. More...
 
template<typename T >
get (const std::string &property)
 query a property of the element and perform standard conversions if necessary. More...
 
void multi_set (const std::string &property_assignments, bool report_error=true)
 set several properties More...
 
bool is_property (const std::string &property_name, std::string *type_name=0)
 check if the given name specifies a property. More...
 
void * find_member_ptr (const std::string &property_name, std::string *type_name=0)
 find a member pointer by name. More...
 

Detailed Description

the image writer chooses a specific writer automatically based on the extension of the given file name

Constructor & Destructor Documentation

◆ image_writer()

cgv::media::image::image_writer::image_writer ( const std::string &  file_name)

construct an image writer from a file name and choose a writer from the extension

construct an image image_writer from a file name and choose a image_writer from the extension

Member Function Documentation

◆ call_void()

bool cgv::base::base::call_void ( const std::string &  method,
const std::vector< std::string > &  param_value_types,
const std::vector< const void * > &  param_value_ptrs,
const std::string &  result_type = "",
void *  result_value_ptr = 0 
)
virtualinherited

abstract interface to call an action

overload to implement the execution of a method based on the method name and the given parameters

, i.e. a class method based on the action name and the given parameters. The default implementation uses the self_reflect() method to dispatch this call. If not found, the get_void method returns false.

◆ find_member_ptr()

void * cgv::base::base::find_member_ptr ( const std::string &  property_name,
std::string *  type_name = 0 
)
inherited

find a member pointer by name.

If not found the null pointer is returned. If the type name string pointer is provided, the type of the property is copied to the referenced string.

◆ get()

template<typename T >
T cgv::base::base::get ( const std::string &  property)
inlineinherited

query a property of the element and perform standard conversions if necessary.

This templated version simply extracts the type of the value from the reference and calls the set_void() method. Note that this only works if the template cgv::type::info::type_name<T> is overloaded for the value type.

◆ get_user_data()

void * cgv::base::base::get_user_data ( ) const
virtualinherited

this virtual method allows to pass application specific data for internal purposes

this virtual method allows derived classes to pass application specific data

◆ is_format_supported()

bool cgv::media::image::image_writer::is_format_supported ( const component_format cf,
const std::vector< component_format > *  palette_formats = 0 
) const

check if the chosen writer supports the given component format

check if the chosen image_writer supports the given component format

◆ is_property()

bool cgv::base::base::is_property ( const std::string &  property_name,
std::string *  type_name = 0 
)
inherited

check if the given name specifies a property.

If the type name string pointer is provided, the type of the property is copied to the referenced string.

◆ multi_set()

void cgv::base::base::multi_set ( const std::string &  property_assignments,
bool  report_error = true 
)
inherited

set several properties

set several properties, which are defined as colon separated assignments, where the types are derived automatically

, which are defined as colon separated assignments, where the types are derived automatically to bool, int, double or std::string.

◆ on_register()

void cgv::base::base::on_register ( )
virtualinherited

overload to handle register events that is sent after the instance has been registered

overload to return a type info structure. By default an empty pointer is returned.

◆ self_reflect()

bool cgv::base::base::self_reflect ( cgv::reflect::reflection_handler )
virtualinherited

used for simple self reflection

is used by default implementation of set_void, get_void and get_property_declarations

The overloaded implementation is used by the default implementations of set_void, get_void and get_property_declarations with corresponding reflection handlers. The default implementation of self_reflect is empty.

Reimplemented in cgv::render::render_config, and cgv::render::shader_config.

◆ set()

template<typename T >
void cgv::base::base::set ( const std::string &  property,
const T &  value 
)
inlineinherited

set a property of the element to the given value and perform standard conversions if necessary.

This templated version simply extracts the type of the value from the reference and calls the set_void() method. Note that this only works if the template cgv::type::info::type_name<T> is overloaded for the value type.

◆ write_image()

bool cgv::media::image::image_writer::write_image ( const const_data_view dv,
const std::vector< const_data_view > *  palettes = 0,
double  duration = 0 
)

write the data stored in the data view to a file with the file name given in the constructor. In case a vector of data views for palettes is given, write the image in paletted format.

write the data stored in the data view to a file with the file name given in the constructor.


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