00001 #ifndef _MESH_NODE_H_ 00002 #define _MESH_NODE_H_ 00003 00004 #include "cglib/reference.h" 00005 #include "cglib/scene_graph_node.h" 00006 #include "cglib/mesh.h" 00007 #include "cglib/mesh_material_mapping.h" 00008 #include "cglib/material_list.h" 00009 00011 class MeshNode : public SceneGraphNode 00012 { 00013 public: 00015 MeshNode (); 00016 00018 virtual ~MeshNode (); 00019 00021 Mesh *get_mesh(); 00022 00024 MeshMaterialMapping *get_material_mapping(); 00025 00027 MaterialList *get_material_list(); 00028 00030 void set_mesh(Mesh *mesh); 00031 00033 void set_material_mapping(MeshMaterialMapping *material_mapping); 00034 00036 void set_material_list(MaterialList *material_list); 00037 00039 virtual void accept(Visitor *visitor); 00040 00041 private: 00042 Reference<Mesh> mesh; 00043 Reference<MeshMaterialMapping> material_mapping; 00044 Reference<MaterialList> material_list; 00045 }; 00046 00047 #endif /* _MESH_NODE_H_ */