00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef BAMINFO_H
00016 #define BAMINFO_H
00017
00018 #include "pandatoolbase.h"
00019
00020 #include "programBase.h"
00021 #include "filename.h"
00022 #include "sceneGraphAnalyzer.h"
00023
00024 #include "pvector.h"
00025
00026 class TypedWritable;
00027 class PandaNode;
00028 class Texture;
00029 class BamCacheIndex;
00030 class RecorderHeader;
00031
00032
00033
00034
00035
00036 class BamInfo : public ProgramBase {
00037 public:
00038 BamInfo();
00039
00040 void run();
00041
00042 protected:
00043 virtual bool handle_args(Args &args);
00044
00045 private:
00046 typedef pvector<TypedWritable *> Objects;
00047
00048 bool get_info(const Filename &filename);
00049 void describe_scene_graph(PandaNode *node);
00050 void describe_texture(Texture *tex);
00051 void describe_cache_index(BamCacheIndex *index);
00052 void describe_session(RecorderHeader *header, const Objects &objects);
00053 void describe_general_object(TypedWritable *object);
00054 void list_hierarchy(PandaNode *node, int indent_level);
00055
00056 typedef pvector<Filename> Filenames;
00057 Filenames _filenames;
00058
00059 bool _ls;
00060 bool _verbose_transitions;
00061 bool _verbose_geoms;
00062
00063 int _num_scene_graphs;
00064 SceneGraphAnalyzer _analyzer;
00065 };
00066
00067 #endif