Panda3D
fltCopy.h
1 // Filename: fltCopy.h
2 // Created by: drose (01Nov00)
3 //
4 ////////////////////////////////////////////////////////////////////
5 //
6 // PANDA 3D SOFTWARE
7 // Copyright (c) Carnegie Mellon University. All rights reserved.
8 //
9 // All use of this software is subject to the terms of the revised BSD
10 // license. You should have received a copy of this license along
11 // with this source code in a file named "LICENSE."
12 //
13 ////////////////////////////////////////////////////////////////////
14 
15 #ifndef FLTCOPY_H
16 #define FLTCOPY_H
17 
18 #include "pandatoolbase.h"
19 
20 #include "cvsCopy.h"
21 
22 #include "dSearchPath.h"
23 #include "pointerTo.h"
24 
25 #include "pset.h"
26 
27 class FltRecord;
28 class FltTexture;
30 
31 ////////////////////////////////////////////////////////////////////
32 // Class : FltCopy
33 // Description : A program to copy Multigen .flt files into the cvs
34 // tree. It copies the base file plus all externally
35 // referenced files as well as all textures.
36 ////////////////////////////////////////////////////////////////////
37 class FltCopy : public CVSCopy {
38 public:
39  FltCopy();
40 
41  void run();
42 
43 protected:
44  virtual bool copy_file(const Filename &source, const Filename &dest,
45  CVSSourceDirectory *dir, void *extra_data,
46  bool new_file);
47 
48 private:
49  enum FileType {
50  FT_flt,
51  FT_texture
52  };
53 
54  class ExtraData {
55  public:
56  FileType _type;
57  FltTexture *_texture;
58  };
59 
60  bool copy_flt_file(const Filename &source, const Filename &dest,
61  CVSSourceDirectory *dir);
62  bool copy_texture(const Filename &source, const Filename &dest,
63  CVSSourceDirectory *dir, FltTexture *tex,
64  bool new_file);
65 
66 
69 
70  void scan_flt(FltRecord *record, Refs &refs, Textures &textures);
71 };
72 
73 #endif
This is the base class for a family of programs that copy files, typically model files like ...
Definition: cvsCopy.h:33
This represents one particular directory in the hierarchy of source directory files.
Represents a single texture in the texture palette.
Definition: fltTexture.h:29
The name of a file, such as a texture file or an Egg file.
Definition: filename.h:44
The base class for all kinds of records in a MultiGen OpenFlight file.
Definition: fltRecord.h:40
A program to copy Multigen .flt files into the cvs tree.
Definition: fltCopy.h:37
An external reference to another flt file (possibly to a specific bead within the flt file)...
This is our own Panda specialization on the default STL set.
Definition: pset.h:52