00001 #ifndef __VRML_WRITER_H__ 00002 #define __VRML_WRITER_H__ 00003 00004 #include <iostream> 00005 #include <hrpCorba/ModelLoader.hh> 00006 00007 class VrmlWriter 00008 { 00009 public: 00010 VrmlWriter() : m_use_inline_shape(false) {}; 00011 void write(OpenHRP::BodyInfo_var binfo, std::ostream &ofs); 00012 void useInlineShape(bool use_inline); 00013 private: 00014 void writeProtoNodes(std::ostream &ofs); 00015 void writeHumanoidNode(OpenHRP::BodyInfo_var binfo, std::ostream &ofs); 00016 void writeLink(int index, std::ostream &ofs); 00017 void writeShape(OpenHRP::TransformedShapeIndex &tsi, std::ostream &ofs); 00018 void indent(std::ostream &ofs); 00019 int m_indent; 00020 bool m_use_inline_shape; 00021 OpenHRP::LinkInfoSequence_var links; 00022 OpenHRP::ShapeInfoSequence_var shapes; 00023 OpenHRP::AppearanceInfoSequence_var appearances; 00024 OpenHRP::MaterialInfoSequence_var materials; 00025 OpenHRP::TextureInfoSequence_var textures; 00026 }; 00027 00028 #endif