Splits
This commit is contained in:
@@ -42,7 +42,24 @@ void HydraPlanetQuadActor::InitialiseQuad(float planet_diameter, float quad_dime
|
||||
_CreateMesh();
|
||||
}
|
||||
|
||||
glm::vec3 HydraPlanetQuadActor::_ProjectSphere(glm::dvec4 vert_in, glm::mat4 trans, glm::mat4 inv_trans, double diameter, glm::vec3 origin)
|
||||
void HydraPlanetQuadActor::CheckResolution(glm::dvec3 player_position)
|
||||
{
|
||||
if(m_divided)
|
||||
{
|
||||
std::vector<HydraID> children = GetEngine()->ActorManager()->GetChildren(GetID());
|
||||
for(HydraID child_id : children)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
double distance_to_quad = glm::length(player_position - m_centre);
|
||||
if(distance_to_quad < m_quad_dimension)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
glm::vec3 HydraPlanetQuadActor::_ProjectSphere(glm::dvec4 vert_in, glm::dmat4 trans, glm::dmat4 inv_trans, double diameter, glm::vec3 origin)
|
||||
{
|
||||
glm::dvec4 vert = trans * vert_in;
|
||||
vert = glm::normalize(vert);
|
||||
@@ -60,11 +77,18 @@ glm::vec3 HydraPlanetQuadActor::_ProjectSphere(glm::dvec4 vert_in, glm::mat4 tra
|
||||
|
||||
vert = glm::normalize(vert) * ((m_planet_diameter / 2.0) + (noise * 500.0f));
|
||||
vert = inv_trans * glm::dvec4(vert.x, vert.y, vert.z, 1.0);
|
||||
|
||||
|
||||
return glm::vec3(vert);
|
||||
}
|
||||
|
||||
glm::dvec3 HydraPlanetQuadActor::_ProjectCentre(glm::dvec4 vert_in, glm::dmat4 trans, double diameter, glm::vec3 origin)
|
||||
{
|
||||
glm::dvec4 vert = trans * vert_in;
|
||||
vert = glm::normalize(vert);
|
||||
vert = vert * (m_planet_diameter / 2.0);
|
||||
|
||||
return glm::dvec3(vert);
|
||||
}
|
||||
|
||||
void HydraPlanetQuadActor::_CreatePosition()
|
||||
{
|
||||
HydraECS *ecs = GetEngine()->ECS();
|
||||
@@ -121,10 +145,15 @@ void HydraPlanetQuadActor::_CreateMesh()
|
||||
uint32_t index_idx = 0;
|
||||
//glm::mat4 trans = GetEngine()->ActorManager()->GetActorPose(actor_id);
|
||||
|
||||
glm::mat4 trans_matrix = glm::translate(pos_comp.position);
|
||||
glm::mat4 rot_matrix = glm::toMat4(glm::quat(pos_comp.orientation));
|
||||
glm::mat4 trans = trans_matrix * rot_matrix;
|
||||
glm::mat4 inv_trans = glm::inverse(trans);
|
||||
glm::dmat4 trans_matrix = glm::translate(pos_comp.position);
|
||||
glm::dmat4 rot_matrix = glm::toMat4(glm::quat(pos_comp.orientation));
|
||||
glm::dmat4 trans = trans_matrix * rot_matrix;
|
||||
glm::dmat4 inv_trans = glm::inverse(trans);
|
||||
|
||||
glm::dvec4 centre = glm::dvec4(max_x - min_x, max_y - min_y, max_z - min_z, 1.0);
|
||||
|
||||
m_centre = _ProjectCentre(centre, trans, m_planet_diameter, m_origin);
|
||||
|
||||
for (uint32_t y_count = 0; y_count < m_divisions - 1; y_count++)
|
||||
{
|
||||
for (uint32_t x_count = 0; x_count < m_divisions - 1; x_count++)
|
||||
@@ -236,3 +265,4 @@ void HydraPlanetQuadActor::_CreateRenderableComponent()
|
||||
ecs->AddComponent<HydraRenderableComponent>(GetID(), render_comp);
|
||||
ecs->AddComponent<HydraShadowCasterComponent>(GetID(), shad_caster);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user