37class EXPCL_PANDA_GOBJ SliderTable :
public TypedWritableReferenceCount {
40 SliderTable(
const SliderTable ©);
41 void operator = (
const SliderTable ©);
42 virtual ~SliderTable();
45 INLINE
static CPT(SliderTable) register_table(
const SliderTable *table);
48 INLINE
const VertexSlider *
get_slider(
size_t n)
const;
58 void set_slider(
size_t n,
const VertexSlider *slider);
63 void write(std::ostream &out)
const;
68 INLINE
void update_modified(
UpdateSeq modified,
Thread *current_thread);
75 CPT(VertexSlider) _slider;
79 typedef pvector<SliderDef> Sliders;
83 SlidersByName _sliders_by_name;
88 class EXPCL_PANDA_GOBJ CData :
public CycleData {
91 INLINE CData(
const CData ©);
96 return SliderTable::get_class_type();
102 PipelineCycler<CData> _cycler;
103 typedef CycleDataReader<CData> CDReader;
104 typedef CycleDataWriter<CData> CDWriter;
107 static void register_with_read_factory();
112 static TypedWritable *make_from_bam(
const FactoryParams ¶ms);
113 void fillin(DatagramIterator &scan, BamReader *manager);
116 static TypeHandle get_class_type() {
119 static void init_type() {
120 TypedWritableReferenceCount::init_type();
122 TypedWritableReferenceCount::get_class_type());
124 virtual TypeHandle get_type()
const {
125 return get_class_type();
127 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
130 static TypeHandle _type_handle;
132 friend class VertexSlider;
135INLINE std::ostream &operator << (std::ostream &out,
const SliderTable &obj);
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 ...
A single page of data maintained by a PipelineCycler.
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 ...
Encodes a string name in a hash table, mapping it to a pointer.
Stores the total set of VertexSliders that the vertices in a particular GeomVertexData object might d...
bool is_registered() const
Returns true if this table has been registered.
void set_slider_rows(size_t n, const SparseArray &rows)
Replaces the rows affected by the nth slider.
bool has_slider(const InternalName *name) const
Returns true if the table has at least one slider by the indicated name, false otherwise.
get_slider
Returns the nth slider in the table.
const SparseArray & find_sliders(const InternalName *name) const
Returns a list of slider indices that represent the list of sliders with the indicated name,...
void set_slider(size_t n, const VertexSlider *slider)
Replaces the nth slider.
bool is_empty() const
Returns true if the table has no sliders, false if it has at least one.
get_num_sliders
Returns the number of sliders in the table.
get_modified
Returns a sequence number that's guaranteed to change at least when any VertexSliders in the table ch...
size_t add_slider(const VertexSlider *slider, const SparseArray &rows)
Adds a new slider to the table, and returns the index number of the new slider.
void remove_slider(size_t n)
Removes the nth slider.
const SparseArray & get_slider_rows(size_t n) const
Returns the set of rows (vertices) governed by the nth slider in the table.
This class records a set of integers, where each integer is either present or not present in the set.
A thread; that is, a lightweight process.
get_current_thread
Returns a pointer to the currently-executing Thread object.
TypeHandle is the identifier used to differentiate C++ class types.
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().
This is a sequence number that increments monotonically.
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.
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.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.