34#include <NDEVR/DesignObject.h>
35#include <NDEVR/BaseValues.h>
36#include <NDEVR/TimeSpan.h>
40 class DesignObjectLookup;
60 , e_location_operations
61 , e_azimuth_operations
62 , e_tile_model_to_object
74 , e_destroy_when_finished
84 template<
class t_type>
87 m_base->effect_table.get()[m_base->effect_property_index[mat_index]].set(m_design_index, type);
89 template<
class t_type>
93 m_base->effect_table.get()[m_base->effect_property_index[mat_index]].get(m_design_index, type);
97 void setupAsLight(
fltp04 intensity = 1.0);
98 void setupAsBlinking(
fltp04 frequency);
99 void setupAsBoundingBox(
const Model& bounds);
100 void setupAsBoundingBox(
const Model& bounds,
const Model& target);
102 void setBoundsRotation(
bool bounds_can_rotate);
103 bool getBoundsRotation()
const;
104#if NDEVR_STATION_MODEL
105 void setupAsStation(
const Model& station);
107 void copyFrom(
const Effect& effect);
110 void setupAsCalibration(
const Model& calibration);
113 void setupAsScan(
const Model& scan);
115 void setupAsLocationOperations(
const Model& reference);
117 uint04 numberOfTargets()
const;
121 template<
class t_type>
124 setEffectProperty(EffectProperties::e_target_property, property_name);
125 setEffectProperty(EffectProperties::e_target_value_a, value);
127 template<
class t_type>
130 setEffectProperty(EffectProperties::e_target_property, property_name);
131 setEffectProperty(EffectProperties::e_target_value_a, value_a);
132 setEffectProperty(EffectProperties::e_target_value_b, value_b);
134 void clearTargets()
const;
135 void removeTarget(
uint04 index);
141 EffectType effectType()
const;
142 void setEffectType(EffectType type);
148 return mat.
index() == index();
152 return mat.
index() != index();
155 void _updateTargetProperty(EffectType effect_type,
Buffer<DesignObject>& targets,
const String& value,
const void* lock_ptr =
nullptr);
156#if NDEVR_STATION_MODEL
162 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:64
Definition DesignObjectBase.h:140
Definition DesignObject.h:66
uint04 index() const
Definition DesignObject.h:344
Definition DesignObjectLookup.h:61
void setupAsModelTile(const Model &model_tile)
bool operator==(const Effect &mat) const
Definition Effect.h:146
t_type getEffectProperty(EffectProperties mat_index) const
Definition Effect.h:90
void setTargetProperty(uint04 property_name, t_type value)
Definition Effect.h:122
EffectType
Definition Effect.h:45
void setEffectProperty(EffectProperties mat_index, const t_type &type)
Definition Effect.h:85
EffectProperties
Definition Effect.h:66
bool operator!=(const Effect &mat) const
Definition Effect.h:150
void setupAsBoundingBox(const Model &bounds, const Buffer< Model, uint04, ObjectAllocator< DESIGN_PRIM > > &targets)
void setTargetProperty(uint04 property_name, t_type value_a, t_type value_b)
Definition Effect.h:128
Definition Matrix.hpp:173
Definition MemoryManager.h:283
Represents a timestamp with utilities for manipulation and conversion.
Definition Time.h:54
float fltp04
Defines an alias representing a 4 byte floating-point number.
Definition BaseValues.hpp:157
uint8_t uint01
-Defines an alias representing a 1 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:98
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:120