cgv
Loading...
Searching...
No Matches
cgv::overlay::transfer_function_editor Class Reference
Inheritance diagram for cgv::overlay::transfer_function_editor:
cgv::overlay::themed_canvas_overlay cgv::overlay::canvas_overlay cgv::gui::theme_observer cgv::overlay::overlay cgv::base::node cgv::render::drawable cgv::gui::provider cgv::gui::event_handler cgv::base::named cgv::base::traverse_policy cgv::base::traverse_policy cgv::base::base cgv::data::ref_counted cgv::reflect::self_reflection_tag

Classes

class  control_point
 
struct  layout_attributes
 

Public Member Functions

std::string get_type_name () const override
 overload to return the type name of this object
 
void clear (cgv::render::context &ctx) override
 clear all objects living in the context like textures or display lists
 
bool handle_mouse_event (cgv::gui::mouse_event &e, cgv::ivec2 local_mouse_pos) override
 overload this method to handle mouse events; local_mouse_pos is the mouse position in the local coordinate space of the overlay rectangle
 
void handle_member_change (cgv::data::informed_ptr ptr) override
 implement to handle member changes
 
bool init (cgv::render::context &ctx) override
 this method is called after creation or recreation of the context, return whether all necessary functionality is supported
 
void init_frame (cgv::render::context &ctx) override
 this method is called in one pass over all drawables before the draw method
 
void draw_content (cgv::render::context &ctx) override
 
void handle_theme_change (const cgv::gui::theme_info &theme) override
 override in your class to handle theme changes
 
bool get_opacity_support ()
 
void set_opacity_support (bool flag)
 
std::shared_ptr< cgv::media::transfer_functionget_transfer_function () const
 
void set_transfer_function (std::shared_ptr< cgv::media::transfer_function > transfer_function)
 
void notify_transfer_function_change ()
 
void set_histogram_data (const std::vector< unsigned > data)
 
void set_selected_color (rgb color)
 
void set_on_change_callback (std::function< void(void)> cb)
 
void set_on_color_point_select_callback (std::function< void(rgb)> cb)
 
void set_on_color_point_deselect_callback (std::function< void(void)> cb)
 
- Public Member Functions inherited from cgv::overlay::themed_canvas_overlay
 themed_canvas_overlay ()
 creates an overlay in the bottom left corner with zero size using a canvas for 2d drawing
 
bool get_background_visible () const
 
void set_background_visible (bool flag)
 
- Public Member Functions inherited from cgv::overlay::canvas_overlay
 canvas_overlay ()
 creates an overlay in the bottom left corner with zero size using a canvas for 2d drawing
 
virtual void on_set (void *member_ptr) override
 default implementation of that calls handle_member_change and afterwards upates the member in the gui and post damage to the canvas overlay
 
void after_finish (cgv::render::context &) override
 draw the content of the canvas overlay
 
void post_damage (bool redraw=true)
 
ivec2 get_local_mouse_pos (ivec2 mouse_pos) const override
 return the mouse position local to the container of this overlay taking the canvas origin into account
 
bool is_hit (const ivec2 &mouse_pos) const override
 Test if the mouse pointer is hovering over this overlay and returns true if this is the case.
 
bool is_hit_local (const ivec2 &local_mouse_pos) const
 See is_hit.
 
- Public Member Functions inherited from cgv::overlay::overlay
virtual bool self_reflect (cgv::reflect::reflection_handler &_rh)
 overload to reflect members of derived classes
 
virtual void stream_help (std::ostream &os)
 overload to stream help information to the given output stream
 
virtual bool handle (cgv::gui::event &e)
 handle incomming events; calls handle_key_events or handle_mouse_events depending on the event type; mouse events will only be handled if the mouse is over the overlay rectangle
 
virtual bool handle_key_event (cgv::gui::key_event &e)
 overload this method to handle key events
 
bool blocks_events () const
 return whether this overlay blocks events, i.e. does not pass them to the next event handler
 
void blocks_events (bool flag)
 set whether the overlay blocks events
 
ivec2 get_viewport_size () const
 return the current viewport size
 
cgv::g2d::irect get_rectangle () const
 return the current rectangle area (in screen coordinates) of the overlay taking layout into account
 
cgv::g2d::irect get_local_rectangle () const
 return the current rectangle area of the overlay in local space, i.e. with position set to zero
 
Alignment get_horizontal_alignment () const
 get the horizontal alignment
 
Alignment get_vertical_alignment () const
 get the vertical alignment
 
vec2 get_percentual_offset () const
 get the percentual alignment offset (only valid if get_horizontal_alignment() or get_vertical_alignment() returns AlignmentOption::kPercentual)
 
void set_alignment (Alignment horizontal, Alignment vertical, vec2 percentual_offset=vec2(-1.0f))
 set the alignment
 
StretchMode get_stretch_mode () const
 get the stretch
 
vec2 get_percentual_size () const
 get the percentual stretch (only valid if get_stretch_mode() returns StretchMode::kPercentual)
 
void set_stretch_mode (StretchMode stretch, vec2 percentual_size=vec2(-1.0f))
 set the stretch mode
 
ivec2 get_margin () const
 return the margin as set in the layout parameters
 
void set_margin (const ivec2 &margin)
 set the overlay margin
 
void set_size (const ivec2 &size)
 set the default size of the overlay before stretch gets applied
 
void set_visibility (bool visible)
 set the visibility of the overlay
 
void toggle_visibility ()
 toggle the visibility of the overlay
 
bool ensure_viewport (cgv::render::context &ctx)
 Check whether the viewport size has changed since the last call to this method.
 
bool ensure_layout (cgv::render::context &ctx)
 
bool begin_overlay_gui ()
 begins a tree node if create default tree node is set in the gui options; automatically creates the layout gui
 
void end_overlay_gui ()
 ends the tree node of the overlay gui
 
void create_layout_gui ()
 provides a default gui implementation for private overlay layout members
 
void create_gui ()
 Creates a tree node containing the overlay layout options and the gui as specified by the derived overlay class.
 
- Public Member Functions inherited from cgv::base::node
 node (const std::string &name="")
 construct from name
 
node_ptr get_parent () const
 return the parent node
 
base_ptr get_root () const
 return the root node by traversing parents until no more parent is available
 
void set_parent (node_ptr _parent)
 set a new parent node
 
node_ptr get_node ()
 cast upward to node
 
const_node_ptr get_node_const ()
 cast upward to const node
 
- Public Member Functions inherited from cgv::base::named
 named (const std::string &name="")
 construct from name
 
const std::string & get_name () const
 return the parent node
 
void set_name (const std::string &_name)
 set a new parent node
 
named_ptr get_named ()
 cast upward to named
 
const_named_ptr get_named_const ()
 cast upward to const named
 
- Public Member Functions inherited from cgv::base::base
virtual std::string get_default_options () const
 overload to provide default options for registration
 
std::string get_name_or_type_name () const
 determine name of instance by checking cgv::base::named interface and in failure fallback to get_type_name()
 
virtual void on_register ()
 overload to handle register events that is sent after the instance has been registered
 
virtual void unregister ()
 overload to handle unregistration of instances
 
virtual bool on_exit_request ()
 overload to handle the appication exit request, return true if exiting is allowed and false otherwise
 
virtual void stream_stats (std::ostream &)
 overload to show the content of this object
 
virtual data::ref_ptr< group, trueget_group ()
 perform downcast to group
 
virtual data::ref_ptr< const named, trueget_named_const () const
 perform downcast to const named
 
virtual data::ref_ptr< const node, trueget_node_const () const
 perform downcast to const node
 
virtual data::ref_ptr< const group, trueget_group_const () const
 perform downcast to const group
 
template<class T >
data::ref_ptr< T, truecast ()
 cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
data::ref_ptr< const T, truecast_const ()
 const cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
Tget_interface ()
 use dynamic type cast to check for the given interface
 
template<class T >
const Tget_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 voidget_user_data () const
 this virtual method allows to pass application specific data for internal purposes
 
virtual std::string get_property_declarations ()
 return a semicolon separated list of property declarations
 
virtual bool set_void (const std::string &property, const std::string &value_type, const void *value_ptr)
 abstract interface for the setter of a dynamic property.
 
virtual bool get_void (const std::string &property, const std::string &value_type, void *value_ptr)
 abstract interface for the getter of a dynamic property.
 
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
 
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.
 
template<typename T >
T get (const std::string &property)
 query a property of the element and perform standard conversions if necessary.
 
void multi_set (const std::string &property_assignments, bool report_error=true)
 set several properties
 
bool is_property (const std::string &property_name, std::string *type_name=0)
 check if the given name specifies a property.
 
voidfind_member_ptr (const std::string &property_name, std::string *type_name=0)
 find a member pointer by name.
 
- Public Member Functions inherited from cgv::data::ref_counted
int get_ref_count () const
 read access to current count
 
- Public Member Functions inherited from cgv::render::drawable
 drawable ()
 default construction
 
void hide ()
 hide the drawable
 
void show ()
 show the drawable
 
bool is_visible () const
 check whether the drawable is visible
 
contextget_context () const
 access the current context. The context will be available latestly in the init method but not in the contructor.
 
void set_context (context *_ctx)
 set the current focus context, this should only be called by the context itself
 
viewfind_view_as_node (size_t view_idx=0) const
 convenience function to find the view control in the current hierarchy
 
bool get_world_location (int x, int y, const view &V, dvec3 &world_location, double *window_z_ptr=0) const
 use given view together with depth buffer of context in order to compute the world location of the point at mouse pointer location (x,y)
 
void post_redraw ()
 posts a redraw event to the current context if one is available
 
void force_redraw ()
 forces a redraw right now. This cannot be called from init, init_frame, draw, finish_draw, finish_frame and clear
 
virtual void resize (unsigned int w, unsigned int h)
 callback to announce resizing of the output window
 
virtual void draw (context &)
 overload to draw the content of this drawable
 
virtual void finish_draw (context &)
 this method is called when the current drawable is left in a tree traversal that calls the draw method
 
virtual void finish_frame (context &)
 this method is called in one pass over all drawables after drawing
 
virtual void destruct (context &) final
 do not use destruct for a drawable but clear!!
 
- Public Member Functions inherited from cgv::base::traverse_policy
 traverse_policy (int _policy=TP_ALL+TP_STOP_ON_SUCCESS, bool _active=true, int _focus=-1)
 construct default traverse policy that visits everything
 
int get_policy () const
 return the policy without the stop on success flag
 
bool stop_on_success () const
 return whether to stop on success
 
bool stop_on_failure () const
 return whether to stop on failure
 
void set_policy (int _policy)
 set a new policy, always add stop on success flag if needed
 
int get_focused_child () const
 return the focused child or -1 if none is focused
 
void set_focused_child (int _focused_child)
 set the focused child
 
bool get_active () const
 return whether the current node is active
 
void set_active (bool _active)
 set the active flag of the current node
 
- Public Member Functions inherited from cgv::gui::provider
void remove_element (cgv::base::base_ptr)
 remove a single element from the gui
 
void remove_all_elements ()
 this method removes all elements from the gui and can be used in a method that rebuilds the complete gui
 
cgv::base::base_ptr find_element (const std::string &name)
 find a gui element by name in the current group, return empty pointer if not found
 
template<typename T >
data::ref_ptr< view< T > > find_view (const T &value, int *idx_ptr=0)
 find a view of a given class member
 
template<typename T >
data::ref_ptr< control< T > > find_control (T &value, int *idx_ptr=0)
 find a control of a given class member
 
control_ptr find_control_void (void *value_ptr, int *idx_ptr)
 access to control of untyped member pointer
 
view_ptr find_view_void (void *value_ptr, int *idx_ptr)
 access to view of untyped member pointer
 
template<typename T >
void set_control_property (T &value, const std::string &property_name, const std::string &property_value)
 Set the property value of all controls of a given class member.
 
gui_group_ptr get_parent_group () const
 use the parent group to append to be managed elements that should be destroyed in a post_recreate_gui event
 
view_ptr add_view_void (const std::string &label, const void *value_ptr, const std::string &value_type, const std::string &gui_type, const std::string &options, const std::string &align)
 add a newly created view to the group
 
control_ptr add_control_void (const std::string &label, void *value_ptr, abst_control_provider *acp, const std::string &value_type, const std::string &gui_type, const std::string &options, const std::string &align, void *user_data)
 add a newly created control to the group
 
 provider ()
 default construction
 
 ~provider ()
 ensure to remove posted recreation callbacks
 
virtual std::string get_gui_name () const
 Derive a name for this instance that can be used in the gui as heading.
 
virtual std::string get_parent_type () const
 Returns the group type that should be used by the class embedding the gui of the provider.
 
virtual bool ensure_selected_in_tab_group_parent ()
 ensure that my UI is selected in the parent group in case this is a tab group, otherwise return false
 
virtual void update_member (void *member_ptr)
 call this to update all views and controls of a member
 
virtual void update_all_members ()
 call this to update all views and controls of all member
 
virtual std::string get_menu_path () const
 return a path in the main menu to select the gui
 
virtual shortcut get_shortcut () const
 return a shortcut to activate the gui without menu navigation
 
virtual void recreate_gui ()
 Recreate the gui of this instance right now.
 
virtual void post_recreate_gui ()
 delayed recreation of gui
 
void align (const std::string &_align)
 send pure alignment information
 
std::string concat_enum_def (const std::vector< std::string > &names, const std::string &additional_first_name="", const std::string &additional_last_name="")
 add a new group to the given parent group, not supported yet
 
gui_group_ptr add_object_gui (cgv::base::base_ptr object, const std::string &label, const std::string &group_type, const std::string &options, const std::string &align)
 
void integrate_object_gui (cgv::base::base_ptr object)
 call this in create_gui() function to integrate gui of another provider object by setting the parent group and parent provider of the other object
 
void inline_object_gui (cgv::base::base_ptr object)
 integrate (if not explicitly done before) and inline the gui of another object that must be derived from provider
 
gui_group_ptr add_group (const std::string &label, const std::string &group_type, const std::string &options="", const std::string &align="\n")
 add a newly created subgroup to the group
 
cgv::base::base_ptr add_decorator (const std::string &label, const std::string &decorator_type, const std::string &options="", const std::string &align="\n")
 add a newly created decorator to the group
 
button_ptr add_button (const std::string &label, const std::string &options="", const std::string &align="\n")
 use the current gui driver to append a new button with the given label
 
template<typename T >
data::ref_ptr< view< T > > add_view (const std::string &label, const T &value, const std::string &gui_type="", const std::string &options="", const std::string &align="\n")
 use this to add a new view to the gui with a given value type, gui type and init options
 
template<typename T >
data::ref_ptr< control< T > > add_control (const std::string &label, T &value, const std::string &gui_type="", const std::string &options="", const std::string &align="\n")
 use this to add a new control to the gui with a given value type, gui type and init options
 
template<typename T >
data::ref_ptr< control< T > > add_control (const std::string &label, control_provider< T > *provider, const std::string &gui_type="", const std::string &options="", const std::string &align="\n", void *user_data=0)
 use this to add a new control to the gui, where the control is implemented with a control provider class
 
template<typename T >
data::ref_ptr< control< T > > add_member_control (cgv::base::base *base_ptr, const std::string &label, T &value, const std::string &gui_type="", const std::string &options="", const std::string &align="\n")
 add control with callback to cgv::base::on_set method on cgv::gui::control::value_change
 
bool add_tree_node (const std::string &label, bool &toggle, int level, const std::string &a="\n", gui_group_ptr ggp=gui_group_ptr())
 add a collapsable node to the gui (deprecated)
 
template<typename T >
bool begin_tree_node (const std::string &label, const T &value, bool initial_visibility=false, const std::string &options="", gui_group_ptr ggp=gui_group_ptr())
 Begin a sub tree of a tree structured gui.
 
template<typename T >
void end_tree_node (const T &value)
 template specialization that allows to specify value reference plus node_instance by using the result of the function with_instance(value,idx) for the value argument finish a sub tree begun with begin_tree_node

 
template<typename T >
bool is_tree_node_visible (const T &value) const
 return whether the sub tree attached to a value is visible
 
template<typename T >
void set_tree_node_visibility (const T &value, bool is_visible)
 set the visibility status of sub tree attached to a value. This calls the post_recreate method if needed.
 
bool begin_tree_node_void (const std::string &label, const void *value_ptr, int index=-1, bool initial_visibility=false, const std::string &options="", gui_group_ptr ggp=gui_group_ptr())
 void version of the templated functions
 
void end_tree_node_void (const void *value_ptr, int index=-1)
 
bool is_tree_node_visible_void (const void *value_ptr, int index) const
 
void set_tree_node_visibility_void (const void *value_ptr, int index, bool is_visible)
 
template<typename T >
bool add_gui (const std::string &label, T &value, const std::string &gui_type="", const std::string &options="")
 Add a composed gui of the given gui_type for the given value.
 
- Public Member Functions inherited from cgv::gui::event_handler
 event_handler ()
 default construction
 
bool grab_focus ()
 grab the focus in all parent nodes
 
bool add_key_control (const std::string &property, const std::string &options, cgv::base::group_ptr group=cgv::base::group_ptr())
 add a key control for the given property with the given options.
 

Protected Types

enum class  DraggableType { kColor , kOpacity }
 
enum class  HistogramType { kNone = 0 , kNearest = 1 , kLinear = 2 , kSmooth = 3 }
 
using color_point = control_point< rgb >
 
using opacity_point = control_point< void * >
 

Protected Member Functions

 DEFINE_GENERIC_RENDER_DATA_CLASS (textured_geometry, 2, vec2, position, vec2, texcoord)
 
void init_styles () override
 
void update_layout (const ivec2 &parent_size)
 
color_point make_color_point () const
 
opacity_point make_opacity_point () const
 
void clear_data ()
 
void force_update_data_from_transfer_function ()
 
void update_data_from_transfer_function ()
 
void update_transfer_function_from_data ()
 
void rescale_domain ()
 
void add_point (const vec2 &pos)
 
void erase_point (const cgv::g2d::draggable *point)
 
void set_selected_point_domain_value ()
 
cgv::g2d::draggable * get_hit_point (const vec2 &pos)
 
void set_value_label (vec2 position, const std::string &text)
 
void handle_drag (cgv::g2d::DragAction action, DraggableType type)
 
void handle_selection_change ()
 
std::string value_to_string (float value)
 
void sort_points ()
 
void update_point_positions ()
 
bool create_preview_texture ()
 
bool create_background_texture ()
 
void create_geometry ()
 
void create_gui_impl () override
 virtual method to implement the derived class gui creation
 
- Protected Member Functions inherited from cgv::overlay::themed_canvas_overlay
void begin_content (cgv::render::context &ctx, bool clear_frame_buffer=true)
 
void init_container_style (const cgv::gui::theme_info &theme)
 
cgv::g2d::irect get_content_rectangle () const
 return the current rectangle area of the themed_overlay content
 
int padding () const
 
- Protected Member Functions inherited from cgv::overlay::canvas_overlay
bool ensure_layout (cgv::render::context &ctx)
 
void post_recreate_layout ()
 
void clear_damage ()
 
bool is_damaged () const
 
void begin_content (cgv::render::context &ctx, bool clear_frame_buffer=true)
 
void end_content (cgv::render::context &ctx, bool keep_damage=false)
 
virtual void draw_impl (cgv::render::context &ctx)
 
void register_shader (const std::string &name, const std::string &filename)
 
- Protected Member Functions inherited from cgv::overlay::overlay
virtual void on_visibility_change ()
 called when the overlay visibility is changed through the default gui
 
virtual void on_layout_change ()
 called when the overlay layout parameters are changed through the default gui
 
void update_layout ()
 update the layout of the overlay container
 
- Protected Member Functions inherited from cgv::base::base
virtual ~base ()
 make destructor virtual and not accessible from outside
 
- Protected Member Functions inherited from cgv::data::ref_counted
 ref_counted ()
 constructor initializes the count to 0
 
void set_ref_count (int c) const
 write access is also const to allow ref counted pointers to const instances
 
- Protected Member Functions inherited from cgv::gui::provider
void set_parent (gui_group_ptr)
 the gui window sets the parent group through this method
 
void update_parent ()
 update the parent group
 
virtual void on_select ()
 called by selection_change_cb whenever the gui of this provider is selected
 
virtual void on_deselect ()
 called by selection_change_cb whenever the gui of this provider is deselected
 
virtual void selection_change_cb (cgv::base::base_ptr new_child, bool selected)
 this is called by the gui group when the selection changes
 

Protected Attributes

struct cgv::overlay::transfer_function_editor::layout_attributes layout
 
bool supports_opacity = false
 
cgv::media::transfer_function::InterpolationMode color_interpolation = cgv::media::transfer_function::InterpolationMode::kLinear
 
cgv::media::transfer_function::InterpolationMode opacity_interpolation = cgv::media::transfer_function::InterpolationMode::kLinear
 
std::string value_label
 
cgv::g2d::rect value_label_rectangle
 
rgba handle_color = { 0.9f, 0.9f, 0.9f, 1.0f }
 
rgba highlight_color = { 0.5f, 0.5f, 0.5f, 1.0f }
 
cgv::g2d::shape2d_style border_style
 
cgv::g2d::shape2d_style color_map_style
 
cgv::g2d::shape2d_style bg_style
 
cgv::g2d::shape2d_style hist_style
 
cgv::g2d::shape2d_style label_box_style
 
cgv::g2d::shape2d_style opacity_handle_style
 
cgv::g2d::shape2d_style polygon_style
 
cgv::g2d::arrow2d_style color_handle_style
 
cgv::g2d::line2d_style line_style
 
cgv::g2d::text2d_style cursor_label_style
 
cgv::g2d::text2d_style value_label_style
 
std::vector< unsigned > histogram
 
unsigned hist_max = 1
 
unsigned hist_max_non_zero = 1
 
bool hist_norm_ignore_zero = true
 
float hist_norm_gamma = 1.0f
 
HistogramType histogram_type = HistogramType::kNone
 
float opacity_scale_exponent = 1.0f
 
cgv::render::texture background_tex = { "flt32[R,G,B]", cgv::render::TF_NEAREST, cgv::render::TF_NEAREST, cgv::render::TW_REPEAT, cgv::render::TW_REPEAT }
 
cgv::render::texture preview_tex = { "uint8[R,G,B,A]" }
 
cgv::render::texture histogram_tex = { "flt32[R]" }
 
cgv::g2d::generic_2d_renderer color_handle_renderer
 
cgv::g2d::generic_2d_renderer opacity_handle_renderer
 
cgv::g2d::generic_2d_renderer line_renderer
 
cgv::g2d::generic_2d_renderer polygon_renderer
 
std::shared_ptr< cgv::media::transfer_functiontransfer_function
 
cgv::g2d::draggable_collection< color_pointcolor_draggables
 
cgv::g2d::draggable_collection< opacity_pointopacity_draggables
 
color_pointselected_color_draggable = nullptr
 
opacity_pointselected_opacity_draggable = nullptr
 
vec2 color_draggable_start_position = { 0.0f }
 
vec2 opacity_draggable_start_position = { 0.0f }
 
cgv::g2d::generic_render_data_vec2_rgba color_draggables_geometry
 
cgv::g2d::generic_render_data_vec2_rgba opacity_draggables_geometry
 
textured_geometry line_geometry
 
textured_geometry triangle_geometry
 
vec2 input_domain = { 0.0f, 1.0f }
 
float input_position = 0.0f
 
cgv::data::time_stamp build_time
 
std::function< void(void)> on_change_callback
 
std::function< void(rgb)> on_color_point_select_callback
 
std::function< void(void)> on_color_point_deselect_callback
 
- Protected Attributes inherited from cgv::overlay::themed_canvas_overlay
bool background_visible_ = true
 whether the background is visible (true by default)
 
- Protected Attributes inherited from cgv::overlay::canvas_overlay
cgv::g2d::canvas overlay_canvas
 
cgv::g2d::canvas content_canvas
 
- Protected Attributes inherited from cgv::base::node
node_ptr parent
 store a pointer to the parent node
 
- Protected Attributes inherited from cgv::base::named
std::string name
 store the name as a string
 
- Protected Attributes inherited from cgv::base::traverse_policy
TraversePolicy policy
 
bool active
 
int focus
 
- Protected Attributes inherited from cgv::gui::provider
gui_group_ptr parent_group
 driver specific handle for the group gui element managing the gui built in the provider
 
providerparent_provider
 

Static Protected Attributes

static const vec2 color_point_size = { 12.0f, 18.0f }
 
static const vec2 opacity_point_size = { 12.0f }
 

Additional Inherited Members

- Static Public Member Functions inherited from cgv::gui::provider
template<typename T >
static bool & ref_tree_node_visible_flag (const T &value)
 return a reference to the boolean flag, that tells whether the tree node for the passed value is visible
 
static bool & ref_tree_node_visible_flag_void (const void *value_ptr, int index=-1)
 
- Public Attributes inherited from cgv::overlay::overlay
gui_options_t gui_options
 options for the GUI creation of this overlay (must be set before GUI creation)
 
- Static Protected Member Functions inherited from cgv::base::base
template<class T >
static data::ref_ptr< T, truecast_dynamic (base *b)
 use dynamic cast for downcast to given class
 

Detailed Description

Definition at line 18 of file transfer_function_editor.h.

Member Typedef Documentation

◆ color_point

◆ opacity_point

Member Enumeration Documentation

◆ DraggableType

enum class cgv::overlay::transfer_function_editor::DraggableType
strongprotected

Definition at line 62 of file transfer_function_editor.h.

◆ HistogramType

enum class cgv::overlay::transfer_function_editor::HistogramType
strongprotected

Definition at line 98 of file transfer_function_editor.h.

Constructor & Destructor Documentation

◆ transfer_function_editor()

cgv::overlay::transfer_function_editor::transfer_function_editor ( )

Definition at line 23 of file transfer_function_editor.cxx.

Member Function Documentation

◆ add_point()

void cgv::overlay::transfer_function_editor::add_point ( const vec2 pos)
protected

Definition at line 664 of file transfer_function_editor.cxx.

◆ clear()

void cgv::overlay::transfer_function_editor::clear ( cgv::render::context )
overridevirtual

clear all objects living in the context like textures or display lists

Reimplemented from cgv::overlay::canvas_overlay.

Definition at line 43 of file transfer_function_editor.cxx.

References cgv::overlay::canvas_overlay::clear(), and cgv::render::texture::destruct().

◆ clear_data()

void cgv::overlay::transfer_function_editor::clear_data ( )
protected

Definition at line 537 of file transfer_function_editor.cxx.

◆ create_background_texture()

bool cgv::overlay::transfer_function_editor::create_background_texture ( )
protected

Definition at line 923 of file transfer_function_editor.cxx.

◆ create_geometry()

void cgv::overlay::transfer_function_editor::create_geometry ( )
protected

Definition at line 934 of file transfer_function_editor.cxx.

◆ create_gui_impl()

void cgv::overlay::transfer_function_editor::create_gui_impl ( )
overrideprotectedvirtual

◆ create_preview_texture()

bool cgv::overlay::transfer_function_editor::create_preview_texture ( )
protected

Definition at line 900 of file transfer_function_editor.cxx.

◆ draw_content()

void cgv::overlay::transfer_function_editor::draw_content ( cgv::render::context ctx)
overridevirtual

Implements cgv::overlay::canvas_overlay.

Definition at line 214 of file transfer_function_editor.cxx.

◆ erase_point()

void cgv::overlay::transfer_function_editor::erase_point ( const cgv::g2d::draggable *  point)
protected

Definition at line 695 of file transfer_function_editor.cxx.

◆ force_update_data_from_transfer_function()

void cgv::overlay::transfer_function_editor::force_update_data_from_transfer_function ( )
protected

Definition at line 548 of file transfer_function_editor.cxx.

◆ get_hit_point()

cgv::g2d::draggable * cgv::overlay::transfer_function_editor::get_hit_point ( const vec2 pos)
protected

Definition at line 641 of file transfer_function_editor.cxx.

◆ get_opacity_support()

bool cgv::overlay::transfer_function_editor::get_opacity_support ( )
inline

Definition at line 186 of file transfer_function_editor.h.

◆ get_transfer_function()

std::shared_ptr< cgv::media::transfer_function > cgv::overlay::transfer_function_editor::get_transfer_function ( ) const
inline

Definition at line 189 of file transfer_function_editor.h.

◆ get_type_name()

std::string cgv::overlay::transfer_function_editor::get_type_name ( ) const
inlineoverridevirtual

overload to return the type name of this object

Reimplemented from cgv::base::node.

Definition at line 173 of file transfer_function_editor.h.

◆ handle_drag()

void cgv::overlay::transfer_function_editor::handle_drag ( cgv::g2d::DragAction  action,
DraggableType  type 
)
protected

Definition at line 757 of file transfer_function_editor.cxx.

◆ handle_member_change()

◆ handle_mouse_event()

bool cgv::overlay::transfer_function_editor::handle_mouse_event ( cgv::gui::mouse_event e,
cgv::ivec2  local_mouse_pos 
)
overridevirtual

overload this method to handle mouse events; local_mouse_pos is the mouse position in the local coordinate space of the overlay rectangle

Reimplemented from cgv::overlay::overlay.

Definition at line 59 of file transfer_function_editor.cxx.

References cgv::overlay::overlay::get_rectangle(), cgv::overlay::overlay::get_viewport_size(), cgv::gui::MA_PRESS, cgv::gui::MB_LEFT_BUTTON, and cgv::gui::MB_RIGHT_BUTTON.

◆ handle_selection_change()

void cgv::overlay::transfer_function_editor::handle_selection_change ( )
protected

Definition at line 829 of file transfer_function_editor.cxx.

◆ handle_theme_change()

void cgv::overlay::transfer_function_editor::handle_theme_change ( const cgv::gui::theme_info theme)
overridevirtual

override in your class to handle theme changes

Reimplemented from cgv::overlay::themed_canvas_overlay.

Definition at line 307 of file transfer_function_editor.cxx.

References cgv::overlay::themed_canvas_overlay::handle_theme_change(), and cgv::gui::provider::post_recreate_gui().

◆ init()

bool cgv::overlay::transfer_function_editor::init ( cgv::render::context )
overridevirtual

this method is called after creation or recreation of the context, return whether all necessary functionality is supported

Reimplemented from cgv::overlay::themed_canvas_overlay.

Definition at line 169 of file transfer_function_editor.cxx.

References cgv::overlay::canvas_overlay::init().

◆ init_frame()

void cgv::overlay::transfer_function_editor::init_frame ( cgv::render::context )
overridevirtual

this method is called in one pass over all drawables before the draw method

Reimplemented from cgv::render::drawable.

Definition at line 192 of file transfer_function_editor.cxx.

References cgv::overlay::overlay::get_rectangle(), cgv::math::fvec< T, N >::size(), and cgv::overlay::overlay::update_layout().

◆ init_styles()

void cgv::overlay::transfer_function_editor::init_styles ( )
overrideprotectedvirtual

Reimplemented from cgv::overlay::themed_canvas_overlay.

Definition at line 438 of file transfer_function_editor.cxx.

◆ make_color_point()

color_point cgv::overlay::transfer_function_editor::make_color_point ( ) const
inlineprotected

Definition at line 135 of file transfer_function_editor.h.

◆ make_opacity_point()

opacity_point cgv::overlay::transfer_function_editor::make_opacity_point ( ) const
inlineprotected

Definition at line 139 of file transfer_function_editor.h.

◆ notify_transfer_function_change()

void cgv::overlay::transfer_function_editor::notify_transfer_function_change ( )
inline

Definition at line 194 of file transfer_function_editor.h.

◆ rescale_domain()

void cgv::overlay::transfer_function_editor::rescale_domain ( )
protected

Definition at line 631 of file transfer_function_editor.cxx.

◆ set_histogram_data()

void cgv::overlay::transfer_function_editor::set_histogram_data ( const std::vector< unsigned >  data)

Definition at line 409 of file transfer_function_editor.cxx.

◆ set_on_change_callback()

void cgv::overlay::transfer_function_editor::set_on_change_callback ( std::function< void(void)>  cb)
inline

Definition at line 202 of file transfer_function_editor.h.

◆ set_on_color_point_deselect_callback()

void cgv::overlay::transfer_function_editor::set_on_color_point_deselect_callback ( std::function< void(void)>  cb)
inline

Definition at line 208 of file transfer_function_editor.h.

◆ set_on_color_point_select_callback()

void cgv::overlay::transfer_function_editor::set_on_color_point_select_callback ( std::function< void(rgb)>  cb)
inline

Definition at line 205 of file transfer_function_editor.h.

◆ set_opacity_support()

void cgv::overlay::transfer_function_editor::set_opacity_support ( bool  flag)

Definition at line 392 of file transfer_function_editor.cxx.

◆ set_selected_color()

void cgv::overlay::transfer_function_editor::set_selected_color ( rgb  color)

Definition at line 430 of file transfer_function_editor.cxx.

◆ set_selected_point_domain_value()

void cgv::overlay::transfer_function_editor::set_selected_point_domain_value ( )
protected

Definition at line 723 of file transfer_function_editor.cxx.

◆ set_transfer_function()

void cgv::overlay::transfer_function_editor::set_transfer_function ( std::shared_ptr< cgv::media::transfer_function transfer_function)

Definition at line 398 of file transfer_function_editor.cxx.

◆ set_value_label()

void cgv::overlay::transfer_function_editor::set_value_label ( vec2  position,
const std::string &  text 
)
protected

Definition at line 743 of file transfer_function_editor.cxx.

◆ sort_points()

void cgv::overlay::transfer_function_editor::sort_points ( )
protected

Definition at line 886 of file transfer_function_editor.cxx.

◆ update_data_from_transfer_function()

void cgv::overlay::transfer_function_editor::update_data_from_transfer_function ( )
protected

Definition at line 583 of file transfer_function_editor.cxx.

◆ update_layout()

void cgv::overlay::transfer_function_editor::update_layout ( const ivec2 parent_size)
protected

Definition at line 507 of file transfer_function_editor.cxx.

◆ update_point_positions()

void cgv::overlay::transfer_function_editor::update_point_positions ( )
protected

Definition at line 892 of file transfer_function_editor.cxx.

◆ update_transfer_function_from_data()

void cgv::overlay::transfer_function_editor::update_transfer_function_from_data ( )
protected

Definition at line 599 of file transfer_function_editor.cxx.

◆ value_to_string()

std::string cgv::overlay::transfer_function_editor::value_to_string ( float  value)
protected

Definition at line 840 of file transfer_function_editor.cxx.

Member Data Documentation

◆ background_tex

cgv::render::texture cgv::overlay::transfer_function_editor::background_tex = { "flt32[R,G,B]", cgv::render::TF_NEAREST, cgv::render::TF_NEAREST, cgv::render::TW_REPEAT, cgv::render::TW_REPEAT }
protected

Definition at line 109 of file transfer_function_editor.h.

◆ bg_style

cgv::g2d::shape2d_style cgv::overlay::transfer_function_editor::bg_style
protected

Definition at line 86 of file transfer_function_editor.h.

◆ border_style

cgv::g2d::shape2d_style cgv::overlay::transfer_function_editor::border_style
protected

Definition at line 86 of file transfer_function_editor.h.

◆ build_time

cgv::data::time_stamp cgv::overlay::transfer_function_editor::build_time
protected

Definition at line 130 of file transfer_function_editor.h.

◆ color_draggable_start_position

vec2 cgv::overlay::transfer_function_editor::color_draggable_start_position = { 0.0f }
protected

Definition at line 122 of file transfer_function_editor.h.

◆ color_draggables

cgv::g2d::draggable_collection<color_point> cgv::overlay::transfer_function_editor::color_draggables
protected

Definition at line 118 of file transfer_function_editor.h.

◆ color_draggables_geometry

cgv::g2d::generic_render_data_vec2_rgba cgv::overlay::transfer_function_editor::color_draggables_geometry
protected

Definition at line 124 of file transfer_function_editor.h.

◆ color_handle_renderer

cgv::g2d::generic_2d_renderer cgv::overlay::transfer_function_editor::color_handle_renderer
protected

Definition at line 113 of file transfer_function_editor.h.

◆ color_handle_style

cgv::g2d::arrow2d_style cgv::overlay::transfer_function_editor::color_handle_style
protected

Definition at line 87 of file transfer_function_editor.h.

◆ color_interpolation

cgv::media::transfer_function::InterpolationMode cgv::overlay::transfer_function_editor::color_interpolation = cgv::media::transfer_function::InterpolationMode::kLinear
protected

Definition at line 77 of file transfer_function_editor.h.

◆ color_map_style

cgv::g2d::shape2d_style cgv::overlay::transfer_function_editor::color_map_style
protected

Definition at line 86 of file transfer_function_editor.h.

◆ color_point_size

const vec2 cgv::overlay::transfer_function_editor::color_point_size = { 12.0f, 18.0f }
staticprotected

Definition at line 59 of file transfer_function_editor.h.

◆ cursor_label_style

cgv::g2d::text2d_style cgv::overlay::transfer_function_editor::cursor_label_style
protected

Definition at line 91 of file transfer_function_editor.h.

◆ handle_color

rgba cgv::overlay::transfer_function_editor::handle_color = { 0.9f, 0.9f, 0.9f, 1.0f }
protected

Definition at line 84 of file transfer_function_editor.h.

◆ highlight_color

rgba cgv::overlay::transfer_function_editor::highlight_color = { 0.5f, 0.5f, 0.5f, 1.0f }
protected

Definition at line 85 of file transfer_function_editor.h.

◆ hist_max

unsigned cgv::overlay::transfer_function_editor::hist_max = 1
protected

Definition at line 94 of file transfer_function_editor.h.

◆ hist_max_non_zero

unsigned cgv::overlay::transfer_function_editor::hist_max_non_zero = 1
protected

Definition at line 95 of file transfer_function_editor.h.

◆ hist_norm_gamma

float cgv::overlay::transfer_function_editor::hist_norm_gamma = 1.0f
protected

Definition at line 97 of file transfer_function_editor.h.

◆ hist_norm_ignore_zero

bool cgv::overlay::transfer_function_editor::hist_norm_ignore_zero = true
protected

Definition at line 96 of file transfer_function_editor.h.

◆ hist_style

cgv::g2d::shape2d_style cgv::overlay::transfer_function_editor::hist_style
protected

Definition at line 86 of file transfer_function_editor.h.

◆ histogram

std::vector<unsigned> cgv::overlay::transfer_function_editor::histogram
protected

Definition at line 93 of file transfer_function_editor.h.

◆ histogram_tex

cgv::render::texture cgv::overlay::transfer_function_editor::histogram_tex = { "flt32[R]" }
protected

Definition at line 111 of file transfer_function_editor.h.

◆ histogram_type

HistogramType cgv::overlay::transfer_function_editor::histogram_type = HistogramType::kNone
protected

Definition at line 104 of file transfer_function_editor.h.

◆ input_domain

vec2 cgv::overlay::transfer_function_editor::input_domain = { 0.0f, 1.0f }
protected

Definition at line 127 of file transfer_function_editor.h.

◆ input_position

float cgv::overlay::transfer_function_editor::input_position = 0.0f
protected

Definition at line 128 of file transfer_function_editor.h.

◆ label_box_style

cgv::g2d::shape2d_style cgv::overlay::transfer_function_editor::label_box_style
protected

Definition at line 86 of file transfer_function_editor.h.

◆ line_geometry

textured_geometry cgv::overlay::transfer_function_editor::line_geometry
protected

Definition at line 125 of file transfer_function_editor.h.

◆ line_renderer

cgv::g2d::generic_2d_renderer cgv::overlay::transfer_function_editor::line_renderer
protected

Definition at line 113 of file transfer_function_editor.h.

◆ line_style

cgv::g2d::line2d_style cgv::overlay::transfer_function_editor::line_style
protected

Definition at line 88 of file transfer_function_editor.h.

◆ on_change_callback

std::function<void(void)> cgv::overlay::transfer_function_editor::on_change_callback
protected

Definition at line 167 of file transfer_function_editor.h.

◆ on_color_point_deselect_callback

std::function<void(void)> cgv::overlay::transfer_function_editor::on_color_point_deselect_callback
protected

Definition at line 169 of file transfer_function_editor.h.

◆ on_color_point_select_callback

std::function<void(rgb)> cgv::overlay::transfer_function_editor::on_color_point_select_callback
protected

Definition at line 168 of file transfer_function_editor.h.

◆ opacity_draggable_start_position

vec2 cgv::overlay::transfer_function_editor::opacity_draggable_start_position = { 0.0f }
protected

Definition at line 123 of file transfer_function_editor.h.

◆ opacity_draggables

cgv::g2d::draggable_collection<opacity_point> cgv::overlay::transfer_function_editor::opacity_draggables
protected

Definition at line 119 of file transfer_function_editor.h.

◆ opacity_draggables_geometry

cgv::g2d::generic_render_data_vec2_rgba cgv::overlay::transfer_function_editor::opacity_draggables_geometry
protected

Definition at line 124 of file transfer_function_editor.h.

◆ opacity_handle_renderer

cgv::g2d::generic_2d_renderer cgv::overlay::transfer_function_editor::opacity_handle_renderer
protected

Definition at line 113 of file transfer_function_editor.h.

◆ opacity_handle_style

cgv::g2d::shape2d_style cgv::overlay::transfer_function_editor::opacity_handle_style
protected

Definition at line 86 of file transfer_function_editor.h.

◆ opacity_interpolation

cgv::media::transfer_function::InterpolationMode cgv::overlay::transfer_function_editor::opacity_interpolation = cgv::media::transfer_function::InterpolationMode::kLinear
protected

Definition at line 78 of file transfer_function_editor.h.

◆ opacity_point_size

const vec2 cgv::overlay::transfer_function_editor::opacity_point_size = { 12.0f }
staticprotected

Definition at line 60 of file transfer_function_editor.h.

◆ opacity_scale_exponent

float cgv::overlay::transfer_function_editor::opacity_scale_exponent = 1.0f
protected

Definition at line 107 of file transfer_function_editor.h.

◆ polygon_renderer

cgv::g2d::generic_2d_renderer cgv::overlay::transfer_function_editor::polygon_renderer
protected

Definition at line 113 of file transfer_function_editor.h.

◆ polygon_style

cgv::g2d::shape2d_style cgv::overlay::transfer_function_editor::polygon_style
protected

Definition at line 86 of file transfer_function_editor.h.

◆ preview_tex

cgv::render::texture cgv::overlay::transfer_function_editor::preview_tex = { "uint8[R,G,B,A]" }
protected

Definition at line 110 of file transfer_function_editor.h.

◆ selected_color_draggable

color_point* cgv::overlay::transfer_function_editor::selected_color_draggable = nullptr
protected

Definition at line 120 of file transfer_function_editor.h.

◆ selected_opacity_draggable

opacity_point* cgv::overlay::transfer_function_editor::selected_opacity_draggable = nullptr
protected

Definition at line 121 of file transfer_function_editor.h.

◆ supports_opacity

bool cgv::overlay::transfer_function_editor::supports_opacity = false
protected

Definition at line 76 of file transfer_function_editor.h.

◆ transfer_function

std::shared_ptr<cgv::media::transfer_function> cgv::overlay::transfer_function_editor::transfer_function
protected

Definition at line 116 of file transfer_function_editor.h.

◆ triangle_geometry

textured_geometry cgv::overlay::transfer_function_editor::triangle_geometry
protected

Definition at line 126 of file transfer_function_editor.h.

◆ value_label

std::string cgv::overlay::transfer_function_editor::value_label
protected

Definition at line 80 of file transfer_function_editor.h.

◆ value_label_rectangle

cgv::g2d::rect cgv::overlay::transfer_function_editor::value_label_rectangle
protected

Definition at line 81 of file transfer_function_editor.h.

◆ value_label_style

cgv::g2d::text2d_style cgv::overlay::transfer_function_editor::value_label_style
protected

Definition at line 91 of file transfer_function_editor.h.


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