00001 // Copyright (C) 2008 University of Louisiana at Lafayette 00002 // Authors: Christopher Mire 00003 00004 #ifndef CAJUN_MESH_OBJECT_H 00005 #define CAJUN_MESH_OBJECT_H 00006 00007 #include "sim_world_object.H" 00008 #include <fstream> 00009 00010 namespace cajun 00011 { 00012 class mesh_object_t : public sim_world_object_t 00013 { 00014 public: 00015 mesh_object_t (dWorldID *world_body, dSpaceID *world_space, dGeomID ground, 00016 object_info_t *object_data, rndf_tool_t *rndf_tool, 00017 access_data_t *access_data_); 00018 ~mesh_object_t (); 00019 bool update (float curr_time); 00020 void get_data (vector<obstacle_data_t> *&object_info, 00021 vector <obstacle_points_data_t> *&object_points_); 00022 private: 00023 dGeomID m_trimesh; 00024 dTriMeshDataID m_data; 00025 00026 bool load_vertices (); 00027 bool load_indices (); 00028 00029 std::ifstream m_indices_file; 00030 std::ifstream m_vertices_file; 00031 00032 std::vector<dReal> m_vertex_data; 00033 std::vector<int> m_indices; 00034 }; 00035 } 00036 #endif