v43 update

This commit is contained in:
n00b87
2025-07-08 21:17:11 -05:00
parent f6a99ebba1
commit 96ba62c9de
49 changed files with 2401 additions and 1828 deletions

45
rcbasic_runtime/rc_mesh.h Normal file → Executable file
View File

@@ -75,6 +75,51 @@ int rc_loadMeshFromArchive(std::string archive, std::string mesh_file)
return mesh_id;
}
void rc_setMeshBoundingBox(int mesh_id, double min_x, double min_y, double min_z, double max_x, double max_y, double max_z)
{
if(mesh_id < 0 || mesh_id >= rc_mesh.size())
return;
if(rc_mesh[mesh_id].mesh)
{
rc_mesh[mesh_id].mesh->setBoundingBox( irr::core::aabbox3df(min_x, min_y, min_z, max_x, max_y, max_z) );
}
}
void rc_getMeshBoundingBox(int mesh_id, double* min_x, double* min_y, double* min_z, double* max_x, double* max_y, double* max_z)
{
if(mesh_id < 0 || mesh_id >= rc_mesh.size())
return;
if(rc_mesh[mesh_id].mesh)
{
irr::core::aabbox3df bbox = rc_mesh[mesh_id].mesh->getBoundingBox();
*min_x = bbox.MinEdge.X;
*min_y = bbox.MinEdge.Y;
*min_z = bbox.MinEdge.Z;
*max_x = bbox.MaxEdge.X;
*max_y = bbox.MaxEdge.Y;
*max_z = bbox.MaxEdge.Z;
}
}
void rc_reCalculateMeshBoundingBox(int mesh_id)
{
if(mesh_id < 0 || mesh_id >= rc_mesh.size())
return;
if(rc_mesh[mesh_id].mesh)
{
for(int i = 0; i < rc_mesh[mesh_id].mesh->getMeshBufferCount(); i++)
rc_mesh[mesh_id].mesh->getMeshBuffer(i)->recalculateBoundingBox();
}
}
int rc_loadAN8(std::string an8_file)
{
int id = -1;