20 void process(
double delta_time)
override = 0;
50 glm::vec4
color = glm::vec4(1, 0, 0, 0.5f);
54 uint16_t collision_mask = 0xFFFF;
2D Node base class for scene graph.
Definition: node.h:25
2D physical object node.
Definition: phys_obj.h:14
glm::vec4 color
Definition: phys_obj.h:50
void process(double delta_time) override=0
~PhysicsObject2D() override
Definition: phys_obj.cpp:8
b2BodyId body_id
Definition: phys_obj.h:43
bool is_disabled
Definition: phys_obj.h:48
void set_layer(uint8_t new_layer)
Definition: phys_obj.cpp:10
void set_collision_mask(uint8_t mask)
Definition: phys_obj.cpp:16
uint8_t get_collision_layer() const
Definition: phys_obj.cpp:40
std::vector< std::function< void(Node2D *)> > on_enter_callbacks
Definition: phys_obj.h:40
uint16_t get_collision_mask() const
Definition: phys_obj.cpp:44
void draw(Renderer *renderer) override=0
void remove_collision_layer(uint8_t target_layer)
Definition: phys_obj.cpp:25
void on_body_exited(const std::function< void(Node2D *)> &callback)
Definition: phys_obj.cpp:53
PhysicsObject2D()
Definition: phys_obj.cpp:4
std::unique_ptr< CollisionShape > collision_shape
Definition: phys_obj.h:45
void on_body_entered(const std::function< void(Node2D *)> &callback)
Definition: phys_obj.cpp:49
void set_collision_layers(const std::initializer_list< uint8_t > &layers)
Definition: phys_obj.cpp:31
void add_collision_layer(uint8_t target_layer)
Definition: phys_obj.cpp:19
std::vector< std::function< void(Node2D *)> > on_exit_callbacks
Definition: phys_obj.h:41
std::unordered_set< PhysicsObject2D * > overlapping
Definition: phys_obj.h:39
Base class for all renderers.
Definition: ember_core.h:109