Panda3D

bamEnums.h
Go to the documentation of this file.
1 /**
2 * PANDA 3D SOFTWARE
3 * Copyright (c) Carnegie Mellon University. All rights reserved.
4 *
5 * All use of this software is subject to the terms of the revised BSD
6 * license. You should have received a copy of this license along
7 * with this source code in a file named "LICENSE."
8 *
9 * @file bamEnums.h
10 * @author drose
11 * @date 2009-02-26
12 */
13
14 #ifndef BAMENUMS_H
15 #define BAMENUMS_H
16
17 #include "pandabase.h"
18
19 /**
20 * This class exists just to provide scoping for the enums shared by BamReader
21 * and BamWriter.
22 */
23 class EXPCL_PANDA_PUTIL BamEnums {
24 PUBLISHED:
25 /**
26 * This defines an enumerated type used to represent the endianness of
27 * certain numeric values stored in a Bam file. It really has only two
28 * possible values, either BE_bigendian or BE_littleendian; but through a
29 * preprocessor trick we also add BE_native, which is the same numerically
30 * as whichever value the hardware supports natively.
31 */
32 enum BamEndian {
33 BE_bigendian = 0,
34 BE_littleendian = 1,
35 #ifdef WORDS_BIGENDIAN
36 BE_native = 0,
37 #else
38 BE_native = 1,
39 #endif
40 };
41
42 /**
43 * This is the code written along with each object. It is used to control
44 * object scoping.
45 */
46 enum BamObjectCode {
47 // Indicates an object definition, and will always be eventually paired
48 // with a BOC_pop (which does not).
49 BOC_push,
50 BOC_pop,
51
52 // Includes an object definition but does not push the level; it is
53 // associated with the current level.
54 BOC_adjunct,
55
56 // Lists object IDs that have been deallocated on the sender end.
57 BOC_remove,
58
59 // May appear at any level and indicates the following datagram contains
60 // auxiliary file data that may be referenced by a later object.
61 BOC_file_data,
62 };
63
64 // This enum is used to control how textures are written to a bam stream.
65 enum BamTextureMode {
66 BTM_unchanged,
67 BTM_fullpath,
68 BTM_relative,
69 BTM_basename,
70 BTM_rawdata
71 };
72 };
73
74 EXPCL_PANDA_PUTIL std::ostream &operator << (std::ostream &out, BamEnums::BamEndian be);
75 EXPCL_PANDA_PUTIL std::istream &operator >> (std::istream &in, BamEnums::BamEndian &be);
76
77 EXPCL_PANDA_PUTIL std::ostream &operator << (std::ostream &out, BamEnums::BamObjectCode boc);
78
79 EXPCL_PANDA_PUTIL std::ostream &operator << (std::ostream &out, BamEnums::BamTextureMode btm);
80 EXPCL_PANDA_PUTIL std::istream &operator >> (std::istream &in, BamEnums::BamTextureMode &btm);
81
82 #endif
BamEnums
This class exists just to provide scoping for the enums shared by BamReader and BamWriter.
Definition: bamEnums.h:23
BamEnums::BamEndian
BamEndian
This defines an enumerated type used to represent the endianness of certain numeric values stored in ...
Definition: bamEnums.h:32
BamEnums::BamObjectCode
BamObjectCode
This is the code written along with each object.
Definition: bamEnums.h:46
pandabase.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.