updated (for testing of new functionality)

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);

void delete_build_mesh(build_mesh* bmesh);
..............................................................

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!!

Last edited by Wjbender; 11/26/12 19:37.

Compulsive compiler