34#include <NDEVR/DesignObject.h>
35#include <NDEVR/BaseValues.h>
36#include <NDEVR/TimeSpan.h>
40 class DesignObjectLookup;
63 , e_location_operations
64 , e_azimuth_operations
65 , e_tile_model_to_object
77 , e_destroy_when_finished
87 template<
class t_type>
90 m_base->effect_table.get()[m_base->effect_property_index[mat_index]].set(m_design_index, type);
92 template<
class t_type>
96 m_base->effect_table.get()[m_base->effect_property_index[mat_index]].get(m_design_index, type);
107#if NDEVR_STATION_MODEL
108 void setupAsStation(
const Model& station);
113 void setupAsCalibration(
const Model& calibration);
116 void setupAsScan(
const Model& scan);
124 template<
class t_type>
127 setEffectProperty(EffectProperties::e_target_property, property_name);
128 setEffectProperty(EffectProperties::e_target_value_a, value);
130 template<
class t_type>
133 setEffectProperty(EffectProperties::e_target_property, property_name);
134 setEffectProperty(EffectProperties::e_target_value_a, value_a);
135 setEffectProperty(EffectProperties::e_target_value_b, value_b);
151 return mat.
index() == index();
155 return mat.
index() != index();
158 void _updateTargetProperty(EffectType effect_type,
Buffer<DesignObject>& targets,
const String& value,
const void* lock_ptr =
nullptr);
159#if NDEVR_STATION_MODEL
165 void _updateScan(
const Time& update_time,
const void* lock_ptr);
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:56
Provides the underlying data storage for the NDEVR Scene Model heirarchy.
Definition DesignObjectBase.h:150
A low-level database object that can be used to access general stored properties within the NDEVR Mod...
Definition DesignObject.h:67
uint04 index() const
Definition DesignObject.h:337
A core class where all Design Objects including models, materials, and geometries are stored....
Definition DesignObjectLookup.h:65
A core class that provides a dynamic effect to an object in a model heirarchy.
Definition Effect.h:45
void removeTarget(uint04 index)
void setupAsModelTile(const Model &model_tile)
bool operator==(const Effect &mat) const
Definition Effect.h:149
void setupAsLocationOperations(const Model &reference)
void setupAsLight(fltp04 intensity=1.0)
t_type getEffectProperty(EffectProperties mat_index) const
Definition Effect.h:93
Effect(uint04 index, DesignObjectBase *property_table)
EffectType effectType() const
void setupAsBoundingBox(const Model &bounds, const Model &target)
DesignObject getTarget(uint04 target) const
void setTargetProperty(uint04 property_name, t_type value)
Definition Effect.h:125
void copyFrom(const Effect &effect)
void update(Time current_time, DesignObjectLookup *lock_ptr)
EffectType
Definition Effect.h:48
void setEffectProperty(EffectProperties mat_index, const t_type &type)
Definition Effect.h:88
void setTarget(uint04 index, const DesignObject &target)
void addTarget(const DesignObject &target)
EffectProperties
Definition Effect.h:69
bool operator!=(const Effect &mat) const
Definition Effect.h:153
Buffer< DesignObject, uint04, ObjectAllocator< DESIGN_PRIM > > getTargets() const
void clearTargets() const
Effect(DesignObjectBase *property_table)
void setBoundsRotation(bool bounds_can_rotate)
void setupAsBlinking(fltp04 frequency)
bool getBoundsRotation() const
void setupAsBoundingBox(const Model &bounds, const Buffer< Model, uint04, ObjectAllocator< DESIGN_PRIM > > &targets)
void addTarget(uint04 index, const DesignObject &target)
uint04 numberOfTargets() const
void setupAsBoundingBox(const Model &bounds)
void setEffectType(EffectType type)
void setTargetProperty(uint04 property_name, t_type value_a, t_type value_b)
Definition Effect.h:131
void setupAsSetTransform(const Model &target, const Matrix< fltp08 > &transform, const TimeSpan &span=TimeSpan(1.0))
Definition Matrix.hpp:176
A core class that represents a node on model heirarchy. This node may contain a Geometry or one or mo...
Definition Model.h:58
Definition MemoryManager.h:261
The core String class for the NDEVR API.
Definition String.h:69
Represents a timestamp with utilities for manipulation and conversion.
Definition Time.h:54
Stores a time span, or difference between two times, with an optional start time.
Definition TimeSpan.h:46
float fltp04
Defines an alias representing a 4 byte floating-point number Bit layout is as follows: -Sign: 1 bit a...
Definition BaseValues.hpp:127
uint8_t uint01
-Defines an alias representing a 1 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:80
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:96