Graphite  Version 3
An experimental 3D geometry processing program
OGF::VoxelGrob Class Reference

A Grob class for voxel grids. More...

#include <OGF/voxel/grob/voxel_grob.h>

Inheritance diagram for OGF::VoxelGrob:
OGF::Grob OGF::Node OGF::Object GEO::Counted

Public Member Functions

 VoxelGrob (CompositeGrob *parent)
 VoxelGrob constructor. More...
 
const vec3origin () const
 Gets the origin. More...
 
const vec3U () const
 Gets the first axis. More...
 
const vec3V () const
 Gets the second axis. More...
 
const vec3W () const
 Gets the third axis. More...
 
index_t nu () const
 Gets the size of the first axis. More...
 
index_t nv () const
 Gets the size of the second axis. More...
 
index_t nw () const
 Gets the size of the third axis. More...
 
void resize (index_t nu, index_t nv, index_t nw)
 Defines the sizes in cells of the three axes. More...
 
void set_box (const vec3 &origin, const vec3 &U, const vec3 &V, const vec3 &W)
 Sets the geometry of the box. More...
 
index_t linear_index (index_t u, index_t v, index_t w) const
 Converts (u,v,w) indices into a linear index. More...
 
void clear () override
 Clears this Grob. More...
 
Grobduplicate (SceneGraph *sg) override
 Duplicates this Grob. More...
 
bool is_serializable () const override
 Tests whether this Grob can be serialized in GeoFile. More...
 
bool serialize_read (InputGraphiteFile &geofile) override
 Reads this Grob from a GeoFile. More...
 
bool serialize_write (OutputGraphiteFile &geofile) override
 Writes this Grob into a stream. More...
 
void update () override
 
Box3d bbox () const override
 Gets the bounding box. More...
 
AttributesManagerattributes () const
 Gets the attributes manager. More...
 
- Public Member Functions inherited from OGF::Grob
 Grob (CompositeGrob *parent)
 Grob constructor. More...
 
 ~Grob () override
 Grob destructor.
 
const std::string & name () const
 Gets the name of this Grob. More...
 
virtual Box3d world_bbox () const
 Gets the bounding box in world coordinates. More...
 
void set_shader (const std::string &value)
 Changes the current shader of this Grob. More...
 
void get_shader_and_shader_properties (std::string &classname, ArgList &properties, bool pointers=true)
 Gets the classname of the shader and its properties. More...
 
void set_shader_and_shader_properties (const std::string &classname, const ArgList &properties)
 Sets the shader and its properties. More...
 
ArgListattributes ()
 Gets the attributes associated with this Grob. More...
 
const ArgListattributes () const
 Gets the attributes associated with this Grob. More...
 
bool dirty () const
 Gets the dirty flag. More...
 
void up_to_date ()
 Tests whether this object is up to date. More...
 
bool graphics_are_locked () const
 Tests whether this VoxelGrob is locked for graphics display. More...
 
void lock_graphics ()
 Locks graphics for this VoxelGrob. More...
 
void unlock_graphics ()
 Unlocks graphics for this VoxelGrob. More...
 
virtual Interpreterinterpreter ()
 Gets a pointer to the main Interpreter. More...
 
virtual void redraw ()
 Triggers update events and redraws the scene. More...
 
SceneGraphscene_graph () const
 Gets the SceneGraph. More...
 
virtual bool load (const FileName &value)
 Replaces this Grob with the contents of a file. More...
 
virtual bool save (const NewFileName &value)
 Saves this Grob to a file. More...
 
virtual bool append (const FileName &value)
 Appends the content of the specified file to this Grob. More...
 
virtual void rename (const std::string &value)
 Renames this Grob. More...
 
virtual Objectquery_interface (const std::string &name)
 Creates an Interface object connected to this Grob. More...
 
index_t nb_grob_attributes () const
 gets the number of grob attributes More...
 
const std::string & ith_grob_attribute_name (index_t i) const
 gets the name of a grob attribute More...
 
std::string ith_grob_attribute_value (index_t i) const
 gets the value of a grob attribute More...
 
void set_grob_attribute (const std::string &name, const std::string &value)
 sets the value of a grob attribute More...
 
void set_filename (const std::string &value)
 Sets the name of this Grob. More...
 
const std::string & get_filename () const
 Gets the filename of this Grob. More...
 
bool get_visible () const
 Tests whether this Grob is visible. More...
 
void set_visible (bool value)
 Sets the visibility flag of this Grob. More...
 
Objectget_shader () const
 Gets the shader associated with this Grob. More...
 
Objectget_shader_manager () const
 Gets the ShaderManager associated with this Grob. More...
 
void set_obj_to_world_transform (const mat4 &value)
 Sets the object to world transform. More...
 
const mat4get_obj_to_world_transform () const
 Gets the object to world transform. More...
 
- Public Member Functions inherited from OGF::Node
 Node (Node *parent=nullptr)
 Node constructor. More...
 
virtual ~Node ()
 Node destructor.
 
virtual void add_child (Node *child)
 Adds a child to this Node. More...
 
virtual void remove_child (Node *child)
 Removes a child from this Node. \parma[in] child a pointer to the child to be removed.
 
Nodeget_parent () const
 Gets the parent. More...
 
- Public Member Functions inherited from OGF::Object
 Object (bool transient=false)
 Object constructor. More...
 
virtual ~Object ()
 Object destructor.
 
virtual MetaClassmeta_class () const
 Gets the meta class. More...
 
virtual void set_meta_class (MetaClass *mclass)
 Sets the meta class. More...
 
unsigned int id () const
 Gets the identifier of this object. More...
 
std::string string_id () const
 Gets the unique string identifier. More...
 
bool has_method (const std::string &method_name) const
 Tests whether a method is defined. More...
 
virtual bool invoke_method (const std::string &method_name, const ArgList &args, Any &ret_val)
 Invokes a method by method name and argument list, and gets the return value. More...
 
bool invoke_method (const std::string &method_name, const ArgList &args)
 Invokes a method by method name and argument list. More...
 
bool invoke_method (const std::string &method_name)
 Invokes a method by method name. More...
 
bool has_property (const std::string &prop_name) const
 Tests whether a property is defined. More...
 
virtual bool get_property (const std::string &prop_name, std::string &prop_value) const
 Gets a property. More...
 
virtual Connectionconnect_signal_to_slot (const std::string &signal_name, Object *to, const std::string &slot_name)
 Connects a signal with a slot of another object. More...
 
virtual void add_connection (Connection *connection)
 Adds a connection to this object. More...
 
virtual void remove_connection (Connection *connection)
 Removes a connection to this object. More...
 
virtual void get_element (index_t i, Any &value) const
 Gets an element by index. More...
 
virtual void set_element (index_t i, const Any &value)
 Sets an element by index. More...
 
virtual void search (const std::string &needle, const std::string &path="")
 Displays the names of all objects that contain a substring. More...
 
bool get_signals_enabled () const
 Tests wheter signals are enabled. More...
 
void set_signals_enabled (bool value)
 Enables or disables signals. More...
 
bool get_slots_enabled () const
 Tests wheter slots are enabled. More...
 
void set_slots_enabled (bool value)
 Enables or disables slots. More...
 
MetaClassget_meta_class () const
 Gets the meta class. More...
 
std::string get_string_id () const
 Gets the unique string identifier. More...
 
virtual std::string get_doc () const
 Gets the documentation. More...
 
virtual Sign compare (const Object *other) const
 Compares this object with another one. More...
 
virtual bool is_a (const MetaType *type) const
 Tests whether this object inherits a given type. More...
 
void disconnect ()
 Removes all connections from signals of this objects. More...
 
void enable_signals ()
 Enables signals.
 
void disable_signals ()
 Disables signals.
 
void enable_slots ()
 Enables slots.
 
void disable_slots ()
 Disables slots.
 
void set_properties (const ArgList &args)
 Sets several properties in a single call. More...
 
virtual bool set_property (const std::string &name, const std::string &value)
 Sets an individual property. More...
 
void help () const
 Displays some help about this object. More...
 
virtual bool set_property (const std::string &name, const Any &value)
 Sets an individual property. More...
 
virtual bool get_property (const std::string &prop_name, Any &prop_value) const
 Gets a property. More...
 
- Public Member Functions inherited from GEO::Counted
void ref () const
 Increments the reference count. More...
 
void unref () const
 Decrements the reference count. More...
 
bool is_shared () const
 Check if the object is shared. More...
 
int nb_refs () const
 Gets the number of references that point to this object. More...
 

Static Public Member Functions

static VoxelGrobfind_or_create (SceneGraph *sg, const std::string &name)
 Finds or creates a VoxelGrob with the specified name. More...
 
static VoxelGrobfind (SceneGraph *sg, const std::string &name)
 Finds a VoxelGrob by name. More...
 
- Static Public Member Functions inherited from OGF::Grob
static Grobfind (SceneGraph *sg, const std::string &name)
 Finds a Grob by name. More...
 
- Static Public Member Functions inherited from OGF::Object
static Objectid_to_object (unsigned int id)
 Gets an object from a unique object id. More...
 
- Static Public Member Functions inherited from GEO::Counted
static void ref (const Counted *counted)
 Increments the reference count. More...
 
static void unref (const Counted *counted)
 Decrements the reference count. More...
 

Public Attributes

 __pad0__: std::string get_displayable_attributes() const
 
- Public Attributes inherited from OGF::Grob
 __pad0__: virtual void update()
 
gom_signals __pad1__: virtual void value_changed(Grob* value)
 
 __pad2__: const std::string& get_name() const { return name_
 
- Public Attributes inherited from OGF::Node
 __pad0__: Node* ith_child(index_t i) const { ogf_assert(i < get_nb_children())
 
return children_ [i]
 
 __pad1__: size_t get_nb_children() const { return children_.size()
 
- Public Attributes inherited from OGF::Object
 __pad0__: virtual index_t get_nb_elements() const
 
 __pad1__: bool equals(const Object* other) const
 

Additional Inherited Members

- Protected Member Functions inherited from OGF::Grob
void initialize_name (const std::string &name)
 Initializes the name of this Grob. More...
 
void set_shader_manager (Object *s)
 Sets the ShaderManager associated with this Grob. More...
 
- Protected Member Functions inherited from OGF::Node
void swap_children (Node *n1, Node *n2)
 Swaps two children by indices. More...
 
- Protected Member Functions inherited from OGF::Object
virtual bool emit_signal (const std::string &signal_name, const ArgList &args, bool called_from_slot=false)
 Emits a signal and calls the slots it is connected to. More...
 
- Protected Member Functions inherited from GEO::Counted
 Counted ()
 Creates a reference counted object. More...
 
virtual ~Counted ()
 Destroys a reference counted object. More...
 
- Protected Attributes inherited from OGF::Grob
std::string name_
 
std::string filename_
 
bool visible_
 
SceneGraphscene_graph_
 
mat4 obj_to_world_
 
Object_var shader_manager_
 
ArgList grob_attributes_
 
bool dirty_
 
index_t nb_graphics_locks_
 

Detailed Description

A Grob class for voxel grids.

Definition at line 56 of file voxel_grob.h.

Constructor & Destructor Documentation

◆ VoxelGrob()

OGF::VoxelGrob::VoxelGrob ( CompositeGrob parent)

VoxelGrob constructor.

Parameters
[in]parenta pointer to the container (the scenegraph in most cases).

Member Function Documentation

◆ attributes()

AttributesManager& OGF::VoxelGrob::attributes ( ) const
inline

Gets the attributes manager.

The returned reference is not a const one, so that attributes can be bound / unbound / accessed even if the VoxelGrob is const.

Returns
a modifiable reference to the attributes manager.

Definition at line 229 of file voxel_grob.h.

◆ bbox()

Box3d OGF::VoxelGrob::bbox ( ) const
overridevirtual

Gets the bounding box.

Returns
the bounding box

Implements OGF::Grob.

◆ clear()

void OGF::VoxelGrob::clear ( )
overridevirtual

Clears this Grob.

Reimplemented from OGF::Grob.

◆ duplicate()

Grob* OGF::VoxelGrob::duplicate ( SceneGraph sg)
overridevirtual

Duplicates this Grob.

The newly created Grob has the same name as the current one, with "_copy" appended.

Reimplemented from OGF::Grob.

◆ find()

static VoxelGrob* OGF::VoxelGrob::find ( SceneGraph sg,
const std::string &  name 
)
static

Finds a VoxelGrob by name.

Parameters
[in]sga pointer to the SceneGraph
[in]namethe name
Returns
a pointer to the VoxelGrob named as name in the SceneGraph sg if it exists, or nullptr otherwise.

◆ find_or_create()

static VoxelGrob* OGF::VoxelGrob::find_or_create ( SceneGraph sg,
const std::string &  name 
)
static

Finds or creates a VoxelGrob with the specified name.

Parameters
[in]sga pointer to the SceneGraph
[in]namethe name
Returns
a pointer to the VoxelGrob named as name in the SceneGraph sg if it exists, or a newly created VoxelGrob otherwise.

◆ is_serializable()

bool OGF::VoxelGrob::is_serializable ( ) const
overridevirtual

Tests whether this Grob can be serialized in GeoFile.

Return values
trueif this Grob is serializable
falseotherwise
See also
serialize_read(), serialize_write()

Reimplemented from OGF::Grob.

◆ linear_index()

index_t OGF::VoxelGrob::linear_index ( index_t  u,
index_t  v,
index_t  w 
) const
inline

Converts (u,v,w) indices into a linear index.

The linear index can be used to access properties.

Parameters
[in]u,v,wthe coordinates of the cell
Returns
the linear index of the cell

Definition at line 146 of file voxel_grob.h.

◆ nu()

index_t OGF::VoxelGrob::nu ( ) const
inline

Gets the size of the first axis.

Returns
the number of cells along the first axis

Definition at line 101 of file voxel_grob.h.

◆ nv()

index_t OGF::VoxelGrob::nv ( ) const
inline

Gets the size of the second axis.

Returns
the number of cells along the second axis

Definition at line 109 of file voxel_grob.h.

◆ nw()

index_t OGF::VoxelGrob::nw ( ) const
inline

Gets the size of the third axis.

Returns
the number of cells along the third axis

Definition at line 117 of file voxel_grob.h.

◆ origin()

const vec3& OGF::VoxelGrob::origin ( ) const
inline

Gets the origin.

Returns
a const pointer to the origin

Definition at line 69 of file voxel_grob.h.

◆ resize()

void OGF::VoxelGrob::resize ( index_t  nu,
index_t  nv,
index_t  nw 
)

Defines the sizes in cells of the three axes.

Parameters
[in]nu,nv,nwthe sizes in cells of the three axes

All the attributes are deleted.

◆ serialize_read()

bool OGF::VoxelGrob::serialize_read ( InputGraphiteFile geofile)
overridevirtual

Reads this Grob from a GeoFile.

Parameters
[in,out]geofilethe input GeoFile
Return values
trueif the Grob could be successfully read
falseotherwise
See also
is_serializable()

Reimplemented from OGF::Grob.

◆ serialize_write()

bool OGF::VoxelGrob::serialize_write ( OutputGraphiteFile geofile)
overridevirtual

Writes this Grob into a stream.

Parameters
[in,out]geofilethe output GeoFile The file extension determines the file format used to write the object.
Return values
trueif the Grob could be successfully written
falseotherwise
See also
is_serializable()

Reimplemented from OGF::Grob.

◆ set_box()

void OGF::VoxelGrob::set_box ( const vec3 origin,
const vec3 U,
const vec3 V,
const vec3 W 
)

Sets the geometry of the box.

Parameters
[in]origina const reference to the origin
[in]Ua const reference to the first axis
[in]Va const reference to the second axis
[in]Wa const reference to the third axis

◆ U()

const vec3& OGF::VoxelGrob::U ( ) const
inline

Gets the first axis.

Returns
a const reference to the first axis

Definition at line 77 of file voxel_grob.h.

◆ update()

void OGF::VoxelGrob::update ( )
override

◆ V()

const vec3& OGF::VoxelGrob::V ( ) const
inline

Gets the second axis.

Returns
a const reference to the second axis

Definition at line 85 of file voxel_grob.h.

◆ W()

const vec3& OGF::VoxelGrob::W ( ) const
inline

Gets the third axis.

Returns
a const reference to the third axis

Definition at line 93 of file voxel_grob.h.


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