EDIT: OH DO NOT USE ELAND MODEL I FORGOT WHERE I GOT IT
heres a list of updated functions for testing
updated functionality includes:
build navmesh from entity objects ,entity mdl file ,hmp object(bugged),hmp chunk(bugged), hmp file.. scale rotate translate transformations to update a copy of buffer vertices/triangles..
theres a limit to triangles/vertices it seems ,im not sure yet but try not to do to many triangles/vertices ,for this demos i have used a terrain of 150*150 vertices and when going to high like 200*200 the navmesh stops abruptly....
build_mesh objects added to a list ,after adding all needed build objects the meshes are merged into a single mesh and send for navigational mesh creation.. (list needs more functions for removing etc..)
the merged meshes data can be saved to mdl file(64k limit).. could be used as an entity merger (needs more work).. want to make a custom file format instead of mdl ,could be used instead of loading meshdata from all entities
the filtered navmesh result can be saved to mdl file(64k limit) want to make a custom file format instead of mdl.. the filtered navmesh can be used for debug display, and for building navmesh instead of adding entities
its possible to specify navmesh initial build area by a box ..............................................................
function list:
//build_mesh object from ent model build_mesh* mesh_from_ent(ENTITY* ent);
//build_mesh object from mdl file of entity model build_mesh* mesh_from_mdl_file(ENTITY* ent);
//build_mesh object from hmp //(do not use bugged in merging multiple chunks) build_mesh* mesh_from_hmp(ENTITY* ent,int chunks);
//build_mesh object from hmp chunk //(works okay for single chunks but if added in a loop addin all multiple chunks does not work correct) //bugged in merging multiple chunks build_mesh* mesh_from_hmp_chunk(ENTITY* ent,int chunk);
//build_mesh object from hmp file of entity //works correct but theres a limit somewhere in the produces navmesh //so vertex amount is safer in range of 150*150 or lower i think build_mesh* mesh_from_hmp_file(ENTITY* ent);
//transform build_mesh object to match entity //has to be transformed to match void transform_mesh_ent(build_mesh* pmesh,ENTITY* ent);
//transform build_mesh object to match argument list //has to be transformed to match void transform_mesh_arg(build_mesh* pmesh,ANGLE* angle,VECTOR* scale,VECTOR* pos);
//add build_mesh object to build list void add_meshlist(build_mesh* this_mesh);
//save the merged geom to mdl(64k limit) //does not need to be build only needs navmesh object to be created and //the entities build_meshes objects added to the build list //then finalised by geom_from_buildlist //p.s could become usefull for entity merger // will modify it for an entity merger void save_merged(char* filename);
//saves the detailed filtered navmesh out to mdl(64k limit) //will add a custom file instead of mdl void save_debugmesh(char* filename);
//create final merged mesh from all build_mesh objects in list //bmin,bmax bounding box values for initial build area int geom_from_buildlist(VECTOR* bmin,VECTOR* bmax);
note even though the demos use crowd agents ,nothing about crowds has been updated .. note look into comments off files for more info.. let me know of unknown bugs/problems/ideas if you have the time or patience much appreciated!!