14 #ifndef GEOMVERTEXARRAYFORMAT_H
15 #define GEOMVERTEXARRAYFORMAT_H
52 NumericType numeric_type0, Contents contents0);
54 NumericType numeric_type0, Contents contents0,
56 NumericType numeric_type1, Contents contents1);
58 NumericType numeric_type0, Contents contents0,
60 NumericType numeric_type1, Contents contents1,
62 NumericType numeric_type2, Contents contents2);
64 NumericType numeric_type0, Contents contents0,
66 NumericType numeric_type1, Contents contents1,
68 NumericType numeric_type2, Contents contents2,
70 NumericType numeric_type3, Contents contents3);
74 virtual bool unref()
const;
76 INLINE
bool is_registered()
const;
78 MAKE_PROPERTY(registered, is_registered);
80 INLINE
int get_stride()
const;
81 INLINE
void set_stride(
int stride);
82 MAKE_PROPERTY(stride, get_stride, set_stride);
84 INLINE
int get_pad_to()
const;
85 INLINE
void set_pad_to(
int pad_to);
86 MAKE_PROPERTY(pad_to, get_pad_to, set_pad_to);
88 INLINE
int get_divisor()
const;
89 INLINE
void set_divisor(
int divisor);
90 MAKE_PROPERTY(divisor, get_divisor, set_divisor);
92 INLINE
int get_total_bytes()
const;
93 MAKE_PROPERTY(total_bytes, get_total_bytes);
96 NumericType numeric_type, Contents contents,
97 int start = -1,
int column_alignment = 0);
100 void clear_columns();
102 void align_columns_for_animation();
104 INLINE
int get_num_columns()
const;
106 MAKE_SEQ(get_columns, get_num_columns, get_column);
107 MAKE_SEQ_PROPERTY(columns, get_num_columns, get_column);
114 int count_unused_space()
const;
116 void output(std::ostream &out)
const;
117 void write(std::ostream &out,
int indent_level = 0)
const;
118 void write_with_data(std::ostream &out,
int indent_level,
121 std::string get_format_string(
bool pad =
true)
const;
128 INLINE
static Registry *get_registry();
129 static void make_registry();
132 void do_unregister();
134 INLINE
void consider_sort_columns()
const;
145 bool _columns_unsorted;
152 class EXPCL_PANDA_GOBJ Registry {
162 static Registry *_registry;
165 static void register_with_read_factory();
179 static void init_type() {
180 TypedWritableReferenceCount::init_type();
182 TypedWritableReferenceCount::get_class_type());
185 return get_class_type();
187 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
This is a const pointer to an InternalName, and should be used in lieu of a CPT(InternalName) in func...
A class to retrieve the individual data elements previously stored in a Datagram.
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...
An instance of this class is passed to the Factory when requesting it to do its business and construc...
This is the data for one array of a GeomVertexData structure.
This defines how a single column is interleaved within a vertex array stored within a Geom.
This defines the actual numeric vertex data stored in a Geom, in the structure defined by a particula...
Encodes a string name in a hash table, mapping it to a pointer.
This is a standard, non-reentrant mutex, similar to the Mutex class.
virtual bool unref() const
Explicitly decrements the reference count.
TypeHandle is the identifier used to differentiate C++ class types.
A base class for things which need to inherit from both TypedWritable and from ReferenceCount.
Base class for objects that can be written to and read from Bam files.
virtual void finalize(BamReader *manager)
Called by the BamReader to perform any final actions needed for setting up the object after all objec...
virtual void fillin(DatagramIterator &scan, BamReader *manager)
This internal function is intended to be called by each class's make_from_bam() method to read in all...
virtual void write_datagram(BamWriter *manager, Datagram &dg)
Writes the contents of this object to the datagram for shipping out to a Bam file.
virtual int complete_pointers(TypedWritable **p_list, BamReader *manager)
Receives an array of pointers, one for each time manager->read_pointer() was called in fillin().
An STL function object class, this is intended to be used on any ordered collection of class objects ...
This is our own Panda specialization on the default STL list.
This is our own Panda specialization on the default STL set.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.