Represents a celestial body.
#include <CelestialBody.hpp>
◆ CelestialBody()
CelestialBody::CelestialBody |
( |
bonobo::mesh_data const & |
shape, |
|
|
GLuint const * |
program, |
|
|
GLuint |
diffuse_texture_id |
|
) |
| |
- Parameters
-
[in] | shape | Information about the geometry used to model the celestial body (more details about it in assignment 2 |
[in] | program | Shader program used to render the celestial body (more details about it in assignment~3) |
[in] | diffuse_texture_id | Identifier of the diffuse texture used (more details about it also in assignment~3) |
◆ add_child()
◆ get_children()
std::vector< CelestialBody * > const & CelestialBody::get_children |
( |
| ) |
const |
◆ render()
glm::mat4 CelestialBody::render |
( |
std::chrono::microseconds |
elapsed_time, |
|
|
glm::mat4 const & |
view_projection, |
|
|
glm::mat4 const & |
parent_transform = glm::mat4(1.0f) , |
|
|
bool |
show_basis = false |
|
) |
| |
- Parameters
-
[in] | elapsed_time | Amount of time (in microseconds) between two frames |
[in] | view_projection | Matrix transforming from world space to clip space |
[in] | parent_transform | Matrix transforming from the parent’s local space to world space |
[in] | show_basis | Show a 3D basis transformed by the world matrix of this celestial body |
- Returns
- Matrix transforming from this celestial body’s local space to world space
◆ set_orbit()
◆ set_ring()
void CelestialBody::set_ring |
( |
bonobo::mesh_data const & |
shape, |
|
|
GLuint const * |
program, |
|
|
GLuint |
diffuse_texture_id, |
|
|
glm::vec2 const & |
scale = glm::vec2(1.0f) |
|
) |
| |
- Parameters
-
[in] | shape | Shape used for the rings. |
[in] | program | Identifier of the shader program used to render the ring |
[in] | diffuse_texture_id | Identifier of the diffuse texture used by the ring |
[in] | scale | How much to scale the ring along the x- and y-axis, assuming you are looking at it from above |
◆ set_scale()
void CelestialBody::set_scale |
( |
glm::vec3 const & |
scale | ) |
|
◆ set_spin()
struct { ... } CelestialBody::_body |
◆ _children
struct { ... } CelestialBody::_ring |
◆ axial_tilt
float CelestialBody::axial_tilt {0.0f} |
◆ inclination
float CelestialBody::inclination {0.0f} |
◆ is_set
bool CelestialBody::is_set {false} |
◆ node
struct { ... } CelestialBody::orbit |
◆ radius
float CelestialBody::radius {0.0f} |
◆ rotation_angle
float CelestialBody::rotation_angle {0.0f} |
How much has it rotated around its rotational axis; in radians.
◆ scale [1/2]
glm::vec3 CelestialBody::scale {1.0f} |
◆ scale [2/2]
glm::vec2 CelestialBody::scale {1.0f} |
◆ speed
float CelestialBody::speed {0.0f} |
struct { ... } CelestialBody::spin |
The documentation for this class was generated from the following files: