Poodletooth-iLand/panda/pandac/input/libp3gobj.in
2015-03-03 17:10:12 -05:00

32647 lines
1.7 MiB

1412102079
2 2
9 libp3gobj 4 qQJq 12 panda3d.core
1378
1558 11 AdaptiveLru 0 4 2936 24 AdaptiveLru::AdaptiveLru 0 1 1 224
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
82
AdaptiveLru::AdaptiveLru(basic_string< char > const &name, unsigned int max_size);
1559 12 ~AdaptiveLru 0 4 2936 25 AdaptiveLru::~AdaptiveLru 0 0 232
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
32
AdaptiveLru::~AdaptiveLru(void);
1560 14 get_total_size 0 4 2936 27 AdaptiveLru::get_total_size 0 1 2 797
// Filename: adaptiveLru.I
// Created by: drose (03Sep08)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::get_total_size
// Access: Published
// Description: Returns the total size of all objects currently
// active on the LRU.
////////////////////////////////////////////////////////////////////
60
inline unsigned int AdaptiveLru::get_total_size(void) const;
1561 12 get_max_size 0 4 2936 25 AdaptiveLru::get_max_size 0 1 3 319
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::get_max_size
// Access: Published
// Description: Returns the max size of all objects that are allowed
// to be active on the LRU.
////////////////////////////////////////////////////////////////////
58
inline unsigned int AdaptiveLru::get_max_size(void) const;
1562 12 set_max_size 0 4 2936 25 AdaptiveLru::set_max_size 0 1 4 385
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::set_max_size
// Access: Published
// Description: Changes the max size of all objects that are allowed
// to be active on the LRU.
//
// If the size is (size_t)-1, there is no limit.
////////////////////////////////////////////////////////////////////
61
inline void AdaptiveLru::set_max_size(unsigned int max_size);
1563 17 count_active_size 0 4 2936 30 AdaptiveLru::count_active_size 0 1 5 339
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::count_active_size
// Access: Published
// Description: Returns the total size of the pages that were
// enqueued since the last call to begin_epoch().
////////////////////////////////////////////////////////////////////
56
unsigned int AdaptiveLru::count_active_size(void) const;
1564 14 consider_evict 0 4 2936 27 AdaptiveLru::consider_evict 0 1 6 277
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::consider_evict
// Access: Published
// Description: Evicts a sequence of objects if the queue is full.
////////////////////////////////////////////////////////////////////
46
inline void AdaptiveLru::consider_evict(void);
1565 8 evict_to 0 4 2936 21 AdaptiveLru::evict_to 0 1 7 373
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::evict_to
// Access: Published
// Description: Evicts a sequence of objects until the queue fits
// within the indicated target size, regardless of its
// normal max size.
////////////////////////////////////////////////////////////////////
60
inline void AdaptiveLru::evict_to(unsigned int target_size);
1566 11 begin_epoch 0 4 2936 24 AdaptiveLru::begin_epoch 0 1 8 443
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::begin_epoch
// Access: Published
// Description: Marks the end of the previous epoch and the beginning
// of the next one. This will evict any objects that
// are pending eviction, and also update any internal
// bookkeeping.
////////////////////////////////////////////////////////////////////
36
void AdaptiveLru::begin_epoch(void);
1567 8 validate 0 4 2936 21 AdaptiveLru::validate 0 1 9 365
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::validate
// Access: Published
// Description: Checks that the LRU is internally self-consistent.
// Returns true if successful, false if there is some
// problem.
////////////////////////////////////////////////////////////////////
40
inline bool AdaptiveLru::validate(void);
1568 6 output 0 4 2936 19 AdaptiveLru::output 0 1 10 219
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
45
void AdaptiveLru::output(ostream &out) const;
1569 5 write 0 4 2936 18 AdaptiveLru::write 0 1 11 227
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::write
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
62
void AdaptiveLru::write(ostream &out, int indent_level) const;
1570 10 set_weight 0 4 2936 23 AdaptiveLru::set_weight 0 1 12 515
// The following methods are specific to AdaptiveLru, and do not
// exist in the SimpleLru implementation. In most cases, the
// defaults will be sufficient, so you do not need to mess with
// them.
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::set_weight
// Access: Published
// Description: Specifies the weight value used to compute the
// exponential moving average.
////////////////////////////////////////////////////////////////////
50
inline void AdaptiveLru::set_weight(float weight);
1571 10 get_weight 0 4 2936 23 AdaptiveLru::get_weight 0 1 13 513
// The following methods are specific to AdaptiveLru, and do not
// exist in the SimpleLru implementation. In most cases, the
// defaults will be sufficient, so you do not need to mess with
// them.
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::get_weight
// Access: Published
// Description: Returns the weight value used to compute the
// exponential moving average.
////////////////////////////////////////////////////////////////////
49
inline float AdaptiveLru::get_weight(void) const;
1572 25 set_max_updates_per_frame 0 4 2936 38 AdaptiveLru::set_max_updates_per_frame 0 1 14 486
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::set_max_updates_per_frame
// Access: Published
// Description: Specifies the maximum number of pages the AdaptiveLru
// will update each frame. This is a performance
// optimization: keeping this number low limits the
// impact of the AdaptiveLru's adaptive algorithm.
////////////////////////////////////////////////////////////////////
78
inline void AdaptiveLru::set_max_updates_per_frame(int max_updates_per_frame);
1573 25 get_max_updates_per_frame 0 4 2936 38 AdaptiveLru::get_max_updates_per_frame 0 1 15 330
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::get_max_updates_per_frame
// Access: Published
// Description: Returns the maximum number of pages the AdaptiveLru
// will update each frame.
////////////////////////////////////////////////////////////////////
62
inline int AdaptiveLru::get_max_updates_per_frame(void) const;
1574 36 upcast_to_AdaptiveLruPageDynamicList 0 12 2938 53 AdaptiveLruPage::upcast_to_AdaptiveLruPageDynamicList 0 0 57
upcast from AdaptiveLruPage to AdaptiveLruPageDynamicList
88
AdaptiveLruPageDynamicList *AdaptiveLruPage::upcast_to_AdaptiveLruPageDynamicList(void);
1575 27 downcast_to_AdaptiveLruPage 0 12 2939 55 AdaptiveLruPageDynamicList::downcast_to_AdaptiveLruPage 0 0 59
downcast from AdaptiveLruPageDynamicList to AdaptiveLruPage
79
AdaptiveLruPage *AdaptiveLruPageDynamicList::downcast_to_AdaptiveLruPage(void);
1576 35 upcast_to_AdaptiveLruPageStaticList 0 12 2938 52 AdaptiveLruPage::upcast_to_AdaptiveLruPageStaticList 0 0 56
upcast from AdaptiveLruPage to AdaptiveLruPageStaticList
86
AdaptiveLruPageStaticList *AdaptiveLruPage::upcast_to_AdaptiveLruPageStaticList(void);
1577 27 downcast_to_AdaptiveLruPage 0 12 2940 54 AdaptiveLruPageStaticList::downcast_to_AdaptiveLruPage 0 0 58
downcast from AdaptiveLruPageStaticList to AdaptiveLruPage
78
AdaptiveLruPage *AdaptiveLruPageStaticList::downcast_to_AdaptiveLruPage(void);
1578 15 AdaptiveLruPage 0 4 2938 32 AdaptiveLruPage::AdaptiveLruPage 0 2 16 17 463
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::Constructor
// Access: Protected
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::Copy Constructor
// Access: Protected
// Description:
////////////////////////////////////////////////////////////////////
119
AdaptiveLruPage::AdaptiveLruPage(unsigned int lru_size);
AdaptiveLruPage::AdaptiveLruPage(AdaptiveLruPage const &copy);
1579 10 operator = 0 4 2938 27 AdaptiveLruPage::operator = 0 1 18 241
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::Copy Assignment Operator
// Access: Protected
// Description:
////////////////////////////////////////////////////////////////////
62
void AdaptiveLruPage::operator =(AdaptiveLruPage const &copy);
1580 16 ~AdaptiveLruPage 0 6 2938 33 AdaptiveLruPage::~AdaptiveLruPage 0 0 236
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
48
virtual AdaptiveLruPage::~AdaptiveLruPage(void);
1581 7 get_lru 0 4 2938 24 AdaptiveLruPage::get_lru 0 1 19 335
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::enqueue_lru
// Access: Published
// Description: Returns the LRU that manages this page, or NULL if it
// is not currently managed by any LRU.
////////////////////////////////////////////////////////////////////
57
inline AdaptiveLru *AdaptiveLruPage::get_lru(void) const;
1582 11 enqueue_lru 0 4 2938 28 AdaptiveLruPage::enqueue_lru 0 1 20 445
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::enqueue_lru
// Access: Published
// Description: Adds the page to the LRU for the first time, or marks
// it recently-accessed if it has already been added.
//
// If lru is NULL, it means to remove this page from its
// LRU.
////////////////////////////////////////////////////////////////////
52
void AdaptiveLruPage::enqueue_lru(AdaptiveLru *lru);
1583 11 dequeue_lru 0 4 2938 28 AdaptiveLruPage::dequeue_lru 0 1 21 266
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::dequeue_lru
// Access: Published
// Description: Removes the page from its AdaptiveLru.
////////////////////////////////////////////////////////////////////
47
inline void AdaptiveLruPage::dequeue_lru(void);
1584 13 mark_used_lru 0 4 2938 30 AdaptiveLruPage::mark_used_lru 0 2 22 23 835
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::mark_used_lru
// Access: Published
// Description: To be called when the page is used; this will move it
// to the tail of the AdaptiveLru queue it is already on.
//
// This method is const because it's not technically
// modifying the contents of the page itself.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::mark_used_lru
// Access: Published
// Description: To be called when the page is used; this will move it
// to the tail of the specified AdaptiveLru queue.
////////////////////////////////////////////////////////////////////
117
inline void AdaptiveLruPage::mark_used_lru(void) const;
inline void AdaptiveLruPage::mark_used_lru(AdaptiveLru *lru);
1585 12 get_lru_size 0 4 2938 29 AdaptiveLruPage::get_lru_size 0 1 24 320
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::get_lru_size
// Access: Published
// Description: Returns the size of this page as reported to the LRU,
// presumably in bytes.
////////////////////////////////////////////////////////////////////
62
inline unsigned int AdaptiveLruPage::get_lru_size(void) const;
1586 12 set_lru_size 0 4 2938 29 AdaptiveLruPage::set_lru_size 0 1 25 330
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::set_lru_size
// Access: Published
// Description: Specifies the size of this page, presumably in bytes,
// although any unit is possible.
////////////////////////////////////////////////////////////////////
65
inline void AdaptiveLruPage::set_lru_size(unsigned int lru_size);
1587 9 evict_lru 0 6 2938 26 AdaptiveLruPage::evict_lru 0 1 26 814
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::evict_lru
// Access: Published, Virtual
// Description: Evicts the page from the LRU. Called internally when
// the LRU determines that it is full. May also be
// called externally when necessary to explicitly evict
// the page.
//
// It is legal for this method to either evict the page
// as requested, do nothing (in which case the eviction
// will be requested again at the next epoch), or
// requeue itself on the tail of the queue (in which
// case the eviction will be requested again much
// later).
////////////////////////////////////////////////////////////////////
46
virtual void AdaptiveLruPage::evict_lru(void);
1588 6 output 0 6 2938 23 AdaptiveLruPage::output 0 1 27 232
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::output
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
57
virtual void AdaptiveLruPage::output(ostream &out) const;
1589 5 write 0 6 2938 22 AdaptiveLruPage::write 0 1 28 231
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::write
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
74
virtual void AdaptiveLruPage::write(ostream &out, int indent_level) const;
1590 14 get_num_frames 0 4 2938 31 AdaptiveLruPage::get_num_frames 0 1 29 409
// Not defined in SimpleLruPage.
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::get_num_frames
// Access: Published
// Description: Returns the number of frames since the page was first
// added to its LRU. Returns 0 if it does not have an
// LRU.
////////////////////////////////////////////////////////////////////
57
unsigned int AdaptiveLruPage::get_num_frames(void) const;
1591 23 get_num_inactive_frames 0 4 2938 40 AdaptiveLruPage::get_num_inactive_frames 0 1 30 420
// Not defined in SimpleLruPage.
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::get_num_inactive_frames
// Access: Published
// Description: Returns the number of frames since the page was last
// accessed on its LRU. Returns 0 if it does not have
// an LRU.
////////////////////////////////////////////////////////////////////
66
unsigned int AdaptiveLruPage::get_num_inactive_frames(void) const;
1592 10 ~GeomEnums 0 4 2941 21 GeomEnums::~GeomEnums 0 0 0
28
GeomEnums::~GeomEnums(void);
1593 23 GeomVertexAnimationSpec 0 4 2949 48 GeomVertexAnimationSpec::GeomVertexAnimationSpec 0 2 31 32 978
// Filename: geomVertexAnimationSpec.I
// Created by: drose (29Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
157
inline GeomVertexAnimationSpec::GeomVertexAnimationSpec(void);
inline GeomVertexAnimationSpec::GeomVertexAnimationSpec(GeomVertexAnimationSpec const &other);
1594 10 operator = 0 4 2949 35 GeomVertexAnimationSpec::operator = 0 1 33 249
////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
86
inline void GeomVertexAnimationSpec::operator =(GeomVertexAnimationSpec const &other);
1595 18 get_animation_type 0 4 2949 43 GeomVertexAnimationSpec::get_animation_type 0 1 34 315
////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::get_animation_type
// Access: Published
// Description: Returns the type of animation represented by this
// spec.
////////////////////////////////////////////////////////////////////
88
inline GeomEnums::AnimationType GeomVertexAnimationSpec::get_animation_type(void) const;
1596 18 get_num_transforms 0 4 2949 43 GeomVertexAnimationSpec::get_num_transforms 0 1 35 479
////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::get_num_transforms
// Access: Published
// Description: This is only meaningful for animation_type
// AT_hardware. It specifies the maximum number of
// transforms that might be simultaneously applied to
// any one vertex by the data in this format.
////////////////////////////////////////////////////////////////////
67
inline int GeomVertexAnimationSpec::get_num_transforms(void) const;
1597 22 get_indexed_transforms 0 4 2949 47 GeomVertexAnimationSpec::get_indexed_transforms 0 1 36 529
////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::get_indexed_transforms
// Access: Published
// Description: This is only meaningful for animation_type
// AT_hardware. If true, it indicates that the format
// uses indexed animation tables. It is false if each
// vertex will reference the first _num_transforms
// table entries only.
////////////////////////////////////////////////////////////////////
72
inline bool GeomVertexAnimationSpec::get_indexed_transforms(void) const;
1598 8 set_none 0 4 2949 33 GeomVertexAnimationSpec::set_none 0 1 37 313
////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::set_none
// Access: Published
// Description: Specifies that no vertex animation is represented by
// this spec.
////////////////////////////////////////////////////////////////////
52
inline void GeomVertexAnimationSpec::set_none(void);
1599 9 set_panda 0 4 2949 34 GeomVertexAnimationSpec::set_panda 0 1 38 419
////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::set_panda
// Access: Published
// Description: Specifies that vertex animation is to be performed by
// Panda. This is the most general setting and can
// handle any kind of vertex animation represented.
////////////////////////////////////////////////////////////////////
53
inline void GeomVertexAnimationSpec::set_panda(void);
1600 12 set_hardware 0 4 2949 37 GeomVertexAnimationSpec::set_hardware 0 1 39 721
////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::set_hardware
// Access: Published
// Description: Specifies that vertex animation is to be performed by
// the graphics hardware (or at least by the graphics
// backend API, which is actually still free to animate
// the vertices on the CPU).
//
// This is only legal if the graphics hardware can
// support the specified limits on number of transforms
// and/or indexed transforms. Also, no current graphics
// API's support morphing.
////////////////////////////////////////////////////////////////////
95
inline void GeomVertexAnimationSpec::set_hardware(int num_transforms, bool indexed_transforms);
1601 6 output 0 4 2949 31 GeomVertexAnimationSpec::output 0 1 40 231
////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
57
void GeomVertexAnimationSpec::output(ostream &out) const;
1602 24 ~GeomVertexAnimationSpec 0 4 2949 49 GeomVertexAnimationSpec::~GeomVertexAnimationSpec 0 0 0
56
GeomVertexAnimationSpec::~GeomVertexAnimationSpec(void);
1603 4 make 0 4 2950 18 InternalName::make 0 2 41 42 1610
// Filename: internalName.I
// Created by: masad (15Jul04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: InternalName::make
// Access: Published, Static
// Description: The public interface for constructing an InternalName
// pointer. This will return a new InternalName
// representing the indicated name, if this is the first
// time the particular name has been requested; if the
// name is already in use, it will return the existing
// pointer.
//
// If the string contains the '.' character, the string
// will be divided at the dots and the so-defined
// hierarchy of names will be registered. This is
// handled transparently.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: InternalName::make
// Access: Published, Static
// Description: Make using a string and an integer. Concatenates
// the two.
////////////////////////////////////////////////////////////////////
191
static inline PointerTo< InternalName > InternalName::make(basic_string< char > const &name);
static PointerTo< InternalName > InternalName::make(basic_string< char > const &name, int index);
1604 6 append 0 4 2950 20 InternalName::append 0 1 43 475
////////////////////////////////////////////////////////////////////
// Function: InternalName::append
// Access: Published
// Description: Constructs a new InternalName based on this name,
// with the indicated string following it. This is a
// cheaper way to construct a hierarchical name than
// InternalName::make(parent->get_name() + ".basename").
////////////////////////////////////////////////////////////////////
85
PointerTo< InternalName > InternalName::append(basic_string< char > const &basename);
1605 10 get_parent 0 4 2950 24 InternalName::get_parent 0 1 44 328
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_parent
// Access: Published
// Description: Return the parent of this InternalName. All names
// have a parent, except the root name.
////////////////////////////////////////////////////////////////////
58
inline InternalName *InternalName::get_parent(void) const;
1606 8 get_name 0 4 2950 22 InternalName::get_name 0 1 45 320
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_name
// Access: Published
// Description: Returns the complete name represented by the
// InternalName and all of its parents.
////////////////////////////////////////////////////////////////////
56
basic_string< char > InternalName::get_name(void) const;
1607 4 join 0 4 2950 18 InternalName::join 0 1 46 293
////////////////////////////////////////////////////////////////////
// Function: InternalName::join
// Access: Published
// Description: Like get_name, but uses a custom separator instead
// of ".".
////////////////////////////////////////////////////////////////////
79
basic_string< char > InternalName::join(basic_string< char > const &sep) const;
1608 12 get_basename 0 4 2950 26 InternalName::get_basename 0 1 47 404
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_basename
// Access: Published
// Description: Return the name represented by just this particular
// InternalName object, ignoring its parents names.
// This is everything after the rightmost dot.
////////////////////////////////////////////////////////////////////
74
inline basic_string< char > const &InternalName::get_basename(void) const;
1609 13 find_ancestor 0 4 2950 27 InternalName::find_ancestor 0 1 48 584
////////////////////////////////////////////////////////////////////
// Function: InternalName::find_ancestor
// Access: Published
// Description: Returns the index of the ancestor with the indicated
// basename, or -1 if no ancestor has that basename.
// Returns 0 if this name has the basename.
//
// This index value may be passed to get_ancestor() or
// get_net_basename() to retrieve more information about
// the indicated name.
////////////////////////////////////////////////////////////////////
76
int InternalName::find_ancestor(basic_string< char > const &basename) const;
1610 12 get_ancestor 0 4 2950 26 InternalName::get_ancestor 0 1 49 481
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_ancestor
// Access: Published
// Description: Returns the ancestor with the indicated index number.
// 0 is this name itself, 1 is the name's parent, 2 is
// the parent's parent, and so on. If there are not
// enough ancestors, returns the root InternalName.
////////////////////////////////////////////////////////////////////
60
InternalName const *InternalName::get_ancestor(int n) const;
1611 7 get_top 0 4 2950 21 InternalName::get_top 0 1 50 460
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_top
// Access: Published
// Description: Returns the oldest ancestor in the InternalName's
// chain, not counting the root. This will be the first
// name in the string, e.g. "texcoord.foo.bar" will
// return the InternalName "texcoord".
////////////////////////////////////////////////////////////////////
54
InternalName const *InternalName::get_top(void) const;
1612 16 get_net_basename 0 4 2950 30 InternalName::get_net_basename 0 1 51 456
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_net_basename
// Access: Published
// Description: Returns the basename of this name prefixed by the
// indicated number of ancestors. 0 is this name's
// basename, 1 is parent.basename, 2 is
// grandparent.parent.basename, and so on.
////////////////////////////////////////////////////////////////////
65
basic_string< char > InternalName::get_net_basename(int n) const;
1613 6 output 0 4 2950 20 InternalName::output 0 1 52 220
////////////////////////////////////////////////////////////////////
// Function: InternalName::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
46
void InternalName::output(ostream &out) const;
1614 8 get_root 0 4 2950 22 InternalName::get_root 0 1 53 474
// Some predefined built-in names.
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_root
// Access: Published, Static
// Description: Returns the standard root InternalName. This is the
// root of all other InternalNames. It has no name
// itself, and it is the only InternalName with no
// parent.
////////////////////////////////////////////////////////////////////
69
static inline PointerTo< InternalName > InternalName::get_root(void);
1615 9 get_error 0 4 2950 23 InternalName::get_error 0 1 54 309
// Some predefined built-in names.
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_error
// Access: Published, Static
// Description: Returns the standard InternalName "error".
////////////////////////////////////////////////////////////////////
70
static inline PointerTo< InternalName > InternalName::get_error(void);
1616 10 get_vertex 0 4 2950 24 InternalName::get_vertex 0 1 55 400
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_vertex
// Access: Published, Static
// Description: Returns the standard InternalName "vertex". This is
// the column header for the 3-d or 4-d vertex position
// information for each vertex.
////////////////////////////////////////////////////////////////////
71
static inline PointerTo< InternalName > InternalName::get_vertex(void);
1617 10 get_normal 0 4 2950 24 InternalName::get_normal 0 1 56 381
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_normal
// Access: Published, Static
// Description: Returns the standard InternalName "normal". This is
// the column header for the 3-d lighting normal for
// each vertex.
////////////////////////////////////////////////////////////////////
71
static inline PointerTo< InternalName > InternalName::get_normal(void);
1618 11 get_tangent 0 4 2950 25 InternalName::get_tangent 0 1 57 593
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_tangent
// Access: Published, Static
// Description: Returns the standard InternalName "tangent". This is
// the column header for the tangent vector associated
// with each vertex, which is a unit vector
// usually perpendicular to the normal and in the
// direction of the U texture coordinate change. It is
// used for deriving bump maps.
////////////////////////////////////////////////////////////////////
72
static inline PointerTo< InternalName > InternalName::get_tangent(void);
1619 16 get_tangent_name 0 4 2950 30 InternalName::get_tangent_name 0 1 58 457
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_tangent_name
// Access: Published, Static
// Description: Returns the InternalName "tangent.name", where name
// is the supplied string. This is the column header
// for the tangent associated with the named texture
// coordinate set.
////////////////////////////////////////////////////////////////////
105
static inline PointerTo< InternalName > InternalName::get_tangent_name(basic_string< char > const &name);
1620 12 get_binormal 0 4 2950 26 InternalName::get_binormal 0 1 59 634
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_binormal
// Access: Published, Static
// Description: Returns the standard InternalName "binormal". This is
// the column header for the tangent vector associated
// with each vertex, which is a unit vector
// usually perpendicular to both the normal and the
// tangent, and in the direction of the V texture
// coordinate change. It is used for deriving bump
// maps.
////////////////////////////////////////////////////////////////////
73
static inline PointerTo< InternalName > InternalName::get_binormal(void);
1621 17 get_binormal_name 0 4 2950 31 InternalName::get_binormal_name 0 1 60 460
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_binormal_name
// Access: Published, Static
// Description: Returns the InternalName "binormal.name", where name
// is the supplied string. This is the column header
// for the binormal associated with the named texture
// coordinate set.
////////////////////////////////////////////////////////////////////
106
static inline PointerTo< InternalName > InternalName::get_binormal_name(basic_string< char > const &name);
1622 12 get_texcoord 0 4 2950 26 InternalName::get_texcoord 0 1 61 517
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_texcoord
// Access: Published, Static
// Description: Returns the standard InternalName "texcoord". This
// is the column header for the default texture
// coordinate set for each vertex. It is also used for
// identifying the default texture coordinate set in a
// TextureStage.
////////////////////////////////////////////////////////////////////
73
static inline PointerTo< InternalName > InternalName::get_texcoord(void);
1623 17 get_texcoord_name 0 4 2950 31 InternalName::get_texcoord_name 0 1 62 548
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_texcoord_name
// Access: Published, Static
// Description: Returns the InternalName "texcoord.name", where name
// is the supplied string. This is the column header
// for the named texture coordinate set for each vertex.
// It is also used for identifying the named texture
// coordinate set in a TextureStage.
////////////////////////////////////////////////////////////////////
106
static inline PointerTo< InternalName > InternalName::get_texcoord_name(basic_string< char > const &name);
1624 9 get_color 0 4 2950 23 InternalName::get_color 0 1 63 383
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_color
// Access: Published, Static
// Description: Returns the standard InternalName "color". This is
// the column header for the 4-component color value for
// each vertex.
////////////////////////////////////////////////////////////////////
70
static inline PointerTo< InternalName > InternalName::get_color(void);
1625 10 get_rotate 0 4 2950 24 InternalName::get_rotate 0 1 64 500
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_rotate
// Access: Published, Static
// Description: Returns the standard InternalName "rotate". This is
// the column header for the floating-point rotate
// value, which represents a number of degrees
// counter-clockwise to rotate each point or point
// sprite.
////////////////////////////////////////////////////////////////////
71
static inline PointerTo< InternalName > InternalName::get_rotate(void);
1626 8 get_size 0 4 2950 22 InternalName::get_size 0 1 65 505
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_size
// Access: Published, Static
// Description: Returns the standard InternalName "size". This is
// the column header for the floating-point size value,
// which overrides the thickness parameter of the
// RenderModeAttrib on a per-vertex (e.g. per-point)
// basis.
////////////////////////////////////////////////////////////////////
69
static inline PointerTo< InternalName > InternalName::get_size(void);
1627 16 get_aspect_ratio 0 4 2950 30 InternalName::get_aspect_ratio 0 1 66 535
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_aspect_ratio
// Access: Published, Static
// Description: Returns the standard InternalName "aspect_ratio".
// This is the column header for the floating-point
// aspect ratio value, which is used to define
// non-square points. This number is the ratio x / y,
// where y is the point size (above).
////////////////////////////////////////////////////////////////////
77
static inline PointerTo< InternalName > InternalName::get_aspect_ratio(void);
1628 19 get_transform_blend 0 4 2950 33 InternalName::get_transform_blend 0 1 67 553
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_transform_blend
// Access: Published, Static
// Description: Returns the standard InternalName "transform_blend".
// This is the column header for the integer
// transform_blend index, which is used to define vertex
// animation on the CPU by indexing to a particular
// vertex weighting from the TransformBlendTable.
////////////////////////////////////////////////////////////////////
80
static inline PointerTo< InternalName > InternalName::get_transform_blend(void);
1629 20 get_transform_weight 0 4 2950 34 InternalName::get_transform_weight 0 1 68 823
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_transform_weight
// Access: Published, Static
// Description: Returns the standard InternalName "transform_weight".
// This is the column header for the n-component
// transform_weight value, which is used in conjuntion
// with "transform_index" to define vertex animation on
// the graphics card. The transform_weight value
// specifies the weight of the nth transform. By
// convention, there are 1 fewer weight values than
// transforms, since the weights are assumed to sum to 1
// (and the last value is therefore implicit).
////////////////////////////////////////////////////////////////////
81
static inline PointerTo< InternalName > InternalName::get_transform_weight(void);
1630 19 get_transform_index 0 4 2950 33 InternalName::get_transform_index 0 1 69 795
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_transform_index
// Access: Published, Static
// Description: Returns the standard InternalName "transform_index".
// This is the column header for the n-component
// transform_index value, which is used in conjuntion
// with "transform_weight" to define vertex animation on
// the graphics card. The transform_index value
// specifies the nth transform, by lookup in the
// TransformTable. The transform_index column may be
// omitted, in which case the nth transform is the nth
// entry in the table.
////////////////////////////////////////////////////////////////////
80
static inline PointerTo< InternalName > InternalName::get_transform_index(void);
1631 9 get_morph 0 4 2950 23 InternalName::get_morph 0 1 70 655
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_morph
// Access: Published, Static
// Description: Returns an InternalName derived from the given base
// column name and the given slider name, which is the
// column header for the offset vector that should be
// applied to the base column name when the named morph
// slider is engaged.
//
// Each morph slider requires a set of n morph columns,
// one for each base column it applies to.
////////////////////////////////////////////////////////////////////
122
static inline PointerTo< InternalName > InternalName::get_morph(InternalName *column, basic_string< char > const &slider);
1632 9 get_index 0 4 2950 23 InternalName::get_index 0 1 71 515
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_index
// Access: Published, Static
// Description: Returns the standard InternalName "index". This is
// the column header for the integer vertex index. It
// is not used in the vertex data itself, but is used in
// the GeomPrimitive structure to index into the vertex
// data.
////////////////////////////////////////////////////////////////////
70
static inline PointerTo< InternalName > InternalName::get_index(void);
1633 9 get_world 0 4 2950 23 InternalName::get_world 0 1 72 342
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_world
// Access: Published, Static
// Description: Returns the standard InternalName "world". This is
// used as a keyword in the shader subsystem.
////////////////////////////////////////////////////////////////////
70
static inline PointerTo< InternalName > InternalName::get_world(void);
1634 10 get_camera 0 4 2950 24 InternalName::get_camera 0 1 73 344
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_camera
// Access: Published, Static
// Description: Returns the standard InternalName "camera". This is
// used as a keyword in the shader subsystem.
////////////////////////////////////////////////////////////////////
71
static inline PointerTo< InternalName > InternalName::get_camera(void);
1635 9 get_model 0 4 2950 23 InternalName::get_model 0 1 74 342
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_model
// Access: Published, Static
// Description: Returns the standard InternalName "model". This is
// used as a keyword in the shader subsystem.
////////////////////////////////////////////////////////////////////
70
static inline PointerTo< InternalName > InternalName::get_model(void);
1636 8 get_view 0 4 2950 22 InternalName::get_view 0 1 75 340
////////////////////////////////////////////////////////////////////
// Function: InternalName::get_view
// Access: Published, Static
// Description: Returns the standard InternalName "view". This is
// used as a keyword in the shader subsystem.
////////////////////////////////////////////////////////////////////
69
static inline PointerTo< InternalName > InternalName::get_view(void);
1637 14 get_class_type 0 4 2950 28 InternalName::get_class_type 0 1 76 0
53
static TypeHandle InternalName::get_class_type(void);
1638 16 GeomVertexColumn 0 4 2952 34 GeomVertexColumn::GeomVertexColumn 0 3 77 78 79 1283
// Filename: geomVertexColumn.I
// Created by: drose (06Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::Default Constructor
// Access: Private
// Description: Creates an invalid column. Used only when constructing
// from a bam file.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
261
inline GeomVertexColumn::GeomVertexColumn(InternalName *name, int num_components, GeomEnums::NumericType numeric_type, GeomEnums::Contents contents, int start, int column_alignment = (0));
inline GeomVertexColumn::GeomVertexColumn(GeomVertexColumn const &copy);
1639 10 operator = 0 4 2952 28 GeomVertexColumn::operator = 0 1 80 242
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
64
void GeomVertexColumn::operator =(GeomVertexColumn const &copy);
1640 17 ~GeomVertexColumn 0 4 2952 35 GeomVertexColumn::~GeomVertexColumn 0 0 228
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::Destructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
49
inline GeomVertexColumn::~GeomVertexColumn(void);
1641 8 get_name 0 4 2952 26 GeomVertexColumn::get_name 0 1 81 541
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_name
// Access: Published
// Description: Returns the name of this particular data field,
// e.g. "vertex" or "normal". The name may be a
// user-defined string, or it may be one of the standard
// system-defined field types. Only the system-defined
// field types are used for the actual rendering.
////////////////////////////////////////////////////////////////////
60
inline InternalName *GeomVertexColumn::get_name(void) const;
1642 18 get_num_components 0 4 2952 36 GeomVertexColumn::get_num_components 0 1 82 464
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_num_components
// Access: Published
// Description: Returns the number of components of the column:
// the number of instances of the NumericType in each
// element. This is usually, but not always, the same
// thing as get_num_values().
////////////////////////////////////////////////////////////////////
60
inline int GeomVertexColumn::get_num_components(void) const;
1643 14 get_num_values 0 4 2952 32 GeomVertexColumn::get_num_values 0 1 83 648
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_num_values
// Access: Published
// Description: Returns the number of numeric values of the column:
// the number of distinct numeric values that go into
// each element. This is usually, but not always, the
// same thing as get_num_components(); the difference is
// in the case of a composite numeric type like
// NT_packed_dcba, which has four numeric values per
// component.
////////////////////////////////////////////////////////////////////
56
inline int GeomVertexColumn::get_num_values(void) const;
1644 16 get_numeric_type 0 4 2952 34 GeomVertexColumn::get_numeric_type 0 1 84 319
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_numeric_type
// Access: Published
// Description: Returns the token representing the numeric type of
// the data storage.
////////////////////////////////////////////////////////////////////
77
inline GeomEnums::NumericType GeomVertexColumn::get_numeric_type(void) const;
1645 12 get_contents 0 4 2952 30 GeomVertexColumn::get_contents 0 1 85 319
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_contents
// Access: Published
// Description: Returns the token representing the semantic meaning of
// the stored value.
////////////////////////////////////////////////////////////////////
70
inline GeomEnums::Contents GeomVertexColumn::get_contents(void) const;
1646 9 get_start 0 4 2952 27 GeomVertexColumn::get_start 0 1 86 392
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_start
// Access: Published
// Description: Returns the byte within the array record at which
// this column starts. This can be set to non-zero
// to implement interleaved arrays.
////////////////////////////////////////////////////////////////////
51
inline int GeomVertexColumn::get_start(void) const;
1647 20 get_column_alignment 0 4 2952 38 GeomVertexColumn::get_column_alignment 0 1 87 601
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_column_alignment
// Access: Published
// Description: Returns the alignment requirements for this column.
// If this is greater than 1, it restricts the column to
// appear only on memory addresses that are integer
// multiples of this value; this has implications for
// this column's start value, as well as the stride of
// the resulting array.
////////////////////////////////////////////////////////////////////
62
inline int GeomVertexColumn::get_column_alignment(void) const;
1648 19 get_component_bytes 0 4 2952 37 GeomVertexColumn::get_component_bytes 0 1 88 351
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_component_bytes
// Access: Published
// Description: Returns the number of bytes used by each component
// (that is, by one element of the numeric type).
////////////////////////////////////////////////////////////////////
61
inline int GeomVertexColumn::get_component_bytes(void) const;
1649 15 get_total_bytes 0 4 2952 33 GeomVertexColumn::get_total_bytes 0 1 89 347
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_total_bytes
// Access: Published
// Description: Returns the number of bytes used by each element of
// the column: component_bytes * num_components.
////////////////////////////////////////////////////////////////////
57
inline int GeomVertexColumn::get_total_bytes(void) const;
1650 21 has_homogeneous_coord 0 4 2952 39 GeomVertexColumn::has_homogeneous_coord 0 1 90 727
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::has_homogeneous_coord
// Access: Published
// Description: Returns true if this Contents type is one that
// includes a homogeneous coordinate in the fourth
// component, or false otherwise. If this is true,
// correct operation on the vertex data may require
// scaling by the homogeneous coordinate from time to
// time (but in general this is handled automatically if
// you use the 3-component or smaller forms of
// get_data() and set_data()).
////////////////////////////////////////////////////////////////////
64
inline bool GeomVertexColumn::has_homogeneous_coord(void) const;
1651 13 overlaps_with 0 4 2952 31 GeomVertexColumn::overlaps_with 0 1 91 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::overlaps_with
// Access: Published
// Description: Returns true if this column overlaps with any of
// the bytes in the indicated range, false if it does
// not.
////////////////////////////////////////////////////////////////////
81
inline bool GeomVertexColumn::overlaps_with(int start_byte, int num_bytes) const;
1652 22 is_bytewise_equivalent 0 4 2952 40 GeomVertexColumn::is_bytewise_equivalent 0 1 92 419
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::is_bytewise_equivalent
// Access: Published
// Description: Returns true if the data store of this column is
// exactly the same as that of the other, irrespective
// of name or start position within the record.
////////////////////////////////////////////////////////////////////
90
inline bool GeomVertexColumn::is_bytewise_equivalent(GeomVertexColumn const &other) const;
1653 8 set_name 0 4 2952 26 GeomVertexColumn::set_name 0 1 93 393
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::set_name
// Access: Published
// Description: Replaces the name of an existing column. This is
// only legal on an unregistered format (i.e. when
// constructing the format initially).
////////////////////////////////////////////////////////////////////
52
void GeomVertexColumn::set_name(InternalName *name);
1654 18 set_num_components 0 4 2952 36 GeomVertexColumn::set_num_components 0 1 94 418
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::set_num_components
// Access: Published
// Description: Changes the number of components of an existing
// column. This is only legal on an unregistered format
// (i.e. when constructing the format initially).
////////////////////////////////////////////////////////////////////
62
void GeomVertexColumn::set_num_components(int num_components);
1655 16 set_numeric_type 0 4 2952 34 GeomVertexColumn::set_numeric_type 0 1 95 405
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::set_numeric_type
// Access: Published
// Description: Changes the numeric type an existing column. This is
// only legal on an unregistered format (i.e. when
// constructing the format initially).
////////////////////////////////////////////////////////////////////
77
void GeomVertexColumn::set_numeric_type(GeomEnums::NumericType numeric_type);
1656 12 set_contents 0 4 2952 30 GeomVertexColumn::set_contents 0 1 96 407
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::set_contents
// Access: Published
// Description: Changes the semantic meaning of an existing column.
// This is only legal on an unregistered format
// (i.e. when constructing the format initially).
////////////////////////////////////////////////////////////////////
66
void GeomVertexColumn::set_contents(GeomEnums::Contents contents);
1657 9 set_start 0 4 2952 27 GeomVertexColumn::set_start 0 1 97 398
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::set_start
// Access: Published
// Description: Changes the start byte of an existing column.
// This is only legal on an unregistered format
// (i.e. when constructing the format initially).
////////////////////////////////////////////////////////////////////
44
void GeomVertexColumn::set_start(int start);
1658 20 set_column_alignment 0 4 2952 38 GeomVertexColumn::set_column_alignment 0 1 98 415
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::set_column_alignment
// Access: Published
// Description: Changes the column alignment of an existing column.
// This is only legal on an unregistered format
// (i.e. when constructing the format initially).
////////////////////////////////////////////////////////////////////
66
void GeomVertexColumn::set_column_alignment(int column_alignment);
1659 6 output 0 4 2952 24 GeomVertexColumn::output 0 1 99 224
////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
50
void GeomVertexColumn::output(ostream &out) const;
1660 37 upcast_to_TypedWritableReferenceCount 0 12 2953 60 GeomVertexArrayFormat::upcast_to_TypedWritableReferenceCount 0 1 137 64
upcast from GeomVertexArrayFormat to TypedWritableReferenceCount
96
TypedWritableReferenceCount *GeomVertexArrayFormat::upcast_to_TypedWritableReferenceCount(void);
1661 33 downcast_to_GeomVertexArrayFormat 0 12 2951 62 TypedWritableReferenceCount::downcast_to_GeomVertexArrayFormat 0 1 138 66
downcast from TypedWritableReferenceCount to GeomVertexArrayFormat
92
GeomVertexArrayFormat *TypedWritableReferenceCount::downcast_to_GeomVertexArrayFormat(void);
1662 19 upcast_to_GeomEnums 0 12 2953 42 GeomVertexArrayFormat::upcast_to_GeomEnums 0 1 139 46
upcast from GeomVertexArrayFormat to GeomEnums
60
GeomEnums *GeomVertexArrayFormat::upcast_to_GeomEnums(void);
1663 33 downcast_to_GeomVertexArrayFormat 0 12 2941 44 GeomEnums::downcast_to_GeomVertexArrayFormat 0 1 140 48
downcast from GeomEnums to GeomVertexArrayFormat
74
GeomVertexArrayFormat *GeomEnums::downcast_to_GeomVertexArrayFormat(void);
1664 21 GeomVertexArrayFormat 0 4 2953 44 GeomVertexArrayFormat::GeomVertexArrayFormat 0 6 100 101 102 103 104 105 1419
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
1426
GeomVertexArrayFormat::GeomVertexArrayFormat(void);
GeomVertexArrayFormat::GeomVertexArrayFormat(GeomVertexArrayFormat const &copy);
GeomVertexArrayFormat::GeomVertexArrayFormat(InternalName *name0, int num_components0, GeomEnums::NumericType numeric_type0, GeomEnums::Contents contents0);
GeomVertexArrayFormat::GeomVertexArrayFormat(InternalName *name0, int num_components0, GeomEnums::NumericType numeric_type0, GeomEnums::Contents contents0, InternalName *name1, int num_components1, GeomEnums::NumericType numeric_type1, GeomEnums::Contents contents1);
GeomVertexArrayFormat::GeomVertexArrayFormat(InternalName *name0, int num_components0, GeomEnums::NumericType numeric_type0, GeomEnums::Contents contents0, InternalName *name1, int num_components1, GeomEnums::NumericType numeric_type1, GeomEnums::Contents contents1, InternalName *name2, int num_components2, GeomEnums::NumericType numeric_type2, GeomEnums::Contents contents2);
GeomVertexArrayFormat::GeomVertexArrayFormat(InternalName *name0, int num_components0, GeomEnums::NumericType numeric_type0, GeomEnums::Contents contents0, InternalName *name1, int num_components1, GeomEnums::NumericType numeric_type1, GeomEnums::Contents contents1, InternalName *name2, int num_components2, GeomEnums::NumericType numeric_type2, GeomEnums::Contents contents2, InternalName *name3, int num_components3, GeomEnums::NumericType numeric_type3, GeomEnums::Contents contents3);
1665 10 operator = 0 4 2953 33 GeomVertexArrayFormat::operator = 0 1 106 247
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
74
void GeomVertexArrayFormat::operator =(GeomVertexArrayFormat const &copy);
1666 22 ~GeomVertexArrayFormat 0 6 2953 45 GeomVertexArrayFormat::~GeomVertexArrayFormat 0 0 242
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
60
virtual GeomVertexArrayFormat::~GeomVertexArrayFormat(void);
1667 5 unref 0 6 2953 28 GeomVertexArrayFormat::unref 0 1 107 380
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::unref
// Access: Published, Virtual
// Description: This method overrides ReferenceCount::unref() to
// unregister the object when its reference count goes
// to zero.
////////////////////////////////////////////////////////////////////
54
virtual bool GeomVertexArrayFormat::unref(void) const;
1668 13 is_registered 0 4 2953 36 GeomVertexArrayFormat::is_registered 0 1 108 965
// Filename: geomVertexArrayFormat.I
// Created by: drose (06Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::is_registered
// Access: Published
// Description: Returns true if this format has been registered,
// false if it has not. It may not be used for a Geom
// until it has been registered, but once registered, it
// may no longer be modified.
////////////////////////////////////////////////////////////////////
61
inline bool GeomVertexArrayFormat::is_registered(void) const;
1669 15 register_format 0 4 2953 38 GeomVertexArrayFormat::register_format 0 1 109 774
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::register_format
// Access: Published, Static
// Description: Adds the indicated format to the registry, if there
// is not an equivalent format already there; in either
// case, returns the pointer to the equivalent format
// now in the registry.
//
// This is similar to
// GeomVertexFormat::register_format(), except that you
// generally need not call it explicitly. Calling
// GeomVertexFormat::register_format() automatically
// registers all of the nested array formats.
////////////////////////////////////////////////////////////////////
130
static inline ConstPointerTo< GeomVertexArrayFormat > GeomVertexArrayFormat::register_format(GeomVertexArrayFormat const *format);
1670 10 get_stride 0 4 2953 33 GeomVertexArrayFormat::get_stride 0 1 110 322
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_stride
// Access: Published
// Description: Returns the total number of bytes reserved in the
// array for each vertex.
////////////////////////////////////////////////////////////////////
57
inline int GeomVertexArrayFormat::get_stride(void) const;
1671 10 set_stride 0 4 2953 33 GeomVertexArrayFormat::set_stride 0 1 111 443
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::set_stride
// Access: Published
// Description: Changes the total number of bytes reserved in the
// array for each vertex. You may not reduce this below
// get_total_bytes(), but you may increase it
// arbitrarily.
////////////////////////////////////////////////////////////////////
58
inline void GeomVertexArrayFormat::set_stride(int stride);
1672 10 get_pad_to 0 4 2953 33 GeomVertexArrayFormat::get_pad_to 0 1 112 659
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_pad_to
// Access: Published
// Description: Returns the byte divisor to which the data record
// must be padded to meet hardware limitations. For
// instance, if this is 4, the stride will be
// automatically rounded up to the next multiple of 4
// bytes. This value is automatically increased as
// needed to ensure the individual numeric components in
// the array are word-aligned.
////////////////////////////////////////////////////////////////////
57
inline int GeomVertexArrayFormat::get_pad_to(void) const;
1673 10 set_pad_to 0 4 2953 33 GeomVertexArrayFormat::set_pad_to 0 1 113 666
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::set_pad_to
// Access: Published
// Description: Explicitly sets the byte divisor to which the data
// record must be padded to meet hardware limitations.
// See get_pad_to(). Normally it is not necessary to
// call this unless you have some specific requirements
// for row-to-row data alignment. Note that this value
// may be automatically increased at each subsequent
// call to add_column().
////////////////////////////////////////////////////////////////////
58
inline void GeomVertexArrayFormat::set_pad_to(int pad_to);
1674 15 get_total_bytes 0 4 2953 38 GeomVertexArrayFormat::get_total_bytes 0 1 114 380
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_total_bytes
// Access: Published
// Description: Returns the total number of bytes used by the data
// types within the format, including gaps between
// elements.
////////////////////////////////////////////////////////////////////
62
inline int GeomVertexArrayFormat::get_total_bytes(void) const;
1675 10 add_column 0 4 2953 33 GeomVertexArrayFormat::add_column 0 4 115 116 117 118 1461
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::add_column
// Access: Published
// Description: Adds a new column to the specification. This is a
// table of per-vertex floating-point numbers such as
// "vertex" or "normal"; you must specify where in each
// record the table starts, and how many components
// (dimensions) exist per vertex.
//
// The return value is the index number of the new data
// type.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::add_column
// Access: Published
// Description: Adds a new column to the specification. This is a
// table of per-vertex floating-point numbers such as
// "vertex" or "normal"; you must specify where in each
// record the table starts, and how many components
// (dimensions) exist per vertex.
//
// Adding a column with the same name as a previous
// type, or that overlaps with one or more previous
// types, quietly removes the previous type(s).
//
// The return value is the index number of the new data
// type.
////////////////////////////////////////////////////////////////////
262
int GeomVertexArrayFormat::add_column(InternalName *name, int num_components, GeomEnums::NumericType numeric_type, GeomEnums::Contents contents, int start = (-1), int column_alignment = (0));
int GeomVertexArrayFormat::add_column(GeomVertexColumn const &column);
1676 13 remove_column 0 4 2953 36 GeomVertexArrayFormat::remove_column 0 1 119 346
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::remove_column
// Access: Published
// Description: Removes the column with the indicated name, if
// any. This leaves a gap in the byte structure.
////////////////////////////////////////////////////////////////////
68
void GeomVertexArrayFormat::remove_column(InternalName const *name);
1677 13 clear_columns 0 4 2953 36 GeomVertexArrayFormat::clear_columns 0 1 120 343
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::clear_columns
// Access: Published
// Description: Removes all columns previously added, sets the
// stride to zero, and prepares to start over.
////////////////////////////////////////////////////////////////////
48
void GeomVertexArrayFormat::clear_columns(void);
1678 12 pack_columns 0 4 2953 35 GeomVertexArrayFormat::pack_columns 0 1 121 272
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::pack_columns
// Access: Published
// Description: Removes wasted space between columns.
////////////////////////////////////////////////////////////////////
47
void GeomVertexArrayFormat::pack_columns(void);
1679 27 align_columns_for_animation 0 4 2953 50 GeomVertexArrayFormat::align_columns_for_animation 0 1 122 648
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::align_columns_for_animation
// Access: Published
// Description: Reprocesses the columns in the format to align the
// C_point and C_vector columns to 16-byte boundaries to
// allow for the more efficient SSE2 operations
// (assuming SSE2 is enabled in the build).
//
// The caller is responsible for testing
// vertex_animation_align_16 to decide whether to call
// this method.
////////////////////////////////////////////////////////////////////
62
void GeomVertexArrayFormat::align_columns_for_animation(void);
1680 15 get_num_columns 0 4 2953 38 GeomVertexArrayFormat::get_num_columns 0 1 123 308
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_num_columns
// Access: Published
// Description: Returns the number of different columns in the
// array.
////////////////////////////////////////////////////////////////////
62
inline int GeomVertexArrayFormat::get_num_columns(void) const;
1681 10 get_column 0 4 2953 33 GeomVertexArrayFormat::get_column 0 3 124 125 126 984
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_column
// Access: Published
// Description: Returns the ith column of the array.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_column
// Access: Published
// Description: Returns the specification with the indicated name, or
// NULL if the name is not used.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_column
// Access: Published
// Description: Returns the first specification that overlaps with
// any of the indicated bytes in the range, or NULL if
// none do.
////////////////////////////////////////////////////////////////////
265
inline GeomVertexColumn const *GeomVertexArrayFormat::get_column(int i) const;
GeomVertexColumn const *GeomVertexArrayFormat::get_column(InternalName const *name) const;
GeomVertexColumn const *GeomVertexArrayFormat::get_column(int start_byte, int num_bytes) const;
1682 10 has_column 0 4 2953 33 GeomVertexArrayFormat::has_column 0 1 127 314
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::has_column
// Access: Published
// Description: Returns true if the array has the named column,
// false otherwise.
////////////////////////////////////////////////////////////////////
78
inline bool GeomVertexArrayFormat::has_column(InternalName const *name) const;
1683 17 is_data_subset_of 0 4 2953 40 GeomVertexArrayFormat::is_data_subset_of 0 1 128 614
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::is_data_subset_of
// Access: Published
// Description: Returns true if all of the fields in this array
// format are also present and equivalent in the other
// array format, and in the same byte positions, and the
// stride is the same. That is, true if this format can
// share the same data pointer as the other format (with
// possibly some unused gaps).
////////////////////////////////////////////////////////////////////
88
bool GeomVertexArrayFormat::is_data_subset_of(GeomVertexArrayFormat const &other) const;
1684 18 count_unused_space 0 4 2953 41 GeomVertexArrayFormat::count_unused_space 0 1 129 330
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::count_unused_space
// Access: Published
// Description: Returns the number of bytes per row that are not
// assigned to any column.
////////////////////////////////////////////////////////////////////
58
int GeomVertexArrayFormat::count_unused_space(void) const;
1685 6 output 0 4 2953 29 GeomVertexArrayFormat::output 0 1 130 229
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
55
void GeomVertexArrayFormat::output(ostream &out) const;
1686 5 write 0 4 2953 28 GeomVertexArrayFormat::write 0 2 131 132 228
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::write
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
78
void GeomVertexArrayFormat::write(ostream &out, int indent_level = (0)) const;
1687 15 write_with_data 0 4 2953 38 GeomVertexArrayFormat::write_with_data 0 1 133 238
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::write_with_data
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
121
void GeomVertexArrayFormat::write_with_data(ostream &out, int indent_level, GeomVertexArrayData const *array_data) const;
1688 17 get_format_string 0 4 2953 40 GeomVertexArrayFormat::get_format_string 0 2 134 135 532
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_format_string
// Access: Published
// Description: Returns a string with format codes representing the
// exact memory layout of the columns in memory, as
// understood by Python's struct module.
// If pad is true, extra padding bytes are added to
// the end as 'x' characters as needed.
////////////////////////////////////////////////////////////////////
84
basic_string< char > GeomVertexArrayFormat::get_format_string(bool pad = (1)) const;
1689 14 get_class_type 0 4 2953 37 GeomVertexArrayFormat::get_class_type 0 1 136 0
62
static TypeHandle GeomVertexArrayFormat::get_class_type(void);
1690 37 upcast_to_TypedWritableReferenceCount 0 12 2954 55 GeomVertexFormat::upcast_to_TypedWritableReferenceCount 0 1 200 59
upcast from GeomVertexFormat to TypedWritableReferenceCount
91
TypedWritableReferenceCount *GeomVertexFormat::upcast_to_TypedWritableReferenceCount(void);
1691 28 downcast_to_GeomVertexFormat 0 12 2951 57 TypedWritableReferenceCount::downcast_to_GeomVertexFormat 0 1 201 61
downcast from TypedWritableReferenceCount to GeomVertexFormat
82
GeomVertexFormat *TypedWritableReferenceCount::downcast_to_GeomVertexFormat(void);
1692 19 upcast_to_GeomEnums 0 12 2954 37 GeomVertexFormat::upcast_to_GeomEnums 0 1 202 41
upcast from GeomVertexFormat to GeomEnums
55
GeomEnums *GeomVertexFormat::upcast_to_GeomEnums(void);
1693 28 downcast_to_GeomVertexFormat 0 12 2941 39 GeomEnums::downcast_to_GeomVertexFormat 0 1 203 43
downcast from GeomEnums to GeomVertexFormat
64
GeomVertexFormat *GeomEnums::downcast_to_GeomVertexFormat(void);
1694 16 GeomVertexFormat 0 4 2954 34 GeomVertexFormat::GeomVertexFormat 0 3 141 142 143 696
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
186
GeomVertexFormat::GeomVertexFormat(void);
GeomVertexFormat::GeomVertexFormat(GeomVertexArrayFormat const *array_format);
GeomVertexFormat::GeomVertexFormat(GeomVertexFormat const &copy);
1695 10 operator = 0 4 2954 28 GeomVertexFormat::operator = 0 1 144 242
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
64
void GeomVertexFormat::operator =(GeomVertexFormat const &copy);
1696 17 ~GeomVertexFormat 0 6 2954 35 GeomVertexFormat::~GeomVertexFormat 0 0 237
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
50
virtual GeomVertexFormat::~GeomVertexFormat(void);
1697 5 unref 0 6 2954 23 GeomVertexFormat::unref 0 1 145 375
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::unref
// Access: Published, Virtual
// Description: This method overrides ReferenceCount::unref() to
// unregister the object when its reference count goes
// to zero.
////////////////////////////////////////////////////////////////////
49
virtual bool GeomVertexFormat::unref(void) const;
1698 13 is_registered 0 4 2954 31 GeomVertexFormat::is_registered 0 1 146 463
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::is_registered
// Access: Published
// Description: Returns true if this format has been registered,
// false if it has not. It may not be used for a Geom
// until it has been registered, but once registered, it
// may no longer be modified.
////////////////////////////////////////////////////////////////////
56
inline bool GeomVertexFormat::is_registered(void) const;
1699 15 register_format 0 4 2954 33 GeomVertexFormat::register_format 0 2 147 148 1213
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::register_format
// Access: Published, Static
// Description: Adds the indicated format to the registry, if there
// is not an equivalent format already there; in either
// case, returns the pointer to the equivalent format
// now in the registry.
//
// This must be called before a format may be used in a
// Geom. After this call, you should discard the
// original pointer you passed in (which may or may not
// now be invalid) and let its reference count decrement
// normally; you should use only the returned value from
// this point on.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::register_format
// Access: Published, Static
// Description: This flavor of register_format() implicitly creates a
// one-array vertex format from the array definition.
////////////////////////////////////////////////////////////////////
236
static inline ConstPointerTo< GeomVertexFormat > GeomVertexFormat::register_format(GeomVertexFormat const *format);
static inline ConstPointerTo< GeomVertexFormat > GeomVertexFormat::register_format(GeomVertexArrayFormat const *format);
1700 13 get_animation 0 4 2954 31 GeomVertexFormat::get_animation 0 1 149 351
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_animation
// Access: Published
// Description: Returns the GeomVertexAnimationSpec that indicates
// how this format's vertices are set up for animation.
////////////////////////////////////////////////////////////////////
82
inline GeomVertexAnimationSpec const &GeomVertexFormat::get_animation(void) const;
1701 13 set_animation 0 4 2954 31 GeomVertexFormat::set_animation 0 1 150 555
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::set_animation
// Access: Published
// Description: Resets the GeomVertexAnimationSpec that indicates
// how this format's vertices are set up for animation.
// You should also, of course, change the columns in the
// tables accordingly.
//
// This may not be called once the format has been
// registered.
////////////////////////////////////////////////////////////////////
86
inline void GeomVertexFormat::set_animation(GeomVertexAnimationSpec const &animation);
1702 24 get_post_animated_format 0 4 2954 42 GeomVertexFormat::get_post_animated_format 0 1 151 646
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_post_animated_format
// Access: Published
// Description: Returns a suitable vertex format for sending the
// animated vertices to the graphics backend. This is
// the same format as the source format, with the
// CPU-animation data elements removed.
//
// This may only be called after the format has been
// registered. The return value will have been already
// registered.
////////////////////////////////////////////////////////////////////
90
ConstPointerTo< GeomVertexFormat > GeomVertexFormat::get_post_animated_format(void) const;
1703 16 get_union_format 0 4 2954 34 GeomVertexFormat::get_union_format 0 1 152 791
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_union_format
// Access: Published
// Description: Returns a new GeomVertexFormat that includes all of
// the columns defined in either this GeomVertexFormat
// or the other one. If any column is defined in both
// formats with different sizes (for instance, texcoord2
// vs. texcoord3), the new format will include the
// larger of the two definitions.
//
// This may only be called after both source formats
// have been registered. The return value will also
// have been already registered.
////////////////////////////////////////////////////////////////////
107
ConstPointerTo< GeomVertexFormat > GeomVertexFormat::get_union_format(GeomVertexFormat const *other) const;
1704 14 get_num_arrays 0 4 2954 32 GeomVertexFormat::get_num_arrays 0 1 153 506
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_num_arrays
// Access: Published
// Description: Returns the number of individual arrays required by
// the format. If the array data is completely
// interleaved, this will be 1; if it is completely
// parallel, this will be the same as the number of data
// types.
////////////////////////////////////////////////////////////////////
56
inline int GeomVertexFormat::get_num_arrays(void) const;
1705 9 get_array 0 4 2954 27 GeomVertexFormat::get_array 0 1 154 304
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_array
// Access: Published
// Description: Returns the description of the nth array used by the
// format.
////////////////////////////////////////////////////////////////////
81
inline GeomVertexArrayFormat const *GeomVertexFormat::get_array(int array) const;
1706 12 modify_array 0 4 2954 30 GeomVertexFormat::modify_array 0 1 155 470
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::modify_array
// Access: Published
// Description: Returns a modifiable pointer to the indicated array.
// This means duplicating it if it is shared or
// registered.
//
// This may not be called once the format has been
// registered.
////////////////////////////////////////////////////////////////////
65
GeomVertexArrayFormat *GeomVertexFormat::modify_array(int array);
1707 9 set_array 0 4 2954 27 GeomVertexFormat::set_array 0 1 156 371
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::set_array
// Access: Published
// Description: Replaces the definition of the indicated array.
//
// This may not be called once the format has been
// registered.
////////////////////////////////////////////////////////////////////
81
void GeomVertexFormat::set_array(int array, GeomVertexArrayFormat const *format);
1708 12 remove_array 0 4 2954 30 GeomVertexFormat::remove_array 0 1 157 365
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::remove_array
// Access: Published
// Description: Removes the nth array from the format.
//
// This may not be called once the format has been
// registered.
////////////////////////////////////////////////////////////////////
47
void GeomVertexFormat::remove_array(int array);
1709 9 add_array 0 4 2954 27 GeomVertexFormat::add_array 0 1 158 534
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::add_array
// Access: Published
// Description: Adds the indicated array definition to the list of
// arrays included within this vertex format definition.
// The return value is the index number of the new
// array.
//
// This may not be called once the format has been
// registered.
////////////////////////////////////////////////////////////////////
75
int GeomVertexFormat::add_array(GeomVertexArrayFormat const *array_format);
1710 12 insert_array 0 4 2954 30 GeomVertexFormat::insert_array 0 1 159 570
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::insert_array
// Access: Published
// Description: Adds the indicated array definition to the list of
// arrays at the indicated position. This works just
// like add_array(), except that you can specify which
// array index the new array should have.
//
// This may not be called once the format has been
// registered.
////////////////////////////////////////////////////////////////////
90
void GeomVertexFormat::insert_array(int array, GeomVertexArrayFormat const *array_format);
1711 12 clear_arrays 0 4 2954 30 GeomVertexFormat::clear_arrays 0 1 160 413
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::clear_arrays
// Access: Published
// Description: Removes all of the array definitions from the format
// and starts over.
//
// This may not be called once the format has been
// registered.
////////////////////////////////////////////////////////////////////
42
void GeomVertexFormat::clear_arrays(void);
1712 19 remove_empty_arrays 0 4 2954 37 GeomVertexFormat::remove_empty_arrays 0 1 161 376
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::remove_empty_arrays
// Access: Published
// Description: Removes the arrays that define no columns.
//
// This may not be called once the format has been
// registered.
////////////////////////////////////////////////////////////////////
49
void GeomVertexFormat::remove_empty_arrays(void);
1713 15 get_num_columns 0 4 2954 33 GeomVertexFormat::get_num_columns 0 1 162 336
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_num_columns
// Access: Published
// Description: Returns the total number of different columns in
// the specification, across all arrays.
////////////////////////////////////////////////////////////////////
50
int GeomVertexFormat::get_num_columns(void) const;
1714 14 get_array_with 0 4 2954 32 GeomVertexFormat::get_array_with 0 2 163 164 1372
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_array_with
// Access: Published
// Description: Returns the index number of the array with the
// ith column.
//
// The return value can be passed to get_array_format()
// to get the format of the array. It may also be
// passed to GeomVertexData::get_array_data() or
// get_data() or set_data() to manipulate the actual
// array data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_array_with
// Access: Published
// Description: Returns the index number of the array with the
// indicated column, or -1 if no arrays contained
// that name.
//
// The return value can be passed to get_array_format()
// to get the format of the array. It may also be
// passed to GeomVertexData::get_array_data() or
// get_data() or set_data() to manipulate the actual
// array data.
//
// This may only be called after the format has been
// registered.
////////////////////////////////////////////////////////////////////
120
int GeomVertexFormat::get_array_with(int i) const;
int GeomVertexFormat::get_array_with(InternalName const *name) const;
1715 10 get_column 0 4 2954 28 GeomVertexFormat::get_column 0 2 165 166 751
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_column
// Access: Published
// Description: Returns the ith column of the specification,
// across all arrays.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_column
// Access: Published
// Description: Returns the specification with the indicated name, or
// NULL if the name is not used. Use get_array_with()
// to determine which array this column is associated
// with.
////////////////////////////////////////////////////////////////////
152
GeomVertexColumn const *GeomVertexFormat::get_column(int i) const;
GeomVertexColumn const *GeomVertexFormat::get_column(InternalName const *name) const;
1716 10 has_column 0 4 2954 28 GeomVertexFormat::has_column 0 1 167 310
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::has_column
// Access: Published
// Description: Returns true if the format has the named column,
// false otherwise.
////////////////////////////////////////////////////////////////////
73
inline bool GeomVertexFormat::has_column(InternalName const *name) const;
1717 13 remove_column 0 4 2954 31 GeomVertexFormat::remove_column 0 2 168 169 697
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::remove_column
// Access: Published
// Description: Removes the named column from the format, from
// whichever array it exists in. If there are other
// columns remaining in the array, the array is left
// with a gap where the column used to be; if this
// was the only column in the array, the array is
// removed (unless keep_empty_array is true).
//
// This may not be called once the format has been
// registered.
////////////////////////////////////////////////////////////////////
92
void GeomVertexFormat::remove_column(InternalName const *name, bool keep_empty_array = (0));
1718 12 pack_columns 0 4 2954 30 GeomVertexFormat::pack_columns 0 1 170 267
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::pack_columns
// Access: Published
// Description: Removes wasted space between columns.
////////////////////////////////////////////////////////////////////
42
void GeomVertexFormat::pack_columns(void);
1719 27 align_columns_for_animation 0 4 2954 45 GeomVertexFormat::align_columns_for_animation 0 1 171 552
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::align_columns_for_animation
// Access: Published
// Description: Reprocesses the columns in the format to align the
// C_point and C_vector columns to 16-byte boundaries to
// allow for the more efficient SSE2 operations
// (assuming SSE2 is enabled in the build).
//
// Also see maybe_align_columns_for_animation().
////////////////////////////////////////////////////////////////////
57
void GeomVertexFormat::align_columns_for_animation(void);
1720 33 maybe_align_columns_for_animation 0 4 2954 51 GeomVertexFormat::maybe_align_columns_for_animation 0 1 172 439
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::maybe_align_columns_for_animation
// Access: Published
// Description: Calls align_columns_for_animation() if this format's
// AnimationSpec indicates that it contains animated
// vertices, and if vertex-animation-align-16 is true.
////////////////////////////////////////////////////////////////////
63
void GeomVertexFormat::maybe_align_columns_for_animation(void);
1721 14 get_num_points 0 4 2954 32 GeomVertexFormat::get_num_points 0 1 173 427
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_num_points
// Access: Published
// Description: Returns the number of columns within the format
// that represent points in space.
//
// This may only be called after the format has been
// registered.
////////////////////////////////////////////////////////////////////
56
inline int GeomVertexFormat::get_num_points(void) const;
1722 9 get_point 0 4 2954 27 GeomVertexFormat::get_point 0 1 174 497
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_point
// Access: Published
// Description: Returns the name of the nth point column. This
// represents a point in space, which should be
// transformed by any spatial transform matrix.
//
// This may only be called after the format has been
// registered.
////////////////////////////////////////////////////////////////////
68
inline InternalName const *GeomVertexFormat::get_point(int n) const;
1723 15 get_num_vectors 0 4 2954 33 GeomVertexFormat::get_num_vectors 0 1 175 432
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_num_vectors
// Access: Published
// Description: Returns the number of columns within the format
// that represent directional vectors.
//
// This may only be called after the format has been
// registered.
////////////////////////////////////////////////////////////////////
57
inline int GeomVertexFormat::get_num_vectors(void) const;
1724 10 get_vector 0 4 2954 28 GeomVertexFormat::get_vector 0 1 176 532
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_vector
// Access: Published
// Description: Returns the name of the nth vector column. This
// represents a directional vector, which should be
// transformed by any spatial transform matrix as a
// vector.
//
// This may only be called after the format has been
// registered.
////////////////////////////////////////////////////////////////////
69
inline InternalName const *GeomVertexFormat::get_vector(int n) const;
1725 17 get_num_texcoords 0 4 2954 35 GeomVertexFormat::get_num_texcoords 0 1 177 434
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_num_texcoords
// Access: Published
// Description: Returns the number of columns within the format
// that represent texture coordinates.
//
// This may only be called after the format has been
// registered.
////////////////////////////////////////////////////////////////////
59
inline int GeomVertexFormat::get_num_texcoords(void) const;
1726 12 get_texcoord 0 4 2954 30 GeomVertexFormat::get_texcoord 0 1 178 429
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_texcoord
// Access: Published
// Description: Returns the name of the nth texcoord column. This
// represents a texture coordinate.
//
// This may only be called after the format has been
// registered.
////////////////////////////////////////////////////////////////////
71
inline InternalName const *GeomVertexFormat::get_texcoord(int n) const;
1727 14 get_num_morphs 0 4 2954 32 GeomVertexFormat::get_num_morphs 0 1 179 424
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_num_morphs
// Access: Published
// Description: Returns the number of columns within the format
// that represent morph deltas.
//
// This may only be called after the format has been
// registered.
////////////////////////////////////////////////////////////////////
56
inline int GeomVertexFormat::get_num_morphs(void) const;
1728 16 get_morph_slider 0 4 2954 34 GeomVertexFormat::get_morph_slider 0 1 180 587
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_morph_slider
// Access: Published
// Description: Returns the slider name associated with the nth morph
// column. This is the name of the slider that will
// control the morph, and should be defined within the
// SliderTable associated with the GeomVertexData.
//
// This may only be called after the format has been
// registered.
////////////////////////////////////////////////////////////////////
75
inline InternalName const *GeomVertexFormat::get_morph_slider(int n) const;
1729 14 get_morph_base 0 4 2954 32 GeomVertexFormat::get_morph_base 0 1 181 562
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_morph_base
// Access: Published
// Description: Returns the name of the base column that the nth
// morph modifies. This column will also be defined
// within the format, and can be retrieved via
// get_array_with() and/or get_column().
//
// This may only be called after the format has been
// registered.
////////////////////////////////////////////////////////////////////
73
inline InternalName const *GeomVertexFormat::get_morph_base(int n) const;
1730 15 get_morph_delta 0 4 2954 33 GeomVertexFormat::get_morph_delta 0 1 182 685
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_morph_delta
// Access: Published
// Description: Returns the name of the column that defines the
// nth morph. This contains the delta offsets that are
// to be applied to the column defined by
// get_morph_base(). This column will be defined
// within the format, and can be retrieved via
// get_array_with() and/or get_column().
//
// This may only be called after the format has been
// registered.
////////////////////////////////////////////////////////////////////
74
inline InternalName const *GeomVertexFormat::get_morph_delta(int n) const;
1731 6 output 0 4 2954 24 GeomVertexFormat::output 0 1 183 224
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
50
void GeomVertexFormat::output(ostream &out) const;
1732 5 write 0 4 2954 23 GeomVertexFormat::write 0 2 184 185 223
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::write
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
73
void GeomVertexFormat::write(ostream &out, int indent_level = (0)) const;
1733 15 write_with_data 0 4 2954 33 GeomVertexFormat::write_with_data 0 1 186 233
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::write_with_data
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
105
void GeomVertexFormat::write_with_data(ostream &out, int indent_level, GeomVertexData const *data) const;
1734 6 get_v3 0 4 2954 24 GeomVertexFormat::get_v3 0 1 187 529
// Some standard vertex formats. No particular requirement to use
// one of these, but the DirectX renderers can use these formats
// directly, whereas any other format will have to be converted
// first.
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3
// Access: Published, Static
// Description: Returns a standard vertex format with just a
// 3-component vertex position.
////////////////////////////////////////////////////////////////////
69
static inline GeomVertexFormat const *GeomVertexFormat::get_v3(void);
1735 8 get_v3n3 0 4 2954 26 GeomVertexFormat::get_v3n3 0 1 188 551
// Some standard vertex formats. No particular requirement to use
// one of these, but the DirectX renderers can use these formats
// directly, whereas any other format will have to be converted
// first.
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3n3
// Access: Published, Static
// Description: Returns a standard vertex format with a 3-component
// normal and a 3-component vertex position.
////////////////////////////////////////////////////////////////////
71
static inline GeomVertexFormat const *GeomVertexFormat::get_v3n3(void);
1736 8 get_v3t2 0 4 2954 26 GeomVertexFormat::get_v3t2 0 1 189 378
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3t2
// Access: Published, Static
// Description: Returns a standard vertex format with a 2-component
// texture coordinate pair and a 3-component vertex
// position.
////////////////////////////////////////////////////////////////////
71
static inline GeomVertexFormat const *GeomVertexFormat::get_v3t2(void);
1737 10 get_v3n3t2 0 4 2954 28 GeomVertexFormat::get_v3n3t2 0 1 190 403
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3n3t2
// Access: Published, Static
// Description: Returns a standard vertex format with a 2-component
// texture coordinate pair, a 3-component normal, and a
// 3-component vertex position.
////////////////////////////////////////////////////////////////////
73
static inline GeomVertexFormat const *GeomVertexFormat::get_v3n3t2(void);
1738 8 get_v3cp 0 4 2954 26 GeomVertexFormat::get_v3cp 0 1 191 562
// These formats, with the DirectX-style packed color, are not
// supported directly by OpenGL. If you use them, the
// GLGraphicsStateGuardian will automatically convert to OpenGL
// form (with a small runtime overhead).
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3cp
// Access: Published, Static
// Description: Returns a standard vertex format with a packed
// color and a 3-component vertex position.
////////////////////////////////////////////////////////////////////
71
static inline GeomVertexFormat const *GeomVertexFormat::get_v3cp(void);
1739 10 get_v3cpt2 0 4 2954 28 GeomVertexFormat::get_v3cpt2 0 1 192 621
// These formats, with the DirectX-style packed color, are not
// supported directly by OpenGL. If you use them, the
// GLGraphicsStateGuardian will automatically convert to OpenGL
// form (with a small runtime overhead).
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3cpt2
// Access: Published, Static
// Description: Returns a standard vertex format with a 2-component
// texture coordinate pair, a packed color, and a
// 3-component vertex position.
////////////////////////////////////////////////////////////////////
73
static inline GeomVertexFormat const *GeomVertexFormat::get_v3cpt2(void);
1740 10 get_v3n3cp 0 4 2954 28 GeomVertexFormat::get_v3n3cp 0 1 193 380
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3n3cp
// Access: Published, Static
// Description: Returns a standard vertex format with a packed
// color, a 3-component normal, and a 3-component vertex
// position.
////////////////////////////////////////////////////////////////////
73
static inline GeomVertexFormat const *GeomVertexFormat::get_v3n3cp(void);
1741 12 get_v3n3cpt2 0 4 2954 30 GeomVertexFormat::get_v3n3cpt2 0 1 194 438
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3n3cpt2
// Access: Published, Static
// Description: Returns a standard vertex format with a 2-component
// texture coordinate pair, a packed color, a
// 3-component normal, and a 3-component vertex
// position.
////////////////////////////////////////////////////////////////////
75
static inline GeomVertexFormat const *GeomVertexFormat::get_v3n3cpt2(void);
1742 8 get_v3c4 0 4 2954 26 GeomVertexFormat::get_v3c4 0 1 195 663
// These formats, with an OpenGL-style four-byte color, are not
// supported directly by DirectX. If you use them, the
// DXGraphicsStateGuardian will automatically convert to DirectX
// form (with a larger runtime overhead, since DirectX8, and old
// DirectX9 drivers, require everything to be interleaved together).
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3c4
// Access: Published, Static
// Description: Returns a standard vertex format with a 4-component
// color and a 3-component vertex position.
////////////////////////////////////////////////////////////////////
71
static inline GeomVertexFormat const *GeomVertexFormat::get_v3c4(void);
1743 10 get_v3c4t2 0 4 2954 28 GeomVertexFormat::get_v3c4t2 0 1 196 722
// These formats, with an OpenGL-style four-byte color, are not
// supported directly by DirectX. If you use them, the
// DXGraphicsStateGuardian will automatically convert to DirectX
// form (with a larger runtime overhead, since DirectX8, and old
// DirectX9 drivers, require everything to be interleaved together).
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3c4t2
// Access: Published, Static
// Description: Returns a standard vertex format with a 2-component
// texture coordinate pair, a 4-component color, and a
// 3-component vertex position.
////////////////////////////////////////////////////////////////////
73
static inline GeomVertexFormat const *GeomVertexFormat::get_v3c4t2(void);
1744 10 get_v3n3c4 0 4 2954 28 GeomVertexFormat::get_v3n3c4 0 1 197 385
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3n3c4
// Access: Published, Static
// Description: Returns a standard vertex format with a 4-component
// color, a 3-component normal, and a 3-component vertex
// position.
////////////////////////////////////////////////////////////////////
73
static inline GeomVertexFormat const *GeomVertexFormat::get_v3n3c4(void);
1745 12 get_v3n3c4t2 0 4 2954 30 GeomVertexFormat::get_v3n3c4t2 0 1 198 443
////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3n3c4t2
// Access: Published, Static
// Description: Returns a standard vertex format with a 2-component
// texture coordinate pair, a 4-component color, a
// 3-component normal, and a 3-component vertex
// position.
////////////////////////////////////////////////////////////////////
75
static inline GeomVertexFormat const *GeomVertexFormat::get_v3n3c4t2(void);
1746 14 get_class_type 0 4 2954 32 GeomVertexFormat::get_class_type 0 1 199 0
57
static TypeHandle GeomVertexFormat::get_class_type(void);
1747 24 upcast_to_LinkedListNode 0 12 2955 35 SimpleLru::upcast_to_LinkedListNode 0 1 215 39
upcast from SimpleLru to LinkedListNode
58
LinkedListNode *SimpleLru::upcast_to_LinkedListNode(void);
1748 21 downcast_to_SimpleLru 0 12 2956 37 LinkedListNode::downcast_to_SimpleLru 0 1 216 41
downcast from LinkedListNode to SimpleLru
55
SimpleLru *LinkedListNode::downcast_to_SimpleLru(void);
1749 17 upcast_to_Namable 0 12 2955 28 SimpleLru::upcast_to_Namable 0 1 217 32
upcast from SimpleLru to Namable
44
Namable *SimpleLru::upcast_to_Namable(void);
1750 21 downcast_to_SimpleLru 0 12 2937 30 Namable::downcast_to_SimpleLru 0 1 218 34
downcast from Namable to SimpleLru
48
SimpleLru *Namable::downcast_to_SimpleLru(void);
1751 9 SimpleLru 0 4 2955 20 SimpleLru::SimpleLru 0 1 204 222
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
78
SimpleLru::SimpleLru(basic_string< char > const &name, unsigned int max_size);
1752 10 ~SimpleLru 0 4 2955 21 SimpleLru::~SimpleLru 0 0 230
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
28
SimpleLru::~SimpleLru(void);
1753 14 get_total_size 0 4 2955 25 SimpleLru::get_total_size 0 1 205 793
// Filename: simpleLru.I
// Created by: drose (11May07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::get_total_size
// Access: Published
// Description: Returns the total size of all objects currently
// active on the LRU.
////////////////////////////////////////////////////////////////////
58
inline unsigned int SimpleLru::get_total_size(void) const;
1754 12 get_max_size 0 4 2955 23 SimpleLru::get_max_size 0 1 206 317
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::get_max_size
// Access: Published
// Description: Returns the max size of all objects that are allowed
// to be active on the LRU.
////////////////////////////////////////////////////////////////////
56
inline unsigned int SimpleLru::get_max_size(void) const;
1755 12 set_max_size 0 4 2955 23 SimpleLru::set_max_size 0 1 207 383
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::set_max_size
// Access: Published
// Description: Changes the max size of all objects that are allowed
// to be active on the LRU.
//
// If the size is (size_t)-1, there is no limit.
////////////////////////////////////////////////////////////////////
59
inline void SimpleLru::set_max_size(unsigned int max_size);
1756 17 count_active_size 0 4 2955 28 SimpleLru::count_active_size 0 1 208 337
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::count_active_size
// Access: Published
// Description: Returns the total size of the pages that were
// enqueued since the last call to begin_epoch().
////////////////////////////////////////////////////////////////////
54
unsigned int SimpleLru::count_active_size(void) const;
1757 14 consider_evict 0 4 2955 25 SimpleLru::consider_evict 0 1 209 275
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::consider_evict
// Access: Published
// Description: Evicts a sequence of objects if the queue is full.
////////////////////////////////////////////////////////////////////
44
inline void SimpleLru::consider_evict(void);
1758 8 evict_to 0 4 2955 19 SimpleLru::evict_to 0 1 210 371
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::evict_to
// Access: Published
// Description: Evicts a sequence of objects until the queue fits
// within the indicated target size, regardless of its
// normal max size.
////////////////////////////////////////////////////////////////////
58
inline void SimpleLru::evict_to(unsigned int target_size);
1759 11 begin_epoch 0 4 2955 22 SimpleLru::begin_epoch 0 1 211 441
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::begin_epoch
// Access: Published
// Description: Marks the end of the previous epoch and the beginning
// of the next one. This will evict any objects that
// are pending eviction, and also update any internal
// bookkeeping.
////////////////////////////////////////////////////////////////////
41
inline void SimpleLru::begin_epoch(void);
1760 8 validate 0 4 2955 19 SimpleLru::validate 0 1 212 363
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::validate
// Access: Published
// Description: Checks that the LRU is internally self-consistent.
// Returns true if successful, false if there is some
// problem.
////////////////////////////////////////////////////////////////////
38
inline bool SimpleLru::validate(void);
1761 6 output 0 4 2955 17 SimpleLru::output 0 1 213 217
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
43
void SimpleLru::output(ostream &out) const;
1762 5 write 0 4 2955 16 SimpleLru::write 0 1 214 225
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::write
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
60
void SimpleLru::write(ostream &out, int indent_level) const;
1763 24 upcast_to_LinkedListNode 0 12 2957 39 SimpleLruPage::upcast_to_LinkedListNode 0 1 232 43
upcast from SimpleLruPage to LinkedListNode
62
LinkedListNode *SimpleLruPage::upcast_to_LinkedListNode(void);
1764 25 downcast_to_SimpleLruPage 0 12 2956 41 LinkedListNode::downcast_to_SimpleLruPage 0 1 233 45
downcast from LinkedListNode to SimpleLruPage
63
SimpleLruPage *LinkedListNode::downcast_to_SimpleLruPage(void);
1765 13 SimpleLruPage 0 4 2957 28 SimpleLruPage::SimpleLruPage 0 2 219 220 459
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::Constructor
// Access: Protected
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::Copy Constructor
// Access: Protected
// Description:
////////////////////////////////////////////////////////////////////
123
inline SimpleLruPage::SimpleLruPage(unsigned int lru_size);
inline SimpleLruPage::SimpleLruPage(SimpleLruPage const &copy);
1766 10 operator = 0 4 2957 25 SimpleLruPage::operator = 0 1 221 239
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::Copy Assignment Operator
// Access: Protected
// Description:
////////////////////////////////////////////////////////////////////
65
inline void SimpleLruPage::operator =(SimpleLruPage const &copy);
1767 14 ~SimpleLruPage 0 6 2957 29 SimpleLruPage::~SimpleLruPage 0 0 234
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
44
virtual SimpleLruPage::~SimpleLruPage(void);
1768 7 get_lru 0 4 2957 22 SimpleLruPage::get_lru 0 1 222 329
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::get_lru
// Access: Published
// Description: Returns the LRU that manages this page, or NULL if it
// is not currently managed by any LRU.
////////////////////////////////////////////////////////////////////
53
inline SimpleLru *SimpleLruPage::get_lru(void) const;
1769 11 enqueue_lru 0 4 2957 26 SimpleLruPage::enqueue_lru 0 1 223 443
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::enqueue_lru
// Access: Published
// Description: Adds the page to the LRU for the first time, or marks
// it recently-accessed if it has already been added.
//
// If lru is NULL, it means to remove this page from its
// LRU.
////////////////////////////////////////////////////////////////////
48
void SimpleLruPage::enqueue_lru(SimpleLru *lru);
1770 11 dequeue_lru 0 4 2957 26 SimpleLruPage::dequeue_lru 0 1 224 262
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::dequeue_lru
// Access: Published
// Description: Removes the page from its SimpleLru.
////////////////////////////////////////////////////////////////////
45
inline void SimpleLruPage::dequeue_lru(void);
1771 13 mark_used_lru 0 4 2957 28 SimpleLruPage::mark_used_lru 0 2 225 226 827
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::mark_used_lru
// Access: Published
// Description: To be called when the page is used; this will move it
// to the tail of the SimpleLru queue it is already on.
//
// This method is const because it's not technically
// modifying the contents of the page itself.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::mark_used_lru
// Access: Published
// Description: To be called when the page is used; this will move it
// to the tail of the specified SimpleLru queue.
////////////////////////////////////////////////////////////////////
111
inline void SimpleLruPage::mark_used_lru(void) const;
inline void SimpleLruPage::mark_used_lru(SimpleLru *lru);
1772 12 get_lru_size 0 4 2957 27 SimpleLruPage::get_lru_size 0 1 227 318
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::get_lru_size
// Access: Published
// Description: Returns the size of this page as reported to the LRU,
// presumably in bytes.
////////////////////////////////////////////////////////////////////
60
inline unsigned int SimpleLruPage::get_lru_size(void) const;
1773 12 set_lru_size 0 4 2957 27 SimpleLruPage::set_lru_size 0 1 228 328
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::set_lru_size
// Access: Published
// Description: Specifies the size of this page, presumably in bytes,
// although any unit is possible.
////////////////////////////////////////////////////////////////////
63
inline void SimpleLruPage::set_lru_size(unsigned int lru_size);
1774 9 evict_lru 0 6 2957 24 SimpleLruPage::evict_lru 0 1 229 812
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::evict_lru
// Access: Published, Virtual
// Description: Evicts the page from the LRU. Called internally when
// the LRU determines that it is full. May also be
// called externally when necessary to explicitly evict
// the page.
//
// It is legal for this method to either evict the page
// as requested, do nothing (in which case the eviction
// will be requested again at the next epoch), or
// requeue itself on the tail of the queue (in which
// case the eviction will be requested again much
// later).
////////////////////////////////////////////////////////////////////
44
virtual void SimpleLruPage::evict_lru(void);
1775 6 output 0 6 2957 21 SimpleLruPage::output 0 1 230 230
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::output
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
55
virtual void SimpleLruPage::output(ostream &out) const;
1776 5 write 0 6 2957 20 SimpleLruPage::write 0 1 231 229
////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::write
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
72
virtual void SimpleLruPage::write(ostream &out, int indent_level) const;
1777 24 upcast_to_LinkedListNode 0 12 2958 41 SimpleAllocator::upcast_to_LinkedListNode 0 1 244 45
upcast from SimpleAllocator to LinkedListNode
64
LinkedListNode *SimpleAllocator::upcast_to_LinkedListNode(void);
1778 27 downcast_to_SimpleAllocator 0 12 2956 43 LinkedListNode::downcast_to_SimpleAllocator 0 1 245 47
downcast from LinkedListNode to SimpleAllocator
67
SimpleAllocator *LinkedListNode::downcast_to_SimpleAllocator(void);
1779 15 SimpleAllocator 0 4 2958 32 SimpleAllocator::SimpleAllocator 0 1 234 719
// Filename: simpleAllocator.I
// Created by: drose (12May07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
76
inline SimpleAllocator::SimpleAllocator(unsigned int max_size, Mutex &lock);
1780 16 ~SimpleAllocator 0 6 2958 33 SimpleAllocator::~SimpleAllocator 0 0 236
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
48
virtual SimpleAllocator::~SimpleAllocator(void);
1781 5 alloc 0 4 2958 22 SimpleAllocator::alloc 0 1 235 451
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::alloc
// Access: Published
// Description: Allocates a new block. Returns NULL if a block of the
// requested size cannot be allocated.
//
// To free the allocated block, call block->free(), or
// simply delete the block pointer.
////////////////////////////////////////////////////////////////////
71
inline SimpleAllocatorBlock *SimpleAllocator::alloc(unsigned int size);
1782 8 is_empty 0 4 2958 25 SimpleAllocator::is_empty 0 1 236 336
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::is_empty
// Access: Published
// Description: Returns true if there are no blocks allocated on this
// page, or false if there is at least one.
////////////////////////////////////////////////////////////////////
50
inline bool SimpleAllocator::is_empty(void) const;
1783 14 get_total_size 0 4 2958 31 SimpleAllocator::get_total_size 0 1 237 275
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::get_total_size
// Access: Published
// Description: Returns the total size of allocated objects.
////////////////////////////////////////////////////////////////////
64
inline unsigned int SimpleAllocator::get_total_size(void) const;
1784 12 get_max_size 0 4 2958 29 SimpleAllocator::get_max_size 0 1 238 279
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::get_max_size
// Access: Published
// Description: Returns the available space for allocated objects.
////////////////////////////////////////////////////////////////////
62
inline unsigned int SimpleAllocator::get_max_size(void) const;
1785 12 set_max_size 0 4 2958 29 SimpleAllocator::set_max_size 0 1 239 417
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::set_max_size
// Access: Published
// Description: Changes the available space for allocated objects.
// This will not affect any already-allocated objects,
// but will have an effect on future calls to alloc().
////////////////////////////////////////////////////////////////////
65
inline void SimpleAllocator::set_max_size(unsigned int max_size);
1786 14 get_contiguous 0 4 2958 31 SimpleAllocator::get_contiguous 0 1 240 595
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::get_contiguous
// Access: Published
// Description: Returns an upper-bound estimate of the size of the
// largest contiguous block that may be allocated. It
// is guaranteed that an attempt to allocate a block
// larger than this will fail, though it is not
// guaranteed that an attempt to allocate a block this
// size or smaller will succeed.
////////////////////////////////////////////////////////////////////
64
inline unsigned int SimpleAllocator::get_contiguous(void) const;
1787 15 get_first_block 0 4 2958 32 SimpleAllocator::get_first_block 0 1 241 338
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::get_first_block
// Access: Published
// Description: Returns a pointer to the first allocated block, or
// NULL if there are no allocated blocks.
////////////////////////////////////////////////////////////////////
74
inline SimpleAllocatorBlock *SimpleAllocator::get_first_block(void) const;
1788 6 output 0 4 2958 23 SimpleAllocator::output 0 1 242 223
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
49
void SimpleAllocator::output(ostream &out) const;
1789 5 write 0 4 2958 22 SimpleAllocator::write 0 1 243 222
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::write
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
48
void SimpleAllocator::write(ostream &out) const;
1790 21 ~SimpleAllocatorBlock 0 4 2959 43 SimpleAllocatorBlock::~SimpleAllocatorBlock 0 0 304
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::Destructor
// Access: Published
// Description: The block automatically frees itself when it
// destructs.
////////////////////////////////////////////////////////////////////
57
inline SimpleAllocatorBlock::~SimpleAllocatorBlock(void);
1791 4 free 0 4 2959 26 SimpleAllocatorBlock::free 0 1 246 255
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::free
// Access: Published
// Description: Releases the allocated space.
////////////////////////////////////////////////////////////////////
45
inline void SimpleAllocatorBlock::free(void);
1792 13 get_allocator 0 4 2959 35 SimpleAllocatorBlock::get_allocator 0 1 247 351
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::get_allocator
// Access: Published
// Description: Returns the SimpleAllocator object that owns this
// block. Returns NULL if the block has been freed.
////////////////////////////////////////////////////////////////////
72
inline SimpleAllocator *SimpleAllocatorBlock::get_allocator(void) const;
1793 9 get_start 0 4 2959 31 SimpleAllocatorBlock::get_start 0 1 248 347
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::get_start
// Access: Published
// Description: Returns the starting point of this block. It is an
// error to call this if the block has been freed.
////////////////////////////////////////////////////////////////////
64
inline unsigned int SimpleAllocatorBlock::get_start(void) const;
1794 8 get_size 0 4 2959 30 SimpleAllocatorBlock::get_size 0 1 249 336
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::get_size
// Access: Published
// Description: Returns the size of this block. It is an
// error to call this if the block has been freed.
////////////////////////////////////////////////////////////////////
63
inline unsigned int SimpleAllocatorBlock::get_size(void) const;
1795 7 is_free 0 4 2959 29 SimpleAllocatorBlock::is_free 0 1 250 315
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::is_free
// Access: Published
// Description: Returns true if the block has been freed, false if it
// is still valid.
////////////////////////////////////////////////////////////////////
54
inline bool SimpleAllocatorBlock::is_free(void) const;
1796 12 get_max_size 0 4 2959 34 SimpleAllocatorBlock::get_max_size 0 1 251 344
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::get_max_size
// Access: Published
// Description: Returns the maximum size this block can be
// reallocated to, as limited by the following block.
////////////////////////////////////////////////////////////////////
67
inline unsigned int SimpleAllocatorBlock::get_max_size(void) const;
1797 7 realloc 0 4 2959 29 SimpleAllocatorBlock::realloc 0 1 252 392
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::realloc
// Access: Published
// Description: Changes the size of this block to the specified size.
// Returns true if the change is accepted, false if
// there was not enough room.
////////////////////////////////////////////////////////////////////
61
inline bool SimpleAllocatorBlock::realloc(unsigned int size);
1798 14 get_next_block 0 4 2959 36 SimpleAllocatorBlock::get_next_block 0 1 253 359
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::get_next_block
// Access: Published
// Description: Returns a pointer to the next allocated block in the
// chain, or NULL if there are no more allocated blocks.
////////////////////////////////////////////////////////////////////
78
inline SimpleAllocatorBlock *SimpleAllocatorBlock::get_next_block(void) const;
1799 6 output 0 4 2959 28 SimpleAllocatorBlock::output 0 1 254 228
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
54
void SimpleAllocatorBlock::output(ostream &out) const;
1800 8 is_valid 0 4 2960 28 VertexDataSaveFile::is_valid 0 1 255 858
// Filename: vertexDataSaveFile.I
// Created by: drose (12May07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VertexDataSaveFile::is_valid
// Access: Public
// Description: Returns true if the save file was successfully
// created and is ready for use, false if there was an
// error.
////////////////////////////////////////////////////////////////////
53
inline bool VertexDataSaveFile::is_valid(void) const;
1801 19 get_total_file_size 0 4 2960 39 VertexDataSaveFile::get_total_file_size 0 1 256 334
////////////////////////////////////////////////////////////////////
// Function: VertexDataSaveFile::get_total_file_size
// Access: Public
// Description: Returns the amount of space consumed by the save
// file, including unused portions.
////////////////////////////////////////////////////////////////////
72
inline unsigned int VertexDataSaveFile::get_total_file_size(void) const;
1802 18 get_used_file_size 0 4 2960 38 VertexDataSaveFile::get_used_file_size 0 1 257 326
////////////////////////////////////////////////////////////////////
// Function: VertexDataSaveFile::get_used_file_size
// Access: Public
// Description: Returns the amount of space within the save file that
// is currently in use.
////////////////////////////////////////////////////////////////////
71
inline unsigned int VertexDataSaveFile::get_used_file_size(void) const;
1803 25 upcast_to_SimpleAllocator 0 12 2961 41 VertexDataPage::upcast_to_SimpleAllocator 0 1 276 45
upcast from VertexDataPage to SimpleAllocator
65
SimpleAllocator *VertexDataPage::upcast_to_SimpleAllocator(void);
1804 26 downcast_to_VertexDataPage 0 12 2958 43 SimpleAllocator::downcast_to_VertexDataPage 0 1 277 47
downcast from SimpleAllocator to VertexDataPage
66
VertexDataPage *SimpleAllocator::downcast_to_VertexDataPage(void);
1805 23 upcast_to_SimpleLruPage 0 12 2961 39 VertexDataPage::upcast_to_SimpleLruPage 0 1 278 43
upcast from VertexDataPage to SimpleLruPage
61
SimpleLruPage *VertexDataPage::upcast_to_SimpleLruPage(void);
1806 26 downcast_to_VertexDataPage 0 12 2957 41 SimpleLruPage::downcast_to_VertexDataPage 0 1 279 45
downcast from SimpleLruPage to VertexDataPage
64
VertexDataPage *SimpleLruPage::downcast_to_VertexDataPage(void);
1807 13 get_ram_class 0 4 2961 29 VertexDataPage::get_ram_class 0 1 258 874
// Filename: vertexDataPage.I
// Created by: drose (04Jun07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_ram_class
// Access: Published
// Description: Returns the current ram class of the array. If this
// is other than RC_resident, the array data is not
// resident in memory.
////////////////////////////////////////////////////////////////////
74
inline VertexDataPage::RamClass VertexDataPage::get_ram_class(void) const;
1808 21 get_pending_ram_class 0 4 2961 37 VertexDataPage::get_pending_ram_class 0 1 259 484
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_pending_ram_class
// Access: Published
// Description: Returns the pending ram class of the array. If this
// is different from get_ram_class(), this page has been
// queued to be processed by the thread. Eventually the
// page will be set to this ram class.
////////////////////////////////////////////////////////////////////
82
inline VertexDataPage::RamClass VertexDataPage::get_pending_ram_class(void) const;
1809 16 request_resident 0 4 2961 32 VertexDataPage::request_resident 0 1 260 379
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::request_resident
// Access: Published
// Description: Ensures that the page will become resident soon.
// Future calls to get_page_data() will eventually
// return non-NULL.
////////////////////////////////////////////////////////////////////
51
inline void VertexDataPage::request_resident(void);
1810 5 alloc 0 4 2961 21 VertexDataPage::alloc 0 1 261 450
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::alloc
// Access: Published
// Description: Allocates a new block. Returns NULL if a block of the
// requested size cannot be allocated.
//
// To free the allocated block, call block->free(), or
// simply delete the block pointer.
////////////////////////////////////////////////////////////////////
65
inline VertexDataBlock *VertexDataPage::alloc(unsigned int size);
1811 15 get_first_block 0 4 2961 31 VertexDataPage::get_first_block 0 1 262 337
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_first_block
// Access: Published
// Description: Returns a pointer to the first allocated block, or
// NULL if there are no allocated blocks.
////////////////////////////////////////////////////////////////////
68
inline VertexDataBlock *VertexDataPage::get_first_block(void) const;
1812 8 get_book 0 4 2961 24 VertexDataPage::get_book 0 1 263 274
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_book
// Access: Published
// Description: Returns a pointer to the book that owns this page.
////////////////////////////////////////////////////////////////////
60
inline VertexDataBook *VertexDataPage::get_book(void) const;
1813 14 get_global_lru 0 4 2961 30 VertexDataPage::get_global_lru 0 1 264 377
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_global_lru
// Access: Published, Static
// Description: Returns a pointer to the global LRU object that
// manages the VertexDataPage's with the indicated
// RamClass.
////////////////////////////////////////////////////////////////////
89
static inline SimpleLru *VertexDataPage::get_global_lru(VertexDataPage::RamClass rclass);
1814 15 get_pending_lru 0 4 2961 31 VertexDataPage::get_pending_lru 0 1 265 392
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_pending_lru
// Access: Published, Static
// Description: Returns a pointer to the global LRU object that
// manages the VertexDataPage's that are pending
// processing by the thread.
////////////////////////////////////////////////////////////////////
63
static inline SimpleLru *VertexDataPage::get_pending_lru(void);
1815 13 get_save_file 0 4 2961 29 VertexDataPage::get_save_file 0 1 266 378
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_save_file
// Access: Published, Static
// Description: Returns the global VertexDataSaveFile that will be
// used to save vertex data buffers to disk when
// necessary.
////////////////////////////////////////////////////////////////////
70
static inline VertexDataSaveFile *VertexDataPage::get_save_file(void);
1816 12 save_to_disk 0 4 2961 28 VertexDataPage::save_to_disk 0 1 267 467
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::save_to_disk
// Access: Published
// Description: Writes the page to disk, but does not evict it from
// memory or affect its LRU status. If it gets evicted
// later without having been modified, it will not need
// to write itself to disk again.
////////////////////////////////////////////////////////////////////
47
inline bool VertexDataPage::save_to_disk(void);
1817 15 get_num_threads 0 4 2961 31 VertexDataPage::get_num_threads 0 1 268 589
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_num_threads
// Access: Published, Static
// Description: Returns the number of threads that have been spawned
// to service vertex paging requests, or 0 if no threads
// have been spawned (which may mean either that all
// paging requests will be handled by the main thread,
// or simply that no paging requests have yet been
// issued).
////////////////////////////////////////////////////////////////////
56
static inline int VertexDataPage::get_num_threads(void);
1818 21 get_num_pending_reads 0 4 2961 37 VertexDataPage::get_num_pending_reads 0 1 269 342
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_num_pending_reads
// Access: Published, Static
// Description: Returns the number of read requests that are waiting
// to be serviced by a thread.
////////////////////////////////////////////////////////////////////
62
static inline int VertexDataPage::get_num_pending_reads(void);
1819 22 get_num_pending_writes 0 4 2961 38 VertexDataPage::get_num_pending_writes 0 1 270 344
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_num_pending_writes
// Access: Published, Static
// Description: Returns the number of write requests that are waiting
// to be serviced by a thread.
////////////////////////////////////////////////////////////////////
63
static inline int VertexDataPage::get_num_pending_writes(void);
1820 12 stop_threads 0 4 2961 28 VertexDataPage::stop_threads 0 1 271 397
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::stop_threads
// Access: Published, Static
// Description: Call this to stop the paging threads, if they were
// started. This may block until all of the pending
// tasks have been completed.
////////////////////////////////////////////////////////////////////
47
static void VertexDataPage::stop_threads(void);
1821 13 flush_threads 0 4 2961 29 VertexDataPage::flush_threads 0 1 272 323
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::flush_threads
// Access: Published, Static
// Description: Waits for all of the pending thread tasks to finish
// before returning.
////////////////////////////////////////////////////////////////////
48
static void VertexDataPage::flush_threads(void);
1822 6 output 0 6 2961 22 VertexDataPage::output 0 1 273 231
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::output
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
56
virtual void VertexDataPage::output(ostream &out) const;
1823 5 write 0 6 2961 21 VertexDataPage::write 0 1 274 230
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::write
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
73
virtual void VertexDataPage::write(ostream &out, int indent_level) const;
1824 14 get_class_type 0 4 2961 30 VertexDataPage::get_class_type 0 1 275 0
55
static TypeHandle VertexDataPage::get_class_type(void);
1825 14 VertexDataBook 0 4 2963 30 VertexDataBook::VertexDataBook 0 1 280 227
////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
56
VertexDataBook::VertexDataBook(unsigned int block_size);
1826 15 ~VertexDataBook 0 4 2963 31 VertexDataBook::~VertexDataBook 0 0 226
////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::Destructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
38
VertexDataBook::~VertexDataBook(void);
1827 5 alloc 0 4 2963 21 VertexDataBook::alloc 0 1 281 795
// Filename: vertexDataBook.I
// Created by: drose (16May07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::alloc
// Access: Published
// Description: Allocates and returns a new VertexDataBuffer of the
// requested size.
////////////////////////////////////////////////////////////////////
65
inline VertexDataBlock *VertexDataBook::alloc(unsigned int size);
1828 13 get_num_pages 0 4 2963 29 VertexDataBook::get_num_pages 0 1 282 278
////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::get_num_pages
// Access: Published
// Description: Returns the number of pages created for the book.
////////////////////////////////////////////////////////////////////
53
inline int VertexDataBook::get_num_pages(void) const;
1829 21 count_total_page_size 0 4 2963 37 VertexDataBook::count_total_page_size 0 2 283 284 709
////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::count_total_page_size
// Access: Published
// Description: Returns the total size of all bytes owned by all
// pages owned by this book.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::count_total_page_size
// Access: Published
// Description: Returns the total size of all bytes owned by all
// pages owned by this book that have the indicated ram
// class.
////////////////////////////////////////////////////////////////////
157
unsigned int VertexDataBook::count_total_page_size(void) const;
unsigned int VertexDataBook::count_total_page_size(VertexDataPage::RamClass ram_class) const;
1830 20 count_allocated_size 0 4 2963 36 VertexDataBook::count_allocated_size 0 2 285 286 715
////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::count_allocated_size
// Access: Published
// Description: Returns the total size of all bytes allocated within
// pages owned by this book.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::count_allocated_size
// Access: Published
// Description: Returns the total size of all bytes allocated within
// pages owned by this book that have the indicated ram
// class.
////////////////////////////////////////////////////////////////////
155
unsigned int VertexDataBook::count_allocated_size(void) const;
unsigned int VertexDataBook::count_allocated_size(VertexDataPage::RamClass ram_class) const;
1831 12 save_to_disk 0 4 2963 28 VertexDataBook::save_to_disk 0 1 287 486
////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::save_to_disk
// Access: Published
// Description: Writes all pages to disk immediately, just in case
// they get evicted later. It makes sense to make this
// call just before taking down a loading screen, to
// minimize chugs from saving pages inadvertently later.
////////////////////////////////////////////////////////////////////
40
void VertexDataBook::save_to_disk(void);
1832 30 upcast_to_SimpleAllocatorBlock 0 12 2964 47 VertexDataBlock::upcast_to_SimpleAllocatorBlock 0 1 290 51
upcast from VertexDataBlock to SimpleAllocatorBlock
76
SimpleAllocatorBlock *VertexDataBlock::upcast_to_SimpleAllocatorBlock(void);
1833 27 downcast_to_VertexDataBlock 0 12 2959 49 SimpleAllocatorBlock::downcast_to_VertexDataBlock 0 1 291 53
downcast from SimpleAllocatorBlock to VertexDataBlock
73
VertexDataBlock *SimpleAllocatorBlock::downcast_to_VertexDataBlock(void);
1834 24 upcast_to_ReferenceCount 0 12 2964 41 VertexDataBlock::upcast_to_ReferenceCount 0 1 292 45
upcast from VertexDataBlock to ReferenceCount
64
ReferenceCount *VertexDataBlock::upcast_to_ReferenceCount(void);
1835 27 downcast_to_VertexDataBlock 0 12 2965 43 ReferenceCount::downcast_to_VertexDataBlock 0 1 293 47
downcast from ReferenceCount to VertexDataBlock
67
VertexDataBlock *ReferenceCount::downcast_to_VertexDataBlock(void);
1836 8 get_page 0 4 2964 25 VertexDataBlock::get_page 0 1 288 296
////////////////////////////////////////////////////////////////////
// Function: VertexDataBlock::get_page
// Access: Published
// Description: Returns the page from which this buffer was
// allocated.
////////////////////////////////////////////////////////////////////
61
inline VertexDataPage *VertexDataBlock::get_page(void) const;
1837 14 get_next_block 0 4 2964 31 VertexDataBlock::get_next_block 0 1 289 354
////////////////////////////////////////////////////////////////////
// Function: VertexDataBlock::get_next_block
// Access: Published
// Description: Returns a pointer to the next allocated block in the
// chain, or NULL if there are no more allocated blocks.
////////////////////////////////////////////////////////////////////
68
inline VertexDataBlock *VertexDataBlock::get_next_block(void) const;
1838 16 ~VertexDataBlock 0 4 2964 33 VertexDataBlock::~VertexDataBlock 0 0 0
40
VertexDataBlock::~VertexDataBlock(void);
1839 27 upcast_to_CopyOnWriteObject 0 12 2967 48 GeomVertexArrayData::upcast_to_CopyOnWriteObject 0 1 331 52
upcast from GeomVertexArrayData to CopyOnWriteObject
74
CopyOnWriteObject *GeomVertexArrayData::upcast_to_CopyOnWriteObject(void);
1840 31 downcast_to_GeomVertexArrayData 0 12 2968 50 CopyOnWriteObject::downcast_to_GeomVertexArrayData 0 1 332 54
downcast from CopyOnWriteObject to GeomVertexArrayData
78
GeomVertexArrayData *CopyOnWriteObject::downcast_to_GeomVertexArrayData(void);
1841 23 upcast_to_SimpleLruPage 0 12 2967 44 GeomVertexArrayData::upcast_to_SimpleLruPage 0 1 333 48
upcast from GeomVertexArrayData to SimpleLruPage
66
SimpleLruPage *GeomVertexArrayData::upcast_to_SimpleLruPage(void);
1842 31 downcast_to_GeomVertexArrayData 0 12 2957 46 SimpleLruPage::downcast_to_GeomVertexArrayData 0 1 334 50
downcast from SimpleLruPage to GeomVertexArrayData
74
GeomVertexArrayData *SimpleLruPage::downcast_to_GeomVertexArrayData(void);
1843 19 upcast_to_GeomEnums 0 12 2967 40 GeomVertexArrayData::upcast_to_GeomEnums 0 1 335 44
upcast from GeomVertexArrayData to GeomEnums
58
GeomEnums *GeomVertexArrayData::upcast_to_GeomEnums(void);
1844 31 downcast_to_GeomVertexArrayData 0 12 2941 42 GeomEnums::downcast_to_GeomVertexArrayData 0 1 336 46
downcast from GeomEnums to GeomVertexArrayData
70
GeomVertexArrayData *GeomEnums::downcast_to_GeomVertexArrayData(void);
1845 19 GeomVertexArrayData 0 4 2967 40 GeomVertexArrayData::GeomVertexArrayData 0 2 294 295 808
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::Default Constructor
// Access: Private
// Description: Constructs an invalid object. This is only used when
// reading from the bam file.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
192
GeomVertexArrayData::GeomVertexArrayData(GeomVertexArrayFormat const *array_format, GeomEnums::UsageHint usage_hint);
GeomVertexArrayData::GeomVertexArrayData(GeomVertexArrayData const &copy);
1846 10 operator = 0 4 2967 31 GeomVertexArrayData::operator = 0 1 296 490
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::Copy Assignment Operator
// Access: Published
// Description: The copy assignment operator is not pipeline-safe.
// This will completely obliterate all stages of the
// pipeline, so don't do it for a GeomVertexArrayData
// that is actively being used for rendering.
////////////////////////////////////////////////////////////////////
70
void GeomVertexArrayData::operator =(GeomVertexArrayData const &copy);
1847 20 ~GeomVertexArrayData 0 6 2967 41 GeomVertexArrayData::~GeomVertexArrayData 0 0 240
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
56
virtual GeomVertexArrayData::~GeomVertexArrayData(void);
1848 12 operator new 0 4 2967 33 GeomVertexArrayData::operator new 0 1 297 0
144
inline void *GeomVertexArrayData::operator new(unsigned int size);
inline void *GeomVertexArrayData::operator new(unsigned int size, void *ptr);
1849 15 operator delete 0 4 2967 36 GeomVertexArrayData::operator delete 0 0 0
126
inline void GeomVertexArrayData::operator delete(void *ptr);
inline void GeomVertexArrayData::operator delete(void *, void *);
1850 12 validate_ptr 0 4 2967 33 GeomVertexArrayData::validate_ptr 0 0 0
70
static inline bool GeomVertexArrayData::validate_ptr(void const *ptr);
1851 10 compare_to 0 4 2967 31 GeomVertexArrayData::compare_to 0 1 298 330
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::compare_to
// Access: Published
// Description: Returns 0 if the two arrays are equivalent, even if
// they are not the same pointer.
////////////////////////////////////////////////////////////////////
76
int GeomVertexArrayData::compare_to(GeomVertexArrayData const &other) const;
1852 16 get_array_format 0 4 2967 37 GeomVertexArrayData::get_array_format 0 1 299 784
// Filename: geomVertexArrayData.I
// Created by: drose (17Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_array_format
// Access: Published
// Description: Returns the format object that describes this array.
////////////////////////////////////////////////////////////////////
86
inline GeomVertexArrayFormat const *GeomVertexArrayData::get_array_format(void) const;
1853 14 get_usage_hint 0 4 2967 35 GeomVertexArrayData::get_usage_hint 0 1 300 409
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_usage_hint
// Access: Published
// Description: Returns the usage hint that describes to the
// rendering backend how often the vertex data will be
// modified and/or rendered. See geomEnums.h.
////////////////////////////////////////////////////////////////////
76
inline GeomEnums::UsageHint GeomVertexArrayData::get_usage_hint(void) const;
1854 14 set_usage_hint 0 4 2967 35 GeomVertexArrayData::set_usage_hint 0 1 301 514
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::set_usage_hint
// Access: Published
// Description: Changes the UsageHint hint for this array. See
// get_usage_hint().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
74
void GeomVertexArrayData::set_usage_hint(GeomEnums::UsageHint usage_hint);
1855 10 has_column 0 4 2967 31 GeomVertexArrayData::has_column 0 1 302 404
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::has_column
// Access: Published
// Description: Returns true if the array has the named column,
// false otherwise. This is really just a shortcut for
// asking the same thing from the format.
////////////////////////////////////////////////////////////////////
76
inline bool GeomVertexArrayData::has_column(InternalName const *name) const;
1856 12 get_num_rows 0 4 2967 33 GeomVertexArrayData::get_num_rows 0 1 303 454
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_num_rows
// Access: Published
// Description: Returns the number of rows stored in the array,
// based on the number of bytes and the stride. This
// should be the same for all arrays within a given
// GeomVertexData object.
////////////////////////////////////////////////////////////////////
57
inline int GeomVertexArrayData::get_num_rows(void) const;
1857 12 set_num_rows 0 4 2967 33 GeomVertexArrayData::set_num_rows 0 1 304 1075
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::set_num_rows
// Access: Published
// Description: Sets the length of the array to n rows.
//
// Normally, you would not call this directly, since all
// of the arrays in a particular GeomVertexData must
// have the same number of rows; instead, call
// GeomVertexData::set_num_rows().
//
// The return value is true if the number of rows
// was changed, false if the object already contained n
// rows (or if there was some error).
//
// The new vertex data is initialized to 0, including
// the "color" column (but see
// GeomVertexData::set_num_rows()).
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
53
inline bool GeomVertexArrayData::set_num_rows(int n);
1858 20 unclean_set_num_rows 0 4 2967 41 GeomVertexArrayData::unclean_set_num_rows 0 1 305 757
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::unclean_set_num_rows
// Access: Published
// Description: This method behaves like set_num_rows(), except the
// new data is not initialized. Furthermore, after this
// call, *any* of the data in the GeomVertexArrayData
// may be uninitialized, including the earlier rows.
//
// Normally, you would not call this directly, since all
// of the arrays in a particular GeomVertexData must
// have the same number of rows; instead, call
// GeomVertexData::unclean_set_num_rows().
////////////////////////////////////////////////////////////////////
61
inline bool GeomVertexArrayData::unclean_set_num_rows(int n);
1859 16 reserve_num_rows 0 4 2967 37 GeomVertexArrayData::reserve_num_rows 0 1 306 611
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::reserve_num_rows
// Access: Published
// Description: This ensures that enough memory space for n rows is
// allocated, so that you may increase the number of
// rows to n without causing a new memory allocation.
// This is a performance optimization only; it is
// especially useful when you know ahead of time that
// you will be adding n rows to the data.
////////////////////////////////////////////////////////////////////
57
inline bool GeomVertexArrayData::reserve_num_rows(int n);
1860 10 clear_rows 0 4 2967 31 GeomVertexArrayData::clear_rows 0 1 307 329
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::clear_rows
// Access: Published
// Description: Removes all of the rows in the array.
// Functionally equivalent to set_num_rows(0).
////////////////////////////////////////////////////////////////////
50
inline void GeomVertexArrayData::clear_rows(void);
1861 19 get_data_size_bytes 0 4 2967 40 GeomVertexArrayData::get_data_size_bytes 0 1 308 288
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_data_size_bytes
// Access: Published
// Description: Returns the number of bytes stored in the array.
////////////////////////////////////////////////////////////////////
64
inline int GeomVertexArrayData::get_data_size_bytes(void) const;
1862 12 get_modified 0 4 2967 33 GeomVertexArrayData::get_modified 0 1 309 377
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the array vertex data is
// modified.
////////////////////////////////////////////////////////////////////
63
inline UpdateSeq GeomVertexArrayData::get_modified(void) const;
1863 6 output 0 6 2967 27 GeomVertexArrayData::output 0 1 310 227
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
61
virtual void GeomVertexArrayData::output(ostream &out) const;
1864 5 write 0 6 2967 26 GeomVertexArrayData::write 0 2 311 312 226
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::write
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
84
virtual void GeomVertexArrayData::write(ostream &out, int indent_level = (0)) const;
1865 16 request_resident 0 4 2967 37 GeomVertexArrayData::request_resident 0 1 313 566
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::request_resident
// Access: Published
// Description: Returns true if the vertex data is currently resident
// in memory. If this returns true, the next call to
// get_handle()->get_read_pointer() will probably not
// block. If this returns false, the vertex data will
// be brought back into memory shortly; try again later.
////////////////////////////////////////////////////////////////////
62
inline bool GeomVertexArrayData::request_resident(void) const;
1866 10 get_handle 0 4 2967 31 GeomVertexArrayData::get_handle 0 2 314 315 529
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_handle
// Access: Published
// Description: Returns an object that can be used to read the actual
// data bytes stored in the array. Calling this method
// locks the data, and will block any other threads
// attempting to read or write the data, until the
// returned object destructs.
////////////////////////////////////////////////////////////////////
140
inline ConstPointerTo< GeomVertexArrayDataHandle > GeomVertexArrayData::get_handle(Thread *current_thread = ((get_current_thread()))) const;
1867 13 modify_handle 0 4 2967 34 GeomVertexArrayData::modify_handle 0 2 316 317 541
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::modify_handle
// Access: Published
// Description: Returns an object that can be used to read or write
// the actual data bytes stored in the array. Calling
// this method locks the data, and will block any other
// threads attempting to read or write the data, until
// the returned object destructs.
////////////////////////////////////////////////////////////////////
132
inline PointerTo< GeomVertexArrayDataHandle > GeomVertexArrayData::modify_handle(Thread *current_thread = ((get_current_thread())));
1868 7 prepare 0 4 2967 28 GeomVertexArrayData::prepare 0 1 318 648
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::prepare
// Access: Public
// Description: Indicates that the data should be enqueued to be
// prepared in the indicated prepared_objects at the
// beginning of the next frame. This will ensure the
// data is already loaded into the GSG if it is expected
// to be rendered soon.
//
// Use this function instead of prepare_now() to preload
// datas from a user interface standpoint.
////////////////////////////////////////////////////////////////////
77
void GeomVertexArrayData::prepare(PreparedGraphicsObjects *prepared_objects);
1869 11 is_prepared 0 4 2967 32 GeomVertexArrayData::is_prepared 0 1 319 383
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::is_prepared
// Access: Published
// Description: Returns true if the data has already been prepared
// or enqueued for preparation on the indicated GSG,
// false otherwise.
////////////////////////////////////////////////////////////////////
87
bool GeomVertexArrayData::is_prepared(PreparedGraphicsObjects *prepared_objects) const;
1870 11 prepare_now 0 4 2967 32 GeomVertexArrayData::prepare_now 0 1 320 894
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::prepare_now
// Access: Public
// Description: Creates a context for the data on the particular
// GSG, if it does not already exist. Returns the new
// (or old) VertexBufferContext. This assumes that the
// GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// datas. If this is not necessarily the case, you
// should use prepare() instead.
//
// Normally, this is not called directly except by the
// GraphicsStateGuardian; a data does not need to be
// explicitly prepared by the user before it may be
// rendered.
////////////////////////////////////////////////////////////////////
129
VertexBufferContext *GeomVertexArrayData::prepare_now(PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg);
1871 7 release 0 4 2967 28 GeomVertexArrayData::release 0 1 321 400
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::release
// Access: Public
// Description: Frees the data context only on the indicated object,
// if it exists there. Returns true if it was released,
// false if it had not been prepared.
////////////////////////////////////////////////////////////////////
77
bool GeomVertexArrayData::release(PreparedGraphicsObjects *prepared_objects);
1872 11 release_all 0 4 2967 32 GeomVertexArrayData::release_all 0 1 322 398
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::release_all
// Access: Public
// Description: Frees the context allocated on all objects for which
// the data has been declared. Returns the number of
// contexts which have been freed.
////////////////////////////////////////////////////////////////////
43
int GeomVertexArrayData::release_all(void);
1873 19 get_independent_lru 0 4 2967 40 GeomVertexArrayData::get_independent_lru 0 1 323 399
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_independent_lru
// Access: Published, Static
// Description: Returns a pointer to the global LRU object that
// manages the GeomVertexArrayData's that have not (yet)
// been paged out.
////////////////////////////////////////////////////////////////////
72
static inline SimpleLru *GeomVertexArrayData::get_independent_lru(void);
1874 13 get_small_lru 0 4 2967 34 GeomVertexArrayData::get_small_lru 0 1 324 400
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_small_lru
// Access: Published, Static
// Description: Returns a pointer to the global LRU object that
// manages the GeomVertexArrayData's that are deemed too
// small to be paged out.
////////////////////////////////////////////////////////////////////
66
static inline SimpleLru *GeomVertexArrayData::get_small_lru(void);
1875 9 lru_epoch 0 4 2967 30 GeomVertexArrayData::lru_epoch 0 1 325 382
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::lru_epoch
// Access: Published, Static
// Description: Marks that an epoch has passed in each LRU. Asks the
// LRU's to consider whether they should perform
// evictions.
////////////////////////////////////////////////////////////////////
49
static void GeomVertexArrayData::lru_epoch(void);
1876 8 get_book 0 4 2967 29 GeomVertexArrayData::get_book 0 1 326 338
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_book
// Access: Published, Static
// Description: Returns the global VertexDataBook that will be
// used to allocate vertex data buffers.
////////////////////////////////////////////////////////////////////
66
static inline VertexDataBook &GeomVertexArrayData::get_book(void);
1877 13 __getbuffer__ 0 4 2967 34 GeomVertexArrayData::__getbuffer__ 0 2 327 328 0
173
int GeomVertexArrayData::__getbuffer__(PyObject *self, Py_buffer *view, int flags);
int GeomVertexArrayData::__getbuffer__(PyObject *self, Py_buffer *view, int flags) const;
1878 17 __releasebuffer__ 0 4 2967 38 GeomVertexArrayData::__releasebuffer__ 0 1 329 0
83
void GeomVertexArrayData::__releasebuffer__(PyObject *self, Py_buffer *view) const;
1879 14 get_class_type 0 4 2967 35 GeomVertexArrayData::get_class_type 0 1 330 0
60
static TypeHandle GeomVertexArrayData::get_class_type(void);
1880 24 upcast_to_ReferenceCount 0 12 2969 51 GeomVertexArrayDataHandle::upcast_to_ReferenceCount 0 1 360 55
upcast from GeomVertexArrayDataHandle to ReferenceCount
74
ReferenceCount *GeomVertexArrayDataHandle::upcast_to_ReferenceCount(void);
1881 37 downcast_to_GeomVertexArrayDataHandle 0 12 2965 53 ReferenceCount::downcast_to_GeomVertexArrayDataHandle 0 1 361 57
downcast from ReferenceCount to GeomVertexArrayDataHandle
87
GeomVertexArrayDataHandle *ReferenceCount::downcast_to_GeomVertexArrayDataHandle(void);
1882 19 upcast_to_GeomEnums 0 12 2969 46 GeomVertexArrayDataHandle::upcast_to_GeomEnums 0 1 362 50
upcast from GeomVertexArrayDataHandle to GeomEnums
64
GeomEnums *GeomVertexArrayDataHandle::upcast_to_GeomEnums(void);
1883 37 downcast_to_GeomVertexArrayDataHandle 0 12 2941 48 GeomEnums::downcast_to_GeomVertexArrayDataHandle 0 1 363 52
downcast from GeomEnums to GeomVertexArrayDataHandle
82
GeomVertexArrayDataHandle *GeomEnums::downcast_to_GeomVertexArrayDataHandle(void);
1884 26 ~GeomVertexArrayDataHandle 0 6 2969 53 GeomVertexArrayDataHandle::~GeomVertexArrayDataHandle 0 0 233
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::Destructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
75
virtual inline GeomVertexArrayDataHandle::~GeomVertexArrayDataHandle(void);
1885 10 get_object 0 4 2969 37 GeomVertexArrayDataHandle::get_object 0 2 337 338 474
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_object
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_object
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
157
inline GeomVertexArrayData const *GeomVertexArrayDataHandle::get_object(void) const;
inline GeomVertexArrayData *GeomVertexArrayDataHandle::get_object(void);
1886 16 get_array_format 0 4 2969 43 GeomVertexArrayDataHandle::get_array_format 0 1 339 243
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_array_format
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
92
inline GeomVertexArrayFormat const *GeomVertexArrayDataHandle::get_array_format(void) const;
1887 14 get_usage_hint 0 4 2969 41 GeomVertexArrayDataHandle::get_usage_hint 0 1 340 241
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_usage_hint
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
82
inline GeomEnums::UsageHint GeomVertexArrayDataHandle::get_usage_hint(void) const;
1888 12 get_num_rows 0 4 2969 39 GeomVertexArrayDataHandle::get_num_rows 0 1 341 239
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_num_rows
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
63
inline int GeomVertexArrayDataHandle::get_num_rows(void) const;
1889 12 set_num_rows 0 4 2969 39 GeomVertexArrayDataHandle::set_num_rows 0 1 342 236
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::set_num_rows
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
52
bool GeomVertexArrayDataHandle::set_num_rows(int n);
1890 20 unclean_set_num_rows 0 4 2969 47 GeomVertexArrayDataHandle::unclean_set_num_rows 0 1 343 244
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::unclean_set_num_rows
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
60
bool GeomVertexArrayDataHandle::unclean_set_num_rows(int n);
1891 16 reserve_num_rows 0 4 2969 43 GeomVertexArrayDataHandle::reserve_num_rows 0 1 344 240
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::reserve_num_rows
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
56
bool GeomVertexArrayDataHandle::reserve_num_rows(int n);
1892 10 clear_rows 0 4 2969 37 GeomVertexArrayDataHandle::clear_rows 0 1 345 237
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::clear_rows
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
56
inline void GeomVertexArrayDataHandle::clear_rows(void);
1893 19 get_data_size_bytes 0 4 2969 46 GeomVertexArrayDataHandle::get_data_size_bytes 0 1 346 246
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_data_size_bytes
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
70
inline int GeomVertexArrayDataHandle::get_data_size_bytes(void) const;
1894 12 get_modified 0 4 2969 39 GeomVertexArrayDataHandle::get_modified 0 1 347 239
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_modified
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
69
inline UpdateSeq GeomVertexArrayDataHandle::get_modified(void) const;
1895 16 request_resident 0 4 2969 43 GeomVertexArrayDataHandle::request_resident 0 1 348 566
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::request_resident
// Access: Published
// Description: Returns true if the vertex data is currently resident
// in memory. If this returns true, the next call to
// get_handle()->get_read_pointer() will probably not
// block. If this returns false, the vertex data will
// be brought back into memory shortly; try again later.
////////////////////////////////////////////////////////////////////
68
inline bool GeomVertexArrayDataHandle::request_resident(void) const;
1896 14 copy_data_from 0 4 2969 41 GeomVertexArrayDataHandle::copy_data_from 0 2 349 350 574
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::copy_data_from
// Access: Public
// Description: Copies the entire data array from the other object.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::copy_data_from
// Access: Public
// Description: Copies the entire data array from the buffer.
////////////////////////////////////////////////////////////////////
249
void GeomVertexArrayDataHandle::copy_data_from(GeomVertexArrayDataHandle const *other);
void GeomVertexArrayDataHandle::copy_data_from(unsigned char const *source, unsigned int size);
void GeomVertexArrayDataHandle::copy_data_from(PyObject *buffer);
1897 17 copy_subdata_from 0 4 2969 44 GeomVertexArrayDataHandle::copy_subdata_from 0 3 351 352 353 947
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::copy_subdata_from
// Access: Public
// Description: Copies a portion of the data array from the other
// object into a portion of the data array of this
// object. If to_size != from_size, the size of this
// data array is adjusted accordingly.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::copy_subdata_from
// Access: Public
// Description: Copies a portion of the data array from the buffer
// into a portion of the data array of this object.
// If to_size != from_size, the size of this data
// array is adjusted accordingly.
////////////////////////////////////////////////////////////////////
635
void GeomVertexArrayDataHandle::copy_subdata_from(unsigned int to_start, unsigned int to_size, GeomVertexArrayDataHandle const *other, unsigned int from_start, unsigned int from_size);
void GeomVertexArrayDataHandle::copy_subdata_from(unsigned int to_start, unsigned int to_size, unsigned char const *source, unsigned int from_start, unsigned int from_size);
void GeomVertexArrayDataHandle::copy_subdata_from(unsigned int to_start, unsigned int to_size, PyObject *buffer);
void GeomVertexArrayDataHandle::copy_subdata_from(unsigned int to_start, unsigned int to_size, PyObject *buffer, unsigned int from_start, unsigned int from_size);
1898 8 get_data 0 4 2969 35 GeomVertexArrayDataHandle::get_data 0 1 354 445
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_data
// Access: Published
// Description: Returns the entire raw data of the
// GeomVertexArrayData object, formatted as a string.
// This is primarily for the benefit of high-level
// languages such as Python.
////////////////////////////////////////////////////////////////////
76
inline basic_string< char > GeomVertexArrayDataHandle::get_data(void) const;
1899 8 set_data 0 4 2969 35 GeomVertexArrayDataHandle::set_data 0 1 355 415
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::set_data
// Access: Public
// Description: Replaces the entire raw data array with the contents
// of the indicated string. This is primarily for the
// benefit of high-level languages like Python.
////////////////////////////////////////////////////////////////////
75
void GeomVertexArrayDataHandle::set_data(basic_string< char > const &data);
1900 11 get_subdata 0 4 2969 38 GeomVertexArrayDataHandle::get_subdata 0 1 356 453
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_subdata
// Access: Published
// Description: Returns a subset of the raw data of the
// GeomVertexArrayData object, formatted as a string.
// This is primarily for the benefit of high-level
// languages such as Python.
////////////////////////////////////////////////////////////////////
112
inline basic_string< char > GeomVertexArrayDataHandle::get_subdata(unsigned int start, unsigned int size) const;
1901 11 set_subdata 0 4 2969 38 GeomVertexArrayDataHandle::set_subdata 0 1 357 518
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::set_subdata
// Access: Public
// Description: Replaces a portion of the data array from the
// indicated string. If size != data.size(), the size
// of this data array is adjusted accordingly.
//
// This is primarily for the benefit of high-level
// languages like Python.
////////////////////////////////////////////////////////////////////
117
void GeomVertexArrayDataHandle::set_subdata(unsigned int start, unsigned int size, basic_string< char > const &data);
1902 9 mark_used 0 4 2969 36 GeomVertexArrayDataHandle::mark_used 0 1 358 271
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::mark_used
// Access: Published
// Description: Marks the array data recently-used.
////////////////////////////////////////////////////////////////////
61
inline void GeomVertexArrayDataHandle::mark_used(void) const;
1903 14 get_class_type 0 4 2969 41 GeomVertexArrayDataHandle::get_class_type 0 1 359 0
66
static TypeHandle GeomVertexArrayDataHandle::get_class_type(void);
1904 12 set_max_size 0 4 2970 30 GeomCacheManager::set_max_size 0 1 364 1310
// Filename: geomCacheManager.I
// Created by: drose (11Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomCacheManager::set_max_size
// Access: Published
// Description: Specifies the maximum number of entries in the cache
// for storing pre-processed data for rendering
// vertices. This limit is flexible, and may be
// temporarily exceeded if many different Geoms are
// pre-processed during the space of a single frame.
//
// This is not a limit on the actual vertex data, which
// is what it is; it is also not a limit on the amount
// of memory used by the video driver or the system
// graphics interface, which Panda has no control over.
////////////////////////////////////////////////////////////////////
63
inline void GeomCacheManager::set_max_size(int max_size) const;
1905 12 get_max_size 0 4 2970 30 GeomCacheManager::get_max_size 0 1 365 390
////////////////////////////////////////////////////////////////////
// Function: GeomCacheManager::get_max_size
// Access: Published
// Description: Returns the maximum number of entries in the cache
// for storing pre-processed data for rendering
// vertices. See set_max_size().
////////////////////////////////////////////////////////////////////
54
inline int GeomCacheManager::get_max_size(void) const;
1906 14 get_total_size 0 4 2970 32 GeomCacheManager::get_total_size 0 1 366 285
////////////////////////////////////////////////////////////////////
// Function: GeomCacheManager::get_total_size
// Access: Published
// Description: Returns the number of entries currently in the cache.
////////////////////////////////////////////////////////////////////
56
inline int GeomCacheManager::get_total_size(void) const;
1907 5 flush 0 4 2970 23 GeomCacheManager::flush 0 1 367 269
////////////////////////////////////////////////////////////////////
// Function: GeomCacheManager::flush
// Access: Published
// Description: Immediately empties all elements in the cache.
////////////////////////////////////////////////////////////////////
35
void GeomCacheManager::flush(void);
1908 14 get_global_ptr 0 4 2970 32 GeomCacheManager::get_global_ptr 0 1 368 281
////////////////////////////////////////////////////////////////////
// Function: GeomCacheManager::get_global_ptr
// Access: Published, Static
// Description: Returns the global cache manager pointer.
////////////////////////////////////////////////////////////////////
64
static GeomCacheManager *GeomCacheManager::get_global_ptr(void);
1909 10 get_matrix 0 6 2971 27 VertexTransform::get_matrix 0 1 369 0
70
virtual void VertexTransform::get_matrix(LMatrix4f &matrix) const = 0;
1910 11 mult_matrix 0 6 2971 28 VertexTransform::mult_matrix 0 1 370 579
////////////////////////////////////////////////////////////////////
// Function: VertexTransform::mult_matrix
// Access: Published, Virtual
// Description: Premultiplies this transform's matrix with the
// indicated previous matrix, so that the result is the
// net composition of the given transform with this
// transform. The result is stored in the parameter
// "result", which should not be the same matrix as
// previous.
////////////////////////////////////////////////////////////////////
94
virtual void VertexTransform::mult_matrix(LMatrix4f &result, LMatrix4f const &previous) const;
1911 17 accumulate_matrix 0 6 2971 34 VertexTransform::accumulate_matrix 0 1 371 477
////////////////////////////////////////////////////////////////////
// Function: VertexTransform::accumulate_matrix
// Access: Published, Virtual
// Description: Adds the value of this transform's matrix, modified
// by the indicated weight, into the indicated
// accumulation matrix. This is used to compute the
// result of several blended transforms.
////////////////////////////////////////////////////////////////////
86
virtual void VertexTransform::accumulate_matrix(LMatrix4f &accum, float weight) const;
1912 12 get_modified 0 4 2971 29 VertexTransform::get_modified 0 1 372 871
// Filename: vertexTransform.I
// Created by: drose (23Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VertexTransform::get_modified
// Access: Published
// Description: Returns a sequence number that's guaranteed to change
// at least every time the value reported by
// get_matrix() changes.
////////////////////////////////////////////////////////////////////
77
inline UpdateSeq VertexTransform::get_modified(Thread *current_thread) const;
1913 6 output 0 6 2971 23 VertexTransform::output 0 1 373 232
////////////////////////////////////////////////////////////////////
// Function: VertexTransform::output
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
57
virtual void VertexTransform::output(ostream &out) const;
1914 5 write 0 6 2971 22 VertexTransform::write 0 1 374 231
////////////////////////////////////////////////////////////////////
// Function: VertexTransform::write
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
74
virtual void VertexTransform::write(ostream &out, int indent_level) const;
1915 17 get_next_modified 0 4 2971 34 VertexTransform::get_next_modified 0 1 375 765
////////////////////////////////////////////////////////////////////
// Function: VertexTransform::get_next_modified
// Access: Public, Static
// Description: Returns a monotonically increasing sequence. Each
// time this is called, a new sequence number is
// returned, higher than the previous value.
//
// This is used to ensure that all
// VertexTransform::get_modified() calls return an
// increasing number in the same space, so that
// TransformBlend::get_modified() is easy to determine.
// It is similar to Geom::get_modified(), but it is in a
// different space.
////////////////////////////////////////////////////////////////////
76
static UpdateSeq VertexTransform::get_next_modified(Thread *current_thread);
1916 19 get_global_modified 0 4 2971 36 VertexTransform::get_global_modified 0 1 376 474
////////////////////////////////////////////////////////////////////
// Function: VertexTransform::get_global_modified
// Access: Published, Static
// Description: Returns the currently highest
// VertexTransform::get_modified() value in the world.
// This can be used as a quick way to determine if any
// VertexTransforms have changed value recently.
////////////////////////////////////////////////////////////////////
85
static inline UpdateSeq VertexTransform::get_global_modified(Thread *current_thread);
1917 14 get_class_type 0 4 2971 31 VertexTransform::get_class_type 0 1 377 0
56
static TypeHandle VertexTransform::get_class_type(void);
1918 14 TransformTable 0 4 2972 30 TransformTable::TransformTable 0 2 378 379 461
////////////////////////////////////////////////////////////////////
// Function: TransformTable::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformTable::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
97
TransformTable::TransformTable(void);
TransformTable::TransformTable(TransformTable const &copy);
1919 10 operator = 0 4 2972 26 TransformTable::operator = 0 1 380 240
////////////////////////////////////////////////////////////////////
// Function: TransformTable::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
60
void TransformTable::operator =(TransformTable const &copy);
1920 13 is_registered 0 4 2972 29 TransformTable::is_registered 0 1 381 997
// Filename: transformTable.I
// Created by: drose (23Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformTable::is_registered
// Access: Published
// Description: Returns true if this table has been registered.
// Once it has been registered, the set of transforms in
// a TransformTable may not be further modified; but
// it must be registered before it can be assigned to a
// Geom.
////////////////////////////////////////////////////////////////////
54
inline bool TransformTable::is_registered(void) const;
1921 14 register_table 0 4 2972 30 TransformTable::register_table 0 1 382 927
////////////////////////////////////////////////////////////////////
// Function: TransformTable::register_table
// Access: Published, Static
// Description: Registers a TransformTable for use. This is
// similar to GeomVertexFormat::register_format(). Once
// registered, a TransformTable may no longer be
// modified (although the individual VertexTransform
// objects may modify their reported transforms).
//
// This must be called before a table may be used in a
// Geom. After this call, you should discard the
// original pointer you passed in (which may or may not
// now be invalid) and let its reference count decrement
// normally; you should use only the returned value from
// this point on.
////////////////////////////////////////////////////////////////////
107
static inline ConstPointerTo< TransformTable > TransformTable::register_table(TransformTable const *table);
1922 18 get_num_transforms 0 4 2972 34 TransformTable::get_num_transforms 0 1 383 280
////////////////////////////////////////////////////////////////////
// Function: TransformTable::get_num_transforms
// Access: Published
// Description: Returns the number of transforms in the table.
////////////////////////////////////////////////////////////////////
58
inline int TransformTable::get_num_transforms(void) const;
1923 13 get_transform 0 4 2972 29 TransformTable::get_transform 0 1 384 268
////////////////////////////////////////////////////////////////////
// Function: TransformTable::get_transform
// Access: Published
// Description: Returns the nth transform in the table.
////////////////////////////////////////////////////////////////////
73
inline VertexTransform const *TransformTable::get_transform(int n) const;
1924 12 get_modified 0 4 2972 28 TransformTable::get_modified 0 1 385 569
////////////////////////////////////////////////////////////////////
// Function: TransformTable::get_modified
// Access: Published
// Description: Returns a sequence number that's guaranteed to change
// at least when any VertexTransforms in the table
// change. (However, this is only true for a registered
// table. An unregistered table may or may not
// reflect an update here when a VertexTransform
// changes.)
////////////////////////////////////////////////////////////////////
76
inline UpdateSeq TransformTable::get_modified(Thread *current_thread) const;
1925 13 set_transform 0 4 2972 29 TransformTable::set_transform 0 1 386 310
////////////////////////////////////////////////////////////////////
// Function: TransformTable::set_transform
// Access: Published
// Description: Replaces the nth transform. Only valid for
// unregistered tables.
////////////////////////////////////////////////////////////////////
76
void TransformTable::set_transform(int n, VertexTransform const *transform);
1926 16 remove_transform 0 4 2972 32 TransformTable::remove_transform 0 1 387 312
////////////////////////////////////////////////////////////////////
// Function: TransformTable::remove_transform
// Access: Published
// Description: Removes the nth transform. Only valid for
// unregistered tables.
////////////////////////////////////////////////////////////////////
45
void TransformTable::remove_transform(int n);
1927 13 add_transform 0 4 2972 29 TransformTable::add_transform 0 1 388 562
////////////////////////////////////////////////////////////////////
// Function: TransformTable::add_transform
// Access: Published
// Description: Adds a new transform to the table and returns the
// index number of the new transform. Only valid for
// unregistered tables.
//
// This does not automatically uniquify the pointer; if
// the transform is already present in the table, it
// will be added twice.
////////////////////////////////////////////////////////////////////
68
int TransformTable::add_transform(VertexTransform const *transform);
1928 5 write 0 4 2972 21 TransformTable::write 0 1 389 221
////////////////////////////////////////////////////////////////////
// Function: TransformTable::write
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
47
void TransformTable::write(ostream &out) const;
1929 14 get_class_type 0 4 2972 30 TransformTable::get_class_type 0 1 390 0
55
static TypeHandle TransformTable::get_class_type(void);
1930 14 TransformBlend 0 4 2973 30 TransformBlend::TransformBlend 0 6 391 392 393 394 395 396 1867
// Filename: transformBlend.I
// Created by: drose (24Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
767
inline TransformBlend::TransformBlend(void);
inline TransformBlend::TransformBlend(VertexTransform const *transform0, float weight0);
inline TransformBlend::TransformBlend(VertexTransform const *transform0, float weight0, VertexTransform const *transform1, float weight1);
inline TransformBlend::TransformBlend(VertexTransform const *transform0, float weight0, VertexTransform const *transform1, float weight1, VertexTransform const *transform2, float weight2);
inline TransformBlend::TransformBlend(VertexTransform const *transform0, float weight0, VertexTransform const *transform1, float weight1, VertexTransform const *transform2, float weight2, VertexTransform const *transform3, float weight3);
inline TransformBlend::TransformBlend(TransformBlend const &copy);
1931 10 operator = 0 4 2973 26 TransformBlend::operator = 0 1 397 240
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
67
inline void TransformBlend::operator =(TransformBlend const &copy);
1932 15 ~TransformBlend 0 4 2973 31 TransformBlend::~TransformBlend 0 0 226
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Destructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
45
inline TransformBlend::~TransformBlend(void);
1933 10 compare_to 0 4 2973 26 TransformBlend::compare_to 0 1 398 300
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::compare_to
// Access: Published
// Description: Defines an arbitrary ordering for TransformBlend
// objects.
////////////////////////////////////////////////////////////////////
66
int TransformBlend::compare_to(TransformBlend const &other) const;
1934 10 operator < 0 4 2973 26 TransformBlend::operator < 0 1 399 226
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::operator <
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
74
inline bool TransformBlend::operator <(TransformBlend const &other) const;
1935 11 operator == 0 4 2973 27 TransformBlend::operator == 0 1 400 227
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::operator ==
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
75
inline bool TransformBlend::operator ==(TransformBlend const &other) const;
1936 11 operator != 0 4 2973 27 TransformBlend::operator != 0 1 401 227
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::operator !=
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
75
inline bool TransformBlend::operator !=(TransformBlend const &other) const;
1937 13 add_transform 0 4 2973 29 TransformBlend::add_transform 0 1 402 344
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::add_transform
// Access: Published
// Description: Adds a new transform to the blend. If the transform
// already existed, increases its weight factor.
////////////////////////////////////////////////////////////////////
83
void TransformBlend::add_transform(VertexTransform const *transform, float weight);
1938 16 remove_transform 0 4 2973 32 TransformBlend::remove_transform 0 1 403 279
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::remove_transform
// Access: Published
// Description: Removes the indicated transform from the blend.
////////////////////////////////////////////////////////////////////
72
void TransformBlend::remove_transform(VertexTransform const *transform);
1939 16 limit_transforms 0 4 2973 32 TransformBlend::limit_transforms 0 1 404 458
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::limit_transforms
// Access: Published
// Description: If the total number of transforms in the blend
// exceeds max_transforms, removes the n least-important
// transforms as needed to reduce the number of
// transforms to max_transforms.
////////////////////////////////////////////////////////////////////
58
void TransformBlend::limit_transforms(int max_transforms);
1940 17 normalize_weights 0 4 2973 33 TransformBlend::normalize_weights 0 1 405 456
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::normalize_weights
// Access: Published
// Description: Rescales all of the weights on the various transforms
// so that they sum to 1.0. It is generally a good idea
// to call this after adding or removing transforms from
// the blend.
////////////////////////////////////////////////////////////////////
45
void TransformBlend::normalize_weights(void);
1941 13 has_transform 0 4 2973 29 TransformBlend::has_transform 0 1 406 317
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::has_transform
// Access: Published
// Description: Returns true if the blend has the indicated
// transform, false otherwise.
////////////////////////////////////////////////////////////////////
75
bool TransformBlend::has_transform(VertexTransform const *transform) const;
1942 10 get_weight 0 4 2973 26 TransformBlend::get_weight 0 2 407 408 689
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::get_weight
// Access: Published
// Description: Returns the weight associated with the nth transform
// stored in the blend object.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::get_weight
// Access: Published
// Description: Returns the weight associated with the indicated
// transform, or 0 if there is no entry for the
// transform.
////////////////////////////////////////////////////////////////////
127
float TransformBlend::get_weight(VertexTransform const *transform) const;
inline float TransformBlend::get_weight(int n) const;
1943 18 get_num_transforms 0 4 2973 34 TransformBlend::get_num_transforms 0 1 409 311
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::get_num_transforms
// Access: Published
// Description: Returns the number of transforms stored in the blend
// object.
////////////////////////////////////////////////////////////////////
58
inline int TransformBlend::get_num_transforms(void) const;
1944 13 get_transform 0 4 2973 29 TransformBlend::get_transform 0 1 410 299
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::get_transform
// Access: Published
// Description: Returns the nth transform stored in the blend
// object.
////////////////////////////////////////////////////////////////////
73
inline VertexTransform const *TransformBlend::get_transform(int n) const;
1945 13 set_transform 0 4 2973 29 TransformBlend::set_transform 0 1 411 300
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::set_transform
// Access: Published
// Description: Replaces the nth transform stored in the blend
// object.
////////////////////////////////////////////////////////////////////
83
inline void TransformBlend::set_transform(int n, VertexTransform const *transform);
1946 10 set_weight 0 4 2973 26 TransformBlend::set_weight 0 1 412 324
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::set_weight
// Access: Published
// Description: Replaces the weight associated with the nth transform
// stored in the blend object.
////////////////////////////////////////////////////////////////////
60
inline void TransformBlend::set_weight(int n, float weight);
1947 12 update_blend 0 4 2973 28 TransformBlend::update_blend 0 1 413 405
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::update_blend
// Access: Published
// Description: Recomputes the internal representation of the blend
// value, if necessary. You should call this before
// calling get_blend() or transform_point().
////////////////////////////////////////////////////////////////////
71
inline void TransformBlend::update_blend(Thread *current_thread) const;
1948 9 get_blend 0 4 2973 25 TransformBlend::get_blend 0 1 414 522
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::get_blend
// Access: Published
// Description: Returns the current value of the blend, based on the
// current value of all of the nested transform objects
// and their associated weights.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
////////////////////////////////////////////////////////////////////
87
inline void TransformBlend::get_blend(LMatrix4f &result, Thread *current_thread) const;
1949 15 transform_point 0 4 2973 31 TransformBlend::transform_point 0 4 415 416 417 418 1664
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::transform_point
// Access: Published
// Description: Transforms the indicated point by the blend matrix.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::transform_point
// Access: Published
// Description: Transforms the indicated point by the blend matrix.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::transform_point (double)
// Access: Published
// Description: Transforms the indicated point by the blend matrix.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::transform_point (double)
// Access: Published
// Description: Transforms the indicated point by the blend matrix.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
////////////////////////////////////////////////////////////////////
367
inline void TransformBlend::transform_point(LPoint4f &point, Thread *current_thread) const;
inline void TransformBlend::transform_point(LPoint3f &point, Thread *current_thread) const;
inline void TransformBlend::transform_point(LPoint4d &point, Thread *current_thread) const;
inline void TransformBlend::transform_point(LPoint3d &point, Thread *current_thread) const;
1950 16 transform_vector 0 4 2973 32 TransformBlend::transform_vector 0 2 419 420 835
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::transform_vector
// Access: Published
// Description: Transforms the indicated vector by the blend matrix.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::transform_vector (double)
// Access: Published
// Description: Transforms the indicated vector by the blend matrix.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
////////////////////////////////////////////////////////////////////
187
inline void TransformBlend::transform_vector(LVector3f &point, Thread *current_thread) const;
inline void TransformBlend::transform_vector(LVector3d &point, Thread *current_thread) const;
1951 12 get_modified 0 4 2973 28 TransformBlend::get_modified 0 1 421 351
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::get_modified
// Access: Published
// Description: Returns a counter which is guaranteed to increment at
// least as often as the result of get_blend() changes.
////////////////////////////////////////////////////////////////////
76
inline UpdateSeq TransformBlend::get_modified(Thread *current_thread) const;
1952 6 output 0 4 2973 22 TransformBlend::output 0 1 422 222
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
48
void TransformBlend::output(ostream &out) const;
1953 5 write 0 4 2973 21 TransformBlend::write 0 1 423 221
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::write
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
65
void TransformBlend::write(ostream &out, int indent_level) const;
1954 14 get_class_type 0 4 2973 30 TransformBlend::get_class_type 0 1 424 0
55
static TypeHandle TransformBlend::get_class_type(void);
1955 19 TransformBlendTable 0 4 2974 40 TransformBlendTable::TransformBlendTable 0 2 425 426 471
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
122
TransformBlendTable::TransformBlendTable(void);
TransformBlendTable::TransformBlendTable(TransformBlendTable const &copy);
1956 10 operator = 0 4 2974 31 TransformBlendTable::operator = 0 1 427 245
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
70
void TransformBlendTable::operator =(TransformBlendTable const &copy);
1957 14 get_num_blends 0 4 2974 35 TransformBlendTable::get_num_blends 0 1 428 817
// Filename: transformBlendTable.I
// Created by: drose (24Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::get_num_blends
// Access: Published
// Description: Returns the total number of different blend
// combinations in the table.
////////////////////////////////////////////////////////////////////
59
inline int TransformBlendTable::get_num_blends(void) const;
1958 9 get_blend 0 4 2974 30 TransformBlendTable::get_blend 0 1 429 265
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::get_blend
// Access: Published
// Description: Returns the nth blend in the table.
////////////////////////////////////////////////////////////////////
73
inline TransformBlend const &TransformBlendTable::get_blend(int n) const;
1959 12 get_modified 0 4 2974 33 TransformBlendTable::get_modified 0 1 430 382
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::get_modified
// Access: Published
// Description: Returns a counter which is guaranteed to increment at
// least when any TransformBlends within the table
// have changed.
////////////////////////////////////////////////////////////////////
81
inline UpdateSeq TransformBlendTable::get_modified(Thread *current_thread) const;
1960 9 set_blend 0 4 2974 30 TransformBlendTable::set_blend 0 1 431 311
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::set_blend
// Access: Published
// Description: Replaces the blend at the nth position with the
// indicated value.
////////////////////////////////////////////////////////////////////
72
void TransformBlendTable::set_blend(int n, TransformBlend const &blend);
1961 12 remove_blend 0 4 2974 33 TransformBlendTable::remove_blend 0 1 432 271
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::remove_blend
// Access: Published
// Description: Removes the blend at the nth position.
////////////////////////////////////////////////////////////////////
46
void TransformBlendTable::remove_blend(int n);
1962 9 add_blend 0 4 2974 30 TransformBlendTable::add_blend 0 1 433 414
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::add_blend
// Access: Published
// Description: Adds a new blend to the table, and returns its
// index number. If there is already an identical blend
// in the table, simply returns that number instead.
////////////////////////////////////////////////////////////////////
64
int TransformBlendTable::add_blend(TransformBlend const &blend);
1963 18 get_num_transforms 0 4 2974 39 TransformBlendTable::get_num_transforms 0 1 434 603
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::get_num_transforms
// Access: Published
// Description: Returns the number of unique VertexTransform objects
// represented in the table. This will correspond to
// the size of the TransformTable object that would
// represent the same table. This is also the same
// limit reflected by
// GraphicsStateGuardian::get_max_vertex_transform_indices().
////////////////////////////////////////////////////////////////////
63
inline int TransformBlendTable::get_num_transforms(void) const;
1964 31 get_max_simultaneous_transforms 0 4 2974 52 TransformBlendTable::get_max_simultaneous_transforms 0 1 435 503
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::get_max_simultaneous_transforms
// Access: Published
// Description: Returns the maximum number of unique VertexTransform
// objects that are applied to any one vertex
// simultaneously. This is the same limit reflected by
// GraphicsStateGuardian::get_max_vertex_transforms().
////////////////////////////////////////////////////////////////////
76
inline int TransformBlendTable::get_max_simultaneous_transforms(void) const;
1965 8 set_rows 0 4 2974 29 TransformBlendTable::set_rows 0 1 436 383
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::set_rows
// Access: Published
// Description: Specifies the subset of rows (vertices) in the
// associated GeomVertexData that this
// TransformBlendTable actually affects.
////////////////////////////////////////////////////////////////////
67
inline void TransformBlendTable::set_rows(SparseArray const &rows);
1966 8 get_rows 0 4 2974 29 TransformBlendTable::get_rows 0 1 437 381
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::get_rows
// Access: Published
// Description: Returns the subset of rows (vertices) in the
// associated GeomVertexData that this
// TransformBlendTable actually affects.
////////////////////////////////////////////////////////////////////
68
inline SparseArray const &TransformBlendTable::get_rows(void) const;
1967 11 modify_rows 0 4 2974 32 TransformBlendTable::modify_rows 0 1 438 458
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::modify_rows
// Access: Published
// Description: Returns a modifiable reference to the SparseArray
// that specifies the subset of rows (vertices) in the
// associated GeomVertexData that this
// TransformBlendTable actually affects.
////////////////////////////////////////////////////////////////////
59
inline SparseArray &TransformBlendTable::modify_rows(void);
1968 5 write 0 4 2974 26 TransformBlendTable::write 0 1 439 226
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::write
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
70
void TransformBlendTable::write(ostream &out, int indent_level) const;
1969 14 get_class_type 0 4 2974 35 TransformBlendTable::get_class_type 0 1 440 0
60
static TypeHandle TransformBlendTable::get_class_type(void);
1970 8 get_name 0 4 2975 22 VertexSlider::get_name 0 1 441 945
// Filename: vertexSlider.I
// Created by: drose (28Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VertexSlider::get_name
// Access: Published
// Description: Returns the name of this particular slider. Every
// unique blend shape within a particular Geom must be
// identified with a different name, which is shared by
// the slider that controls it.
////////////////////////////////////////////////////////////////////
62
inline InternalName const *VertexSlider::get_name(void) const;
1971 10 get_slider 0 6 2975 24 VertexSlider::get_slider 0 1 442 0
55
virtual float VertexSlider::get_slider(void) const = 0;
1972 12 get_modified 0 4 2975 26 VertexSlider::get_modified 0 1 443 377
////////////////////////////////////////////////////////////////////
// Function: VertexSlider::get_modified
// Access: Published
// Description: Returns a sequence number that's guaranteed to change
// at least every time the value reported by
// get_slider() changes.
////////////////////////////////////////////////////////////////////
74
inline UpdateSeq VertexSlider::get_modified(Thread *current_thread) const;
1973 6 output 0 6 2975 20 VertexSlider::output 0 1 444 229
////////////////////////////////////////////////////////////////////
// Function: VertexSlider::output
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
54
virtual void VertexSlider::output(ostream &out) const;
1974 5 write 0 6 2975 19 VertexSlider::write 0 1 445 228
////////////////////////////////////////////////////////////////////
// Function: VertexSlider::write
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
71
virtual void VertexSlider::write(ostream &out, int indent_level) const;
1975 14 get_class_type 0 4 2975 28 VertexSlider::get_class_type 0 1 446 0
53
static TypeHandle VertexSlider::get_class_type(void);
1976 11 SliderTable 0 4 2976 24 SliderTable::SliderTable 0 2 447 448 455
////////////////////////////////////////////////////////////////////
// Function: SliderTable::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: SliderTable::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
82
SliderTable::SliderTable(void);
SliderTable::SliderTable(SliderTable const &copy);
1977 10 operator = 0 4 2976 23 SliderTable::operator = 0 1 449 237
////////////////////////////////////////////////////////////////////
// Function: SliderTable::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
54
void SliderTable::operator =(SliderTable const &copy);
1978 13 is_registered 0 4 2976 26 SliderTable::is_registered 0 1 450 985
// Filename: sliderTable.I
// Created by: drose (28Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: SliderTable::is_registered
// Access: Published
// Description: Returns true if this table has been registered.
// Once it has been registered, the set of sliders in
// a SliderTable may not be further modified; but
// it must be registered before it can be assigned to a
// Geom.
////////////////////////////////////////////////////////////////////
51
inline bool SliderTable::is_registered(void) const;
1979 14 register_table 0 4 2976 27 SliderTable::register_table 0 1 451 912
////////////////////////////////////////////////////////////////////
// Function: SliderTable::register_table
// Access: Published, Static
// Description: Registers a SliderTable for use. This is
// similar to GeomVertexFormat::register_format(). Once
// registered, a SliderTable may no longer be
// modified (although the individual VertexSlider
// objects may modify their reported sliders).
//
// This must be called before a table may be used in a
// Geom. After this call, you should discard the
// original pointer you passed in (which may or may not
// now be invalid) and let its reference count decrement
// normally; you should use only the returned value from
// this point on.
////////////////////////////////////////////////////////////////////
98
static inline ConstPointerTo< SliderTable > SliderTable::register_table(SliderTable const *table);
1980 15 get_num_sliders 0 4 2976 28 SliderTable::get_num_sliders 0 1 452 271
////////////////////////////////////////////////////////////////////
// Function: SliderTable::get_num_sliders
// Access: Published
// Description: Returns the number of sliders in the table.
////////////////////////////////////////////////////////////////////
52
inline int SliderTable::get_num_sliders(void) const;
1981 10 get_slider 0 4 2976 23 SliderTable::get_slider 0 1 453 259
////////////////////////////////////////////////////////////////////
// Function: SliderTable::get_slider
// Access: Published
// Description: Returns the nth slider in the table.
////////////////////////////////////////////////////////////////////
64
inline VertexSlider const *SliderTable::get_slider(int n) const;
1982 15 get_slider_rows 0 4 2976 28 SliderTable::get_slider_rows 0 1 454 320
////////////////////////////////////////////////////////////////////
// Function: SliderTable::get_slider_rows
// Access: Published
// Description: Returns the set of rows (vertices) governed by the
// nth slider in the table.
////////////////////////////////////////////////////////////////////
68
inline SparseArray const &SliderTable::get_slider_rows(int n) const;
1983 12 find_sliders 0 4 2976 25 SliderTable::find_sliders 0 1 455 416
////////////////////////////////////////////////////////////////////
// Function: SliderTable::find_sliders
// Access: Published
// Description: Returns a list of slider indices that represent the
// list of sliders with the indicated name, or an empty
// SparseArray if no slider in the table has that name.
////////////////////////////////////////////////////////////////////
84
inline SparseArray const &SliderTable::find_sliders(InternalName const *name) const;
1984 10 has_slider 0 4 2976 23 SliderTable::has_slider 0 1 456 329
////////////////////////////////////////////////////////////////////
// Function: SliderTable::has_slider
// Access: Published
// Description: Returns true if the table has at least one slider by
// the indicated name, false otherwise.
////////////////////////////////////////////////////////////////////
68
inline bool SliderTable::has_slider(InternalName const *name) const;
1985 8 is_empty 0 4 2976 21 SliderTable::is_empty 0 1 457 309
////////////////////////////////////////////////////////////////////
// Function: SliderTable::is_empty
// Access: Published
// Description: Returns true if the table has no sliders, false if it
// has at least one.
////////////////////////////////////////////////////////////////////
46
inline bool SliderTable::is_empty(void) const;
1986 12 get_modified 0 4 2976 25 SliderTable::get_modified 0 1 458 560
////////////////////////////////////////////////////////////////////
// Function: SliderTable::get_modified
// Access: Published
// Description: Returns a sequence number that's guaranteed to change
// at least when any VertexSliders in the table
// change. (However, this is only true for a registered
// table. An unregistered table may or may not
// reflect an update here when a VertexSlider
// changes.)
////////////////////////////////////////////////////////////////////
73
inline UpdateSeq SliderTable::get_modified(Thread *current_thread) const;
1987 10 set_slider 0 4 2976 23 SliderTable::set_slider 0 1 459 301
////////////////////////////////////////////////////////////////////
// Function: SliderTable::set_slider
// Access: Published
// Description: Replaces the nth slider. Only valid for
// unregistered tables.
////////////////////////////////////////////////////////////////////
64
void SliderTable::set_slider(int n, VertexSlider const *slider);
1988 15 set_slider_rows 0 4 2976 28 SliderTable::set_slider_rows 0 1 460 327
////////////////////////////////////////////////////////////////////
// Function: SliderTable::set_slider_rows
// Access: Published
// Description: Replaces the rows affected by the nth slider. Only
// valid for unregistered tables.
////////////////////////////////////////////////////////////////////
66
void SliderTable::set_slider_rows(int n, SparseArray const &rows);
1989 13 remove_slider 0 4 2976 26 SliderTable::remove_slider 0 1 461 303
////////////////////////////////////////////////////////////////////
// Function: SliderTable::remove_slider
// Access: Published
// Description: Removes the nth slider. Only valid for
// unregistered tables.
////////////////////////////////////////////////////////////////////
39
void SliderTable::remove_slider(int n);
1990 10 add_slider 0 4 2976 23 SliderTable::add_slider 0 1 462 373
////////////////////////////////////////////////////////////////////
// Function: SliderTable::add_slider
// Access: Published
// Description: Adds a new slider to the table, and returns the
// index number of the new slider. Only valid for
// unregistered tables.
////////////////////////////////////////////////////////////////////
81
int SliderTable::add_slider(VertexSlider const *slider, SparseArray const &rows);
1991 5 write 0 4 2976 18 SliderTable::write 0 1 463 218
////////////////////////////////////////////////////////////////////
// Function: SliderTable::write
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
44
void SliderTable::write(ostream &out) const;
1992 14 get_class_type 0 4 2976 27 SliderTable::get_class_type 0 1 464 0
52
static TypeHandle SliderTable::get_class_type(void);
1993 27 upcast_to_CopyOnWriteObject 0 12 2977 43 GeomVertexData::upcast_to_CopyOnWriteObject 0 1 523 47
upcast from GeomVertexData to CopyOnWriteObject
69
CopyOnWriteObject *GeomVertexData::upcast_to_CopyOnWriteObject(void);
1994 26 downcast_to_GeomVertexData 0 12 2968 45 CopyOnWriteObject::downcast_to_GeomVertexData 0 1 524 49
downcast from CopyOnWriteObject to GeomVertexData
68
GeomVertexData *CopyOnWriteObject::downcast_to_GeomVertexData(void);
1995 19 upcast_to_GeomEnums 0 12 2977 35 GeomVertexData::upcast_to_GeomEnums 0 1 525 39
upcast from GeomVertexData to GeomEnums
53
GeomEnums *GeomVertexData::upcast_to_GeomEnums(void);
1996 26 downcast_to_GeomVertexData 0 12 2941 37 GeomEnums::downcast_to_GeomVertexData 0 1 526 41
downcast from GeomEnums to GeomVertexData
60
GeomVertexData *GeomEnums::downcast_to_GeomVertexData(void);
1997 14 GeomVertexData 0 4 2977 30 GeomVertexData::GeomVertexData 0 3 465 466 467 1272
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::Default Constructor
// Access: Private
// Description: Constructs an invalid object. This is only used when
// reading from the bam file.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::Constructor
// Access: Published
// Description: This constructor copies all of the basic properties
// of the source VertexData, like usage_hint and
// animation tables, but does not copy the actual data,
// and it allows you to specify a different format.
////////////////////////////////////////////////////////////////////
282
GeomVertexData::GeomVertexData(basic_string< char > const &name, GeomVertexFormat const *format, GeomEnums::UsageHint usage_hint);
GeomVertexData::GeomVertexData(GeomVertexData const &copy);
GeomVertexData::GeomVertexData(GeomVertexData const &copy, GeomVertexFormat const *format);
1998 10 operator = 0 4 2977 26 GeomVertexData::operator = 0 1 468 480
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::Copy Assignment Operator
// Access: Published
// Description: The copy assignment operator is not pipeline-safe.
// This will completely obliterate all stages of the
// pipeline, so don't do it for a GeomVertexData that is
// actively being used for rendering.
////////////////////////////////////////////////////////////////////
60
void GeomVertexData::operator =(GeomVertexData const &copy);
1999 15 ~GeomVertexData 0 6 2977 31 GeomVertexData::~GeomVertexData 0 0 235
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
46
virtual GeomVertexData::~GeomVertexData(void);
2000 12 operator new 0 4 2977 28 GeomVertexData::operator new 0 1 469 0
134
inline void *GeomVertexData::operator new(unsigned int size);
inline void *GeomVertexData::operator new(unsigned int size, void *ptr);
2001 15 operator delete 0 4 2977 31 GeomVertexData::operator delete 0 0 0
116
inline void GeomVertexData::operator delete(void *ptr);
inline void GeomVertexData::operator delete(void *, void *);
2002 12 validate_ptr 0 4 2977 28 GeomVertexData::validate_ptr 0 0 0
65
static inline bool GeomVertexData::validate_ptr(void const *ptr);
2003 10 compare_to 0 4 2977 26 GeomVertexData::compare_to 0 1 470 326
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::compare_to
// Access: Published
// Description: Returns 0 if the two objects are equivalent, even if
// they are not the same pointer.
////////////////////////////////////////////////////////////////////
66
int GeomVertexData::compare_to(GeomVertexData const &other) const;
2004 8 get_name 0 4 2977 24 GeomVertexData::get_name 0 1 471 866
// Filename: geomVertexData.I
// Created by: drose (06Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_name
// Access: Published
// Description: Returns the name passed to the constructor, if any.
// This name is reported on the PStats graph for vertex
// computations.
////////////////////////////////////////////////////////////////////
72
inline basic_string< char > const &GeomVertexData::get_name(void) const;
2005 8 set_name 0 4 2977 24 GeomVertexData::set_name 0 1 472 345
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_name
// Access: Published
// Description: Changes the name of the vertex data. This name is
// reported on the PStats graph for vertex computations.
////////////////////////////////////////////////////////////////////
64
void GeomVertexData::set_name(basic_string< char > const &name);
2006 14 get_usage_hint 0 4 2977 30 GeomVertexData::get_usage_hint 0 1 473 778
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_usage_hint
// Access: Published
// Description: Returns the usage hint that was passed to the
// constructor, and which will be passed to each array
// data object created initially, and arrays created as
// the result of a convert_to() operation. See
// geomEnums.h.
//
// However, each individual array may be replaced with a
// different array object with an independent usage hint
// specified, so there is no guarantee that the
// individual arrays all have the same usage_hint.
////////////////////////////////////////////////////////////////////
71
inline GeomEnums::UsageHint GeomVertexData::get_usage_hint(void) const;
2007 14 set_usage_hint 0 4 2977 30 GeomVertexData::set_usage_hint 0 1 474 580
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_usage_hint
// Access: Published
// Description: Changes the UsageHint hint for this vertex data, and
// for all of the arrays that share this data. See
// get_usage_hint().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
69
void GeomVertexData::set_usage_hint(GeomEnums::UsageHint usage_hint);
2008 10 get_format 0 4 2977 26 GeomVertexData::get_format 0 1 475 318
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_format
// Access: Published
// Description: Returns a pointer to the GeomVertexFormat structure
// that defines this data.
////////////////////////////////////////////////////////////////////
70
inline GeomVertexFormat const *GeomVertexData::get_format(void) const;
2009 10 set_format 0 4 2977 26 GeomVertexData::set_format 0 1 476 585
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_format
// Access: Published
// Description: Changes the format of the vertex data. If the data
// is not empty, this will implicitly change every row
// to match the new format.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
64
void GeomVertexData::set_format(GeomVertexFormat const *format);
2010 18 unclean_set_format 0 4 2977 34 GeomVertexData::unclean_set_format 0 1 477 784
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::unclean_set_format
// Access: Published
// Description: Changes the format of the vertex data, without
// reformatting the data to match. The data is exactly
// the same after this operation, but will be
// reinterpreted according to the new format. This
// assumes that the new format is fundamentally
// compatible with the old format; in particular, it
// must have the same number of arrays with the same
// stride in each one. No checking is performed that
// the data remains sensible.
////////////////////////////////////////////////////////////////////
72
void GeomVertexData::unclean_set_format(GeomVertexFormat const *format);
2011 10 has_column 0 4 2977 26 GeomVertexData::has_column 0 1 478 398
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::has_column
// Access: Published
// Description: Returns true if the data has the named column,
// false otherwise. This is really just a shortcut for
// asking the same thing from the format.
////////////////////////////////////////////////////////////////////
71
inline bool GeomVertexData::has_column(InternalName const *name) const;
2012 12 get_num_rows 0 4 2977 28 GeomVertexData::get_num_rows 0 1 479 362
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_num_rows
// Access: Published
// Description: Returns the number of rows stored within all the
// arrays. All arrays store data for the same n
// rows.
////////////////////////////////////////////////////////////////////
52
inline int GeomVertexData::get_num_rows(void) const;
2013 12 set_num_rows 0 4 2977 28 GeomVertexData::set_num_rows 0 1 480 1250
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_num_rows
// Access: Published
// Description: Sets the length of the array to n rows in all of
// the various arrays (presumably by adding rows).
//
// The new vertex data is initialized to 0, except for
// the "color" column, which is initialized to (1, 1, 1,
// 1).
//
// The return value is true if the number of rows
// was changed, false if the object already contained n
// rows (or if there was some error).
//
// Although this method is Published, application code
// only very rarely has any need to call it. Instead,
// you should use the GeomVertexWriter to build up the
// rows in a GeomVertexData object automatically,
// without need to explicitly set the number of
// rows.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
48
inline bool GeomVertexData::set_num_rows(int n);
2014 20 unclean_set_num_rows 0 4 2977 36 GeomVertexData::unclean_set_num_rows 0 1 481 1085
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::unclean_set_num_rows
// Access: Published
// Description: This method behaves like set_num_rows(), except the
// new data is not initialized. Furthermore, after this
// call, *any* of the data in the GeomVertexData may be
// uninitialized, including the earlier rows.
//
// This is intended for applications that are about to
// completely fill the GeomVertexData with new data
// anyway; it provides a tiny performance boost over
// set_num_rows().
//
// Although this method is Published, application code
// only very rarely has any need to call it. Instead,
// you should use the GeomVertexWriter to build up the
// rows in a GeomVertexData object automatically,
// without need to explicitly set the number of
// rows.
////////////////////////////////////////////////////////////////////
56
inline bool GeomVertexData::unclean_set_num_rows(int n);
2015 16 reserve_num_rows 0 4 2977 32 GeomVertexData::reserve_num_rows 0 1 482 606
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::reserve_num_rows
// Access: Published
// Description: This ensures that enough memory space for n rows is
// allocated, so that you may increase the number of
// rows to n without causing a new memory allocation.
// This is a performance optimization only; it is
// especially useful when you know ahead of time that
// you will be adding n rows to the data.
////////////////////////////////////////////////////////////////////
52
inline bool GeomVertexData::reserve_num_rows(int n);
2016 10 clear_rows 0 4 2977 26 GeomVertexData::clear_rows 0 1 483 554
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_rows
// Access: Published
// Description: Removes all of the rows from the arrays;
// functionally equivalent to set_num_rows(0) (but
// faster).
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
38
void GeomVertexData::clear_rows(void);
2017 14 get_num_arrays 0 4 2977 30 GeomVertexData::get_num_arrays 0 1 484 376
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_num_arrays
// Access: Published
// Description: Returns the number of individual arrays stored within
// the data. This must match
// get_format()->get_num_arrays().
////////////////////////////////////////////////////////////////////
54
inline int GeomVertexData::get_num_arrays(void) const;
2018 9 get_array 0 4 2977 25 GeomVertexData::get_array 0 1 485 412
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_array
// Access: Published
// Description: Returns a const pointer to the vertex data for the
// indicated array, for application code to directly
// examine (but not modify) the underlying vertex data.
////////////////////////////////////////////////////////////////////
84
inline ConstPointerTo< GeomVertexArrayData > GeomVertexData::get_array(int i) const;
2019 12 modify_array 0 4 2977 28 GeomVertexData::modify_array 0 1 486 757
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::modify_array
// Access: Published
// Description: Returns a modifiable pointer to the indicated vertex
// array, so that application code may directly
// manipulate the data. You should avoid changing
// the length of this array, since all of the arrays
// should be kept in sync--use set_num_rows()
// instead.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
76
inline PointerTo< GeomVertexArrayData > GeomVertexData::modify_array(int i);
2020 9 set_array 0 4 2977 25 GeomVertexData::set_array 0 1 487 667
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_array
// Access: Published
// Description: Replaces the indicated vertex data array with
// a completely new array. You should be careful that
// the new array has the same length and format as the
// old one, unless you know what you are doing.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
79
inline void GeomVertexData::set_array(int i, GeomVertexArrayData const *array);
2021 19 get_transform_table 0 4 2977 35 GeomVertexData::get_transform_table 0 1 488 868
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_transform_table
// Access: Published
// Description: Returns a const pointer to the TransformTable
// assigned to this data. Vertices within the table
// will index into this table to indicate their
// dynamic skinning information; this table is used when
// the vertex animation is to be performed by the
// graphics hardware (but also see
// get_transform_blend_table()).
//
// This will return NULL if the vertex data does not
// have a TransformTable assigned (which implies the
// vertices will not be animated by the graphics
// hardware).
////////////////////////////////////////////////////////////////////
77
inline TransformTable const *GeomVertexData::get_transform_table(void) const;
2022 19 set_transform_table 0 4 2977 35 GeomVertexData::set_transform_table 0 1 489 708
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_transform_table
// Access: Published
// Description: Replaces the TransformTable on this vertex
// data with the indicated table. The length of this
// table should be consistent with the maximum table
// index assigned to the vertices under the
// "transform_index" name.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
70
void GeomVertexData::set_transform_table(TransformTable const *table);
2023 21 clear_transform_table 0 4 2977 37 GeomVertexData::clear_transform_table 0 1 490 401
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_transform_table
// Access: Published
// Description: Sets the TransformTable pointer to NULL,
// removing the table from the vertex data. This
// disables hardware-driven vertex animation.
////////////////////////////////////////////////////////////////////
56
inline void GeomVertexData::clear_transform_table(void);
2024 25 get_transform_blend_table 0 4 2977 41 GeomVertexData::get_transform_blend_table 0 1 491 816
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_transform_blend_table
// Access: Published
// Description: Returns a const pointer to the TransformBlendTable
// assigned to this data. Vertices within the table
// will index into this table to indicate their
// dynamic skinning information; this table is used when
// the vertex animation is to be performed by the CPU
// (but also see get_transform_table()).
//
// This will return NULL if the vertex data does not
// have a TransformBlendTable assigned (which implies
// the vertices will not be animated by the CPU).
////////////////////////////////////////////////////////////////////
99
inline ConstPointerTo< TransformBlendTable > GeomVertexData::get_transform_blend_table(void) const;
2025 28 modify_transform_blend_table 0 4 2977 44 GeomVertexData::modify_transform_blend_table 0 1 492 665
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::modify_transform_blend_table
// Access: Published
// Description: Returns a modifiable pointer to the current
// TransformBlendTable on this vertex data, if any, or
// NULL if there is not a TransformBlendTable. See
// get_transform_blend_table().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
84
PointerTo< TransformBlendTable > GeomVertexData::modify_transform_blend_table(void);
2026 25 set_transform_blend_table 0 4 2977 41 GeomVertexData::set_transform_blend_table 0 1 493 719
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_transform_blend_table
// Access: Published
// Description: Replaces the TransformBlendTable on this vertex
// data with the indicated table. The length of this
// table should be consistent with the maximum table
// index assigned to the vertices under the
// "transform_blend" name.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
81
void GeomVertexData::set_transform_blend_table(TransformBlendTable const *table);
2027 27 clear_transform_blend_table 0 4 2977 43 GeomVertexData::clear_transform_blend_table 0 1 494 407
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_transform_blend_table
// Access: Published
// Description: Sets the TransformBlendTable pointer to NULL,
// removing the table from the vertex data. This
// disables CPU-driven vertex animation.
////////////////////////////////////////////////////////////////////
62
inline void GeomVertexData::clear_transform_blend_table(void);
2028 16 get_slider_table 0 4 2977 32 GeomVertexData::get_slider_table 0 1 495 558
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_slider_table
// Access: Published
// Description: Returns a const pointer to the SliderTable
// assigned to this data. Vertices within the vertex
// data will look up their morph offsets, if any, within
// this table.
//
// This will return NULL if the vertex data does not
// have a SliderTable assigned.
////////////////////////////////////////////////////////////////////
71
inline SliderTable const *GeomVertexData::get_slider_table(void) const;
2029 16 set_slider_table 0 4 2977 32 GeomVertexData::set_slider_table 0 1 496 777
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_slider_table
// Access: Published
// Description: Replaces the SliderTable on this vertex
// data with the indicated table. There should be an
// entry in this table for each kind of morph offset
// defined in the vertex data.
//
// The SliderTable object must have been registered
// prior to setting it on the GeomVertexData.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
64
void GeomVertexData::set_slider_table(SliderTable const *table);
2030 18 clear_slider_table 0 4 2977 34 GeomVertexData::clear_slider_table 0 1 497 392
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_slider_table
// Access: Published
// Description: Sets the SliderTable pointer to NULL,
// removing the table from the vertex data. This
// disables morph (blend shape) animation.
////////////////////////////////////////////////////////////////////
53
inline void GeomVertexData::clear_slider_table(void);
2031 13 get_num_bytes 0 4 2977 29 GeomVertexData::get_num_bytes 0 1 498 332
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_num_bytes
// Access: Published
// Description: Returns the total number of bytes consumed by the
// different arrays of the vertex data.
////////////////////////////////////////////////////////////////////
53
inline int GeomVertexData::get_num_bytes(void) const;
2032 12 get_modified 0 4 2977 28 GeomVertexData::get_modified 0 2 499 500 366
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the vertex data is
// modified.
////////////////////////////////////////////////////////////////////
103
inline UpdateSeq GeomVertexData::get_modified(Thread *current_thread = ((get_current_thread()))) const;
2033 16 request_resident 0 4 2977 32 GeomVertexData::request_resident 0 1 501 429
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::request_resident
// Access: Published
// Description: Returns true if the vertex data is currently resident
// in memory. If this returns false, the vertex data will
// be brought back into memory shortly; try again later.
////////////////////////////////////////////////////////////////////
50
bool GeomVertexData::request_resident(void) const;
2034 9 copy_from 0 4 2977 25 GeomVertexData::copy_from 0 2 502 503 1099
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::copy_from
// Access: Published
// Description: Copies all the data from the other array into the
// corresponding data types in this array, by matching
// data types name-by-name.
//
// keep_data_objects specifies what to do when one or
// more of the arrays can be copied without the need to
// apply any conversion operation. If it is true, the
// original GeomVertexArrayData objects in this object
// are retained, and their data arrays are copied
// byte-by-byte from the source; if it is false, then the
// GeomVertexArrayData objects are copied pointerwise
// from the source.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
136
void GeomVertexData::copy_from(GeomVertexData const *source, bool keep_data_objects, Thread *current_thread = ((get_current_thread())));
2035 13 copy_row_from 0 4 2977 29 GeomVertexData::copy_row_from 0 1 504 643
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::copy_row_from
// Access: Published
// Description: Copies a single row of the data from the other array
// into the indicated row of this array. In this case,
// the source format must exactly match the destination
// format.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
119
void GeomVertexData::copy_row_from(int dest_row, GeomVertexData const *source, int source_row, Thread *current_thread);
2036 10 convert_to 0 4 2977 26 GeomVertexData::convert_to 0 1 505 408
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::convert_to
// Access: Published
// Description: Returns a new GeomVertexData that represents the same
// contents as this one, with all data types matched up
// name-by-name to the indicated new format.
////////////////////////////////////////////////////////////////////
102
ConstPointerTo< GeomVertexData > GeomVertexData::convert_to(GeomVertexFormat const *new_format) const;
2037 11 scale_color 0 4 2977 27 GeomVertexData::scale_color 0 2 506 507 1067
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::scale_color
// Access: Published
// Description: Returns a new GeomVertexData object with the color
// table modified in-place to apply the indicated scale.
//
// If the vertex data does not include a color column, a
// new one will not be added.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::scale_color
// Access: Published
// Description: Returns a new GeomVertexData object with the color
// table replaced with a new color table that has been
// scaled by the indicated value. The new color table
// will be added as a new array; if the old color table
// was interleaved with a previous array, the previous
// array will not be repacked.
////////////////////////////////////////////////////////////////////
284
ConstPointerTo< GeomVertexData > GeomVertexData::scale_color(LVecBase4f const &color_scale) const;
ConstPointerTo< GeomVertexData > GeomVertexData::scale_color(LVecBase4f const &color_scale, int num_components, GeomEnums::NumericType numeric_type, GeomEnums::Contents contents) const;
2038 9 set_color 0 4 2977 25 GeomVertexData::set_color 0 2 508 509 1054
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_color
// Access: Published
// Description: Returns a new GeomVertexData object with the color
// data modified in-place with the new value.
//
// If the vertex data does not include a color column, a
// new one will not be added.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_color
// Access: Published
// Description: Returns a new GeomVertexData object with the color
// table replaced with a new color table for which each
// vertex has the indicated value. The new color table
// will be added as a new array; if the old color table
// was interleaved with a previous array, the previous
// array will not be repacked.
////////////////////////////////////////////////////////////////////
268
ConstPointerTo< GeomVertexData > GeomVertexData::set_color(LVecBase4f const &color) const;
ConstPointerTo< GeomVertexData > GeomVertexData::set_color(LVecBase4f const &color, int num_components, GeomEnums::NumericType numeric_type, GeomEnums::Contents contents) const;
2039 15 reverse_normals 0 4 2977 31 GeomVertexData::reverse_normals 0 1 510 577
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::reverse_normals
// Access: Published
// Description: Returns a new GeomVertexData object with the normal
// data modified in-place, so that each lighting normal
// is now facing in the opposite direction.
//
// If the vertex data does not include a normal column,
// this returns the original GeomVertexData object,
// unchanged.
////////////////////////////////////////////////////////////////////
77
ConstPointerTo< GeomVertexData > GeomVertexData::reverse_normals(void) const;
2040 16 animate_vertices 0 4 2977 32 GeomVertexData::animate_vertices 0 1 511 1321
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::animate_vertices
// Access: Published
// Description: Returns a GeomVertexData that represents the results
// of computing the vertex animation on the CPU for this
// GeomVertexData.
//
// If there is no CPU-defined vertex animation on this
// object, this just returns the original object.
//
// If there is vertex animation, but the VertexTransform
// values have not changed since last time, this may
// return the same pointer it returned previously. Even
// if the VertexTransform values have changed, it may
// still return the same pointer, but with its contents
// modified (this is preferred, since it allows the
// graphics backend to update vertex buffers optimally).
//
// If force is false, this method may return immediately
// with stale data, if the vertex data is not completely
// resident. If force is true, this method will never
// return stale data, but may block until the data is
// available.
////////////////////////////////////////////////////////////////////
108
ConstPointerTo< GeomVertexData > GeomVertexData::animate_vertices(bool force, Thread *current_thread) const;
2041 23 clear_animated_vertices 0 4 2977 39 GeomVertexData::clear_animated_vertices 0 1 512 555
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_animated_vertices
// Access: Published
// Description: Removes the cache of animated vertices computed by a
// previous call to animate_vertices() within the same
// frame. This will force the next call to
// animate_vertices() to recompute these values from
// scratch. Normally it is not necessary to call this.
////////////////////////////////////////////////////////////////////
51
void GeomVertexData::clear_animated_vertices(void);
2042 18 transform_vertices 0 4 2977 34 GeomVertexData::transform_vertices 0 2 513 514 949
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::transform_vertices
// Access: Published
// Description: Applies the indicated transform matrix to all of the
// vertices in the GeomVertexData. The transform is
// applied to all "point" and "vector" type columns
// described in the format.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::transform_vertices
// Access: Published
// Description: Applies the indicated transform matrix to all of the
// vertices from begin_row up to but not including
// end_row. The transform is applied to all "point" and
// "vector" type columns described in the format.
////////////////////////////////////////////////////////////////////
153
void GeomVertexData::transform_vertices(LMatrix4f const &mat);
void GeomVertexData::transform_vertices(LMatrix4f const &mat, int begin_row, int end_row);
2043 14 replace_column 0 4 2977 30 GeomVertexData::replace_column 0 1 515 776
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::replace_column
// Access: Published
// Description: Returns a new GeomVertexData object, suitable for
// modification, with the indicated data type replaced
// with a new table filled with undefined values. The
// new table will be added as a new array; if the old
// table was interleaved with a previous array, the
// previous array will not be repacked.
//
// If num_components is 0, the indicated name is simply
// removed from the type, without replacing it with
// anything else.
////////////////////////////////////////////////////////////////////
172
PointerTo< GeomVertexData > GeomVertexData::replace_column(InternalName *name, int num_components, GeomEnums::NumericType numeric_type, GeomEnums::Contents contents) const;
2044 6 output 0 4 2977 22 GeomVertexData::output 0 1 516 222
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
48
void GeomVertexData::output(ostream &out) const;
2045 5 write 0 4 2977 21 GeomVertexData::write 0 2 517 518 221
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::write
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
71
void GeomVertexData::write(ostream &out, int indent_level = (0)) const;
2046 15 describe_vertex 0 4 2977 31 GeomVertexData::describe_vertex 0 1 519 324
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::describe_vertex
// Access: Published
// Description: Writes a verbose, human-friendly description of the
// indicated vertex number.
////////////////////////////////////////////////////////////////////
66
void GeomVertexData::describe_vertex(ostream &out, int row) const;
2047 11 clear_cache 0 4 2977 27 GeomVertexData::clear_cache 0 1 520 556
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_cache
// Access: Published
// Description: Removes all of the previously-cached results of
// convert_to().
//
// This blows away the entire cache, upstream and
// downstream the pipeline. Use clear_cache_stage()
// instead if you only want to blow away the cache at
// the current stage and upstream.
////////////////////////////////////////////////////////////////////
39
void GeomVertexData::clear_cache(void);
2048 17 clear_cache_stage 0 4 2977 33 GeomVertexData::clear_cache_stage 0 1 521 608
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_cache_stage
// Access: Published
// Description: Removes all of the previously-cached results of
// convert_to(), at the current pipeline stage and
// upstream. Does not affect the downstream cache.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
45
void GeomVertexData::clear_cache_stage(void);
2049 14 get_class_type 0 4 2977 30 GeomVertexData::get_class_type 0 1 522 0
55
static TypeHandle GeomVertexData::get_class_type(void);
2050 22 AnimateVerticesRequest 0 4 2978 46 AnimateVerticesRequest::AnimateVerticesRequest 0 1 527 769
// Filename: animateVerticesRequest.I
// Created by: pratt (20Nov07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimateVerticesRequest::Constructor
// Access: Published
// Description: Create a new AnimateVerticesRequest.
////////////////////////////////////////////////////////////////////
88
inline AnimateVerticesRequest::AnimateVerticesRequest(GeomVertexData *geom_vertex_data);
2051 8 is_ready 0 4 2978 32 AnimateVerticesRequest::is_ready 0 1 528 322
////////////////////////////////////////////////////////////////////
// Function: AnimateVerticesRequest::is_ready
// Access: Published
// Description: Returns true if this request has completed, false if
// it is still pending.
////////////////////////////////////////////////////////////////////
57
inline bool AnimateVerticesRequest::is_ready(void) const;
2052 14 get_class_type 0 4 2978 38 AnimateVerticesRequest::get_class_type 0 1 529 0
63
static TypeHandle AnimateVerticesRequest::get_class_type(void);
2053 23 ~AnimateVerticesRequest 0 4 2978 47 AnimateVerticesRequest::~AnimateVerticesRequest 0 0 0
54
AnimateVerticesRequest::~AnimateVerticesRequest(void);
2054 14 get_class_type 0 4 2980 28 SavedContext::get_class_type 0 1 530 0
53
static TypeHandle SavedContext::get_class_type(void);
2055 13 ~SavedContext 0 4 2980 27 SavedContext::~SavedContext 0 0 0
34
SavedContext::~SavedContext(void);
2056 22 upcast_to_SavedContext 0 12 2982 37 BufferContext::upcast_to_SavedContext 0 1 536 41
upcast from BufferContext to SavedContext
58
SavedContext *BufferContext::upcast_to_SavedContext(void);
2057 25 downcast_to_BufferContext 0 12 2980 39 SavedContext::downcast_to_BufferContext 0 1 537 43
downcast from SavedContext to BufferContext
61
BufferContext *SavedContext::downcast_to_BufferContext(void);
2058 14 ~BufferContext 0 6 2982 29 BufferContext::~BufferContext 0 0 230
////////////////////////////////////////////////////////////////////
// Function: BufferContext::Destructor
// Access: Public, Virtual
// Description:
////////////////////////////////////////////////////////////////////
44
virtual BufferContext::~BufferContext(void);
2059 19 get_data_size_bytes 0 4 2982 34 BufferContext::get_data_size_bytes 0 1 531 1039
// Filename: bufferContext.I
// Created by: drose (16Mar06)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: BufferContext::get_data_size_bytes
// Access: Public
// Description: Returns the number of bytes previously reported for
// the data object. This is used to track changes in
// the data object's allocated size; if it changes from
// this, we need to create a new buffer. This is also
// used to track memory utilization in PStats.
////////////////////////////////////////////////////////////////////
67
inline unsigned int BufferContext::get_data_size_bytes(void) const;
2060 12 get_modified 0 4 2982 27 BufferContext::get_modified 0 1 532 320
////////////////////////////////////////////////////////////////////
// Function: BufferContext::get_modified
// Access: Public
// Description: Returns the UpdateSeq that was recorded the last time
// mark_loaded() was called.
////////////////////////////////////////////////////////////////////
57
inline UpdateSeq BufferContext::get_modified(void) const;
2061 10 get_active 0 4 2982 25 BufferContext::get_active 0 1 533 382
////////////////////////////////////////////////////////////////////
// Function: BufferContext::get_active
// Access: Public
// Description: Returns the active flag associated with this object.
// An object is considered "active" if it was rendered
// in the current frame.
////////////////////////////////////////////////////////////////////
50
inline bool BufferContext::get_active(void) const;
2062 12 get_resident 0 4 2982 27 BufferContext::get_resident 0 1 534 396
////////////////////////////////////////////////////////////////////
// Function: BufferContext::get_resident
// Access: Public
// Description: Returns the resident flag associated with this
// object. An object is considered "resident" if it
// appears to be resident in texture memory.
////////////////////////////////////////////////////////////////////
52
inline bool BufferContext::get_resident(void) const;
2063 14 get_class_type 0 4 2982 29 BufferContext::get_class_type 0 1 535 0
54
static TypeHandle BufferContext::get_class_type(void);
2064 27 upcast_to_CopyOnWriteObject 0 12 2983 42 GeomPrimitive::upcast_to_CopyOnWriteObject 0 1 610 46
upcast from GeomPrimitive to CopyOnWriteObject
68
CopyOnWriteObject *GeomPrimitive::upcast_to_CopyOnWriteObject(void);
2065 25 downcast_to_GeomPrimitive 0 12 2968 44 CopyOnWriteObject::downcast_to_GeomPrimitive 0 1 611 48
downcast from CopyOnWriteObject to GeomPrimitive
66
GeomPrimitive *CopyOnWriteObject::downcast_to_GeomPrimitive(void);
2066 19 upcast_to_GeomEnums 0 12 2983 34 GeomPrimitive::upcast_to_GeomEnums 0 1 612 38
upcast from GeomPrimitive to GeomEnums
52
GeomEnums *GeomPrimitive::upcast_to_GeomEnums(void);
2067 25 downcast_to_GeomPrimitive 0 12 2941 36 GeomEnums::downcast_to_GeomPrimitive 0 1 613 40
downcast from GeomEnums to GeomPrimitive
58
GeomPrimitive *GeomEnums::downcast_to_GeomPrimitive(void);
2068 10 operator = 0 4 2983 25 GeomPrimitive::operator = 0 1 538 478
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::Copy Assignment Operator
// Access: Published
// Description: The copy assignment operator is not pipeline-safe.
// This will completely obliterate all stages of the
// pipeline, so don't do it for a GeomPrimitive that is
// actively being used for rendering.
////////////////////////////////////////////////////////////////////
58
void GeomPrimitive::operator =(GeomPrimitive const &copy);
2069 14 ~GeomPrimitive 0 6 2983 29 GeomPrimitive::~GeomPrimitive 0 0 234
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
44
virtual GeomPrimitive::~GeomPrimitive(void);
2070 12 operator new 0 4 2983 27 GeomPrimitive::operator new 0 1 539 0
132
inline void *GeomPrimitive::operator new(unsigned int size);
inline void *GeomPrimitive::operator new(unsigned int size, void *ptr);
2071 15 operator delete 0 4 2983 30 GeomPrimitive::operator delete 0 0 0
114
inline void GeomPrimitive::operator delete(void *ptr);
inline void GeomPrimitive::operator delete(void *, void *);
2072 12 validate_ptr 0 4 2983 27 GeomPrimitive::validate_ptr 0 0 0
64
static inline bool GeomPrimitive::validate_ptr(void const *ptr);
2073 9 make_copy 0 6 2983 24 GeomPrimitive::make_copy 0 1 540 0
76
virtual PointerTo< GeomPrimitive > GeomPrimitive::make_copy(void) const = 0;
2074 18 get_primitive_type 0 6 2983 33 GeomPrimitive::get_primitive_type 0 1 541 0
83
virtual GeomEnums::PrimitiveType GeomPrimitive::get_primitive_type(void) const = 0;
2075 18 get_geom_rendering 0 6 2983 33 GeomPrimitive::get_geom_rendering 0 1 542 397
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_geom_rendering
// Access: Published, Virtual
// Description: Returns the set of GeomRendering bits that represent
// the rendering properties required to properly render
// this primitive.
////////////////////////////////////////////////////////////////////
58
virtual int GeomPrimitive::get_geom_rendering(void) const;
2076 15 get_shade_model 0 4 2983 30 GeomPrimitive::get_shade_model 0 1 543 905
// Filename: geomPrimitive.I
// Created by: drose (06Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_shade_model
// Access: Published
// Description: Returns the ShadeModel hint for this primitive.
// This is intended as a hint to the renderer to tell it
// how the per-vertex colors and normals are applied.
////////////////////////////////////////////////////////////////////
72
inline GeomEnums::ShadeModel GeomPrimitive::get_shade_model(void) const;
2077 15 set_shade_model 0 4 2983 30 GeomPrimitive::set_shade_model 0 1 544 865
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_shade_model
// Access: Published
// Description: Changes the ShadeModel hint for this primitive.
// This is different from the ShadeModelAttrib that
// might also be applied from the scene graph. This
// does not affect the shade model that is in effect
// when rendering, but rather serves as a hint to the
// renderer to tell it how the per-vertex colors and
// normals on this primitive are applied.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
78
inline void GeomPrimitive::set_shade_model(GeomEnums::ShadeModel shade_model);
2078 14 get_usage_hint 0 4 2983 29 GeomPrimitive::get_usage_hint 0 1 545 921
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_usage_hint
// Access: Published
// Description: Returns the usage hint for this primitive. See
// geomEnums.h. This has nothing to do with the usage
// hint associated with the primitive's vertices; this
// only specifies how often the vertex indices that
// define the primitive will be modified.
//
// It is perfectly legal (and, in fact, common) for a
// GeomPrimitive to have UH_static on itself, while
// referencing vertex data with UH_dynamic. This means
// that the vertices themselves will be animated, but
// the primitive will always reference the same set of
// vertices from the pool.
////////////////////////////////////////////////////////////////////
70
inline GeomEnums::UsageHint GeomPrimitive::get_usage_hint(void) const;
2079 14 set_usage_hint 0 4 2983 29 GeomPrimitive::set_usage_hint 0 1 546 512
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_usage_hint
// Access: Published
// Description: Changes the UsageHint hint for this primitive. See
// get_usage_hint().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
68
void GeomPrimitive::set_usage_hint(GeomEnums::UsageHint usage_hint);
2080 14 get_index_type 0 4 2983 29 GeomPrimitive::get_index_type 0 1 547 342
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_index_type
// Access: Public
// Description: Returns the numeric type of the index column.
// Normally, this will be either NT_uint16 or NT_uint32.
////////////////////////////////////////////////////////////////////
72
inline GeomEnums::NumericType GeomPrimitive::get_index_type(void) const;
2081 14 set_index_type 0 4 2983 29 GeomPrimitive::set_index_type 0 1 548 939
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_index_type
// Access: Published
// Description: Changes the numeric type of the index column.
// Normally, this should be either NT_uint16 or
// NT_uint32.
//
// The index type must be large enough to include all of
// the index values in the primitive. It may be
// automatically elevated, if necessary, to a larger
// index type, by a subsequent call to add_index() that
// names an index value that does not fit in the index
// type you specify.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
70
void GeomPrimitive::set_index_type(GeomEnums::NumericType index_type);
2082 12 is_composite 0 4 2983 27 GeomPrimitive::is_composite 0 1 549 816
// The following published methods are provided for safe, high-level
// iteration through the vertices and sub-primitives within the
// GeomPrimitive class. These work correctly regardless of the
// primitive type and without depending on knowledge about the way
// primitives' lengths are encoded. You can also safely build up a
// composite primitive using these methods.
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::is_composite
// Access: Published
// Description: Returns true if the primitive is a composite
// primitive such as a tristrip or trifan, or false if
// it is a fundamental primitive such as a collection of
// triangles.
////////////////////////////////////////////////////////////////////
52
inline bool GeomPrimitive::is_composite(void) const;
2083 10 is_indexed 0 4 2983 25 GeomPrimitive::is_indexed 0 1 550 683
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::is_indexed
// Access: Published
// Description: Returns true if the primitive is indexed, false
// otherwise. An indexed primitive stores a table of
// index numbers into its GeomVertexData, so that it can
// reference the vertices in any order. A nonindexed
// primitive, on the other hand, stores only the first
// vertex number and number of vertices used, so that it
// can only reference the vertices consecutively.
////////////////////////////////////////////////////////////////////
50
inline bool GeomPrimitive::is_indexed(void) const;
2084 16 get_first_vertex 0 4 2983 31 GeomPrimitive::get_first_vertex 0 1 551 536
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_first_vertex
// Access: Published
// Description: Returns the first vertex number referenced by the
// primitive. This is particularly important in the
// case of a nonindexed primitive, in which case
// get_first_vertex() and get_num_vertices() completely
// define the extent of the vertex range.
////////////////////////////////////////////////////////////////////
55
inline int GeomPrimitive::get_first_vertex(void) const;
2085 16 get_num_vertices 0 4 2983 31 GeomPrimitive::get_num_vertices 0 1 552 321
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_num_vertices
// Access: Published
// Description: Returns the number of vertices used by all the
// primitives in this object.
////////////////////////////////////////////////////////////////////
55
inline int GeomPrimitive::get_num_vertices(void) const;
2086 10 get_vertex 0 4 2983 25 GeomPrimitive::get_vertex 0 1 553 267
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_vertex
// Access: Published
// Description: Returns the ith vertex index in the table.
////////////////////////////////////////////////////////////////////
50
inline int GeomPrimitive::get_vertex(int i) const;
2087 10 add_vertex 0 4 2983 25 GeomPrimitive::add_vertex 0 1 554 780
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::add_vertex
// Access: Published
// Description: Adds the indicated vertex to the list of vertex
// indices used by the graphics primitive type. To
// define a primitive, you must call add_vertex() for
// each vertex of the new primitive, and then call
// close_primitive() after you have specified the last
// vertex of each primitive.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
43
void GeomPrimitive::add_vertex(int vertex);
2088 12 add_vertices 0 4 2983 27 GeomPrimitive::add_vertices 0 3 555 556 557 769
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::add_vertices
// Access: Public
// Description: Adds several vertices in a row.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::add_vertices
// Access: Public
// Description: Adds several vertices in a row.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::add_vertices
// Access: Public
// Description: Adds several vertices in a row.
////////////////////////////////////////////////////////////////////
194
inline void GeomPrimitive::add_vertices(int v1, int v2);
inline void GeomPrimitive::add_vertices(int v1, int v2, int v3);
inline void GeomPrimitive::add_vertices(int v1, int v2, int v3, int v4);
2089 24 add_consecutive_vertices 0 4 2983 39 GeomPrimitive::add_consecutive_vertices 0 1 558 531
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::add_consecutive_vertices
// Access: Published
// Description: Adds a consecutive sequence of vertices, beginning at
// start, to the primitive.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
74
void GeomPrimitive::add_consecutive_vertices(int start, int num_vertices);
2090 17 add_next_vertices 0 4 2983 32 GeomPrimitive::add_next_vertices 0 1 559 621
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::add_next_vertices
// Access: Published
// Description: Adds the next n vertices in sequence, beginning from
// the last vertex added to the primitive + 1.
//
// This is most useful when you are building up a
// primitive and a GeomVertexData at the same time, and
// you just want the primitive to reference the first n
// vertices from the data, then the next n, and so on.
////////////////////////////////////////////////////////////////////
56
void GeomPrimitive::add_next_vertices(int num_vertices);
2091 20 reserve_num_vertices 0 4 2983 35 GeomPrimitive::reserve_num_vertices 0 1 560 1259
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::reserve_num_vertices
// Access: Published
// Description: This ensures that enough memory space for n vertices
// is allocated, so that you may increase the number of
// vertices to n without causing a new memory
// allocation. This is a performance optimization only;
// it is especially useful when you know ahead of time
// that you will be adding n vertices to the primitive.
//
// Note that the total you specify here should also
// include implicit vertices which may be added at each
// close_primitive() call, according to
// get_num_unused_vertices_per_primitive().
//
// Note also that making this call will implicitly make
// the primitive indexed if it is not already, which
// could result in a performance *penalty*. If you
// would prefer not to lose the nonindexed nature of
// your existing GeomPrimitives, check is_indexed()
// before making this call.
////////////////////////////////////////////////////////////////////
59
void GeomPrimitive::reserve_num_vertices(int num_vertices);
2092 15 close_primitive 0 4 2983 30 GeomPrimitive::close_primitive 0 1 561 654
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::close_primitive
// Access: Published
// Description: Indicates that the previous n calls to add_vertex(),
// since the last call to close_primitive(), have fully
// defined a new primitive. Returns true if successful,
// false otherwise.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
42
bool GeomPrimitive::close_primitive(void);
2093 14 clear_vertices 0 4 2983 29 GeomPrimitive::clear_vertices 0 1 562 527
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::clear_vertices
// Access: Published
// Description: Removes all of the vertices and primitives from the
// object, so they can be re-added.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
41
void GeomPrimitive::clear_vertices(void);
2094 15 offset_vertices 0 4 2983 30 GeomPrimitive::offset_vertices 0 2 563 564 1172
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::offset_vertices
// Access: Published
// Description: Adds the indicated offset to all vertices used by the
// primitive.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::offset_vertices
// Access: Published
// Description: Adds the indicated offset to the indicated segment
// of vertices used by the primitive. Unlike the
// other version of offset_vertices, this makes the
// geometry indexed if it isn't already.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
125
void GeomPrimitive::offset_vertices(int offset);
void GeomPrimitive::offset_vertices(int offset, int begin_row, int end_row);
2095 15 make_nonindexed 0 4 2983 30 GeomPrimitive::make_nonindexed 0 1 565 390
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::make_nonindexed
// Access: Published
// Description: Converts the primitive from indexed to nonindexed by
// duplicating vertices as necessary into the indicated
// dest GeomVertexData.
////////////////////////////////////////////////////////////////////
88
void GeomPrimitive::make_nonindexed(GeomVertexData *dest, GeomVertexData const *source);
2096 13 pack_vertices 0 4 2983 28 GeomPrimitive::pack_vertices 0 1 566 383
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::pack_vertices
// Access: Published
// Description: Packs the vertices used by the primitive from the
// indicated source array onto the end of the indicated
// destination array.
////////////////////////////////////////////////////////////////////
86
void GeomPrimitive::pack_vertices(GeomVertexData *dest, GeomVertexData const *source);
2097 12 make_indexed 0 4 2983 27 GeomPrimitive::make_indexed 0 1 567 817
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::make_indexed
// Access: Published
// Description: Converts the primitive from nonindexed form to
// indexed form. This will simply create an index table
// that is numbered consecutively from
// get_first_vertex(); it does not automatically
// collapse together identical vertices that may have
// been split apart by a previous call to
// make_nonindexed().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
39
void GeomPrimitive::make_indexed(void);
2098 18 get_num_primitives 0 4 2983 33 GeomPrimitive::get_num_primitives 0 1 568 372
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_num_primitives
// Access: Published
// Description: Returns the number of individual primitives stored
// within this object. All primitives are the same
// type.
////////////////////////////////////////////////////////////////////
57
inline int GeomPrimitive::get_num_primitives(void) const;
2099 19 get_primitive_start 0 4 2983 34 GeomPrimitive::get_primitive_start 0 1 569 800
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_primitive_start
// Access: Published
// Description: Returns the element within the _vertices list at which
// the nth primitive starts.
//
// If i is one more than the highest valid primitive
// vertex, the return value will be one more than the
// last valid vertex. Thus, it is generally true that
// the vertices used by a particular primitive i are the
// set get_primitive_start(n) <= vi <
// get_primitive_start(n + 1) (although this range also
// includes the unused vertices between primitives).
////////////////////////////////////////////////////////////////////
52
int GeomPrimitive::get_primitive_start(int n) const;
2100 17 get_primitive_end 0 4 2983 32 GeomPrimitive::get_primitive_end 0 1 570 408
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_primitive_end
// Access: Published
// Description: Returns the element within the _vertices list at which
// the nth primitive ends. This is one past the last
// valid element for the nth primitive.
////////////////////////////////////////////////////////////////////
50
int GeomPrimitive::get_primitive_end(int n) const;
2101 26 get_primitive_num_vertices 0 4 2983 41 GeomPrimitive::get_primitive_num_vertices 0 1 571 406
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_primitive_num_vertices
// Access: Published
// Description: Returns the number of vertices used by the nth
// primitive. This is the same thing as
// get_primitive_end(n) - get_primitive_start(n).
////////////////////////////////////////////////////////////////////
59
int GeomPrimitive::get_primitive_num_vertices(int n) const;
2102 13 get_num_faces 0 4 2983 28 GeomPrimitive::get_num_faces 0 1 572 393
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_num_faces
// Access: Published
// Description: Returns the number of triangles or other fundamental
// type (such as line segments) represented by all the
// primitives in this object.
////////////////////////////////////////////////////////////////////
52
inline int GeomPrimitive::get_num_faces(void) const;
2103 23 get_primitive_num_faces 0 4 2983 38 GeomPrimitive::get_primitive_num_faces 0 1 573 402
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_primitive_num_faces
// Access: Published
// Description: Returns the number of triangles or other fundamental
// type (such as line segments) represented by the nth
// primitive in this object.
////////////////////////////////////////////////////////////////////
63
inline int GeomPrimitive::get_primitive_num_faces(int n) const;
2104 14 get_min_vertex 0 4 2983 29 GeomPrimitive::get_min_vertex 0 1 574 328
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_min_vertex
// Access: Published
// Description: Returns the minimum vertex index number used by all
// the primitives in this object.
////////////////////////////////////////////////////////////////////
53
inline int GeomPrimitive::get_min_vertex(void) const;
2105 24 get_primitive_min_vertex 0 4 2983 39 GeomPrimitive::get_primitive_min_vertex 0 1 575 337
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_primitive_min_vertex
// Access: Published
// Description: Returns the minimum vertex index number used by the
// nth primitive in this object.
////////////////////////////////////////////////////////////////////
57
int GeomPrimitive::get_primitive_min_vertex(int n) const;
2106 14 get_max_vertex 0 4 2983 29 GeomPrimitive::get_max_vertex 0 1 576 328
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_max_vertex
// Access: Published
// Description: Returns the maximum vertex index number used by all
// the primitives in this object.
////////////////////////////////////////////////////////////////////
53
inline int GeomPrimitive::get_max_vertex(void) const;
2107 24 get_primitive_max_vertex 0 4 2983 39 GeomPrimitive::get_primitive_max_vertex 0 1 577 337
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_primitive_max_vertex
// Access: Published
// Description: Returns the maximum vertex index number used by the
// nth primitive in this object.
////////////////////////////////////////////////////////////////////
57
int GeomPrimitive::get_primitive_max_vertex(int n) const;
2108 9 decompose 0 4 2983 24 GeomPrimitive::decompose 0 1 578 795
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::decompose
// Access: Published
// Description: Decomposes a complex primitive type into a simpler
// primitive type, for instance triangle strips to
// triangles, and returns a pointer to the new primitive
// definition. If the decomposition cannot be
// performed, this might return the original object.
//
// This method is useful for application code that wants
// to iterate through the set of triangles on the
// primitive without having to write handlers for each
// possible kind of primitive type.
////////////////////////////////////////////////////////////////////
69
ConstPointerTo< GeomPrimitive > GeomPrimitive::decompose(void) const;
2109 6 rotate 0 4 2983 21 GeomPrimitive::rotate 0 1 579 739
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::rotate
// Access: Published
// Description: Returns a new primitive with the shade_model reversed
// (if it is flat shaded), if possible. If the
// primitive type cannot be rotated, returns the
// original primitive, unrotated.
//
// If the current shade_model indicates
// flat_vertex_last, this should bring the last vertex
// to the first position; if it indicates
// flat_vertex_first, this should bring the first vertex
// to the last position.
////////////////////////////////////////////////////////////////////
66
ConstPointerTo< GeomPrimitive > GeomPrimitive::rotate(void) const;
2110 10 doubleside 0 4 2983 25 GeomPrimitive::doubleside 0 1 580 842
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::doubleside
// Access: Published
// Description: Duplicates triangles in the primitive so that each
// triangle is back-to-back with another triangle facing
// in the opposite direction. Note that this doesn't
// affect vertex normals, so this operation alone won't
// work in the presence of lighting (but see
// SceneGraphReducer::doubleside()).
//
// Also see CullFaceAttrib, which can enable rendering
// of both sides of a triangle without having to
// duplicate it (but which doesn't necessarily work in
// the presence of lighting).
////////////////////////////////////////////////////////////////////
70
ConstPointerTo< GeomPrimitive > GeomPrimitive::doubleside(void) const;
2111 7 reverse 0 4 2983 22 GeomPrimitive::reverse 0 1 581 823
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::reverse
// Access: Published
// Description: Reverses the winding order in the primitive so that
// each triangle is facing in the opposite direction it
// was originally. Note that this doesn't affect vertex
// normals, so this operation alone won't work in the
// presence of lighting (but see
// SceneGraphReducer::reverse()).
//
// Also see CullFaceAttrib, which can change the visible
// direction of a triangle without having to duplicate
// it (but which doesn't necessarily work in the
// presence of lighting).
////////////////////////////////////////////////////////////////////
67
ConstPointerTo< GeomPrimitive > GeomPrimitive::reverse(void) const;
2112 17 match_shade_model 0 4 2983 32 GeomPrimitive::match_shade_model 0 1 582 672
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::match_shade_model
// Access: Published
// Description: Returns a new primitive that is compatible with the
// indicated shade model, if possible, or NULL if this
// is not possible.
//
// In most cases, this will return either NULL or the
// original primitive. In the case of a
// SM_flat_first_vertex vs. a SM_flat_last_vertex (or
// vice-versa), however, it will return a rotated
// primitive.
////////////////////////////////////////////////////////////////////
106
ConstPointerTo< GeomPrimitive > GeomPrimitive::match_shade_model(GeomEnums::ShadeModel shade_model) const;
2113 11 make_points 0 4 2983 26 GeomPrimitive::make_points 0 1 583 519
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::make_points
// Access: Published
// Description: Returns a new GeomPoints primitive that represents
// each of the vertices in the original primitive,
// rendered exactly once. If the original primitive is
// already a GeomPoints primitive, returns the original
// primitive unchanged.
////////////////////////////////////////////////////////////////////
71
ConstPointerTo< GeomPrimitive > GeomPrimitive::make_points(void) const;
2114 12 make_patches 0 4 2983 27 GeomPrimitive::make_patches 0 1 584 836
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::make_patches
// Access: Published
// Description: Decomposes a complex primitive type into a simpler
// primitive type, for instance triangle strips to
// triangles, puts these in a new GeomPatches objectand returns a pointer to the new primitive
// definition. If the decomposition cannot be
// performed, this might return the original object.
//
// This method is useful for application code that wants
// to iterate through the set of triangles on the
// primitive without having to write handlers for each
// possible kind of primitive type.
////////////////////////////////////////////////////////////////////
72
ConstPointerTo< GeomPrimitive > GeomPrimitive::make_patches(void) const;
2115 13 get_num_bytes 0 4 2983 28 GeomPrimitive::get_num_bytes 0 1 585 322
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_num_bytes
// Access: Published
// Description: Returns the number of bytes consumed by the primitive
// and its index table(s).
////////////////////////////////////////////////////////////////////
45
int GeomPrimitive::get_num_bytes(void) const;
2116 19 get_data_size_bytes 0 4 2983 34 GeomPrimitive::get_data_size_bytes 0 1 586 308
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_data_size_bytes
// Access: Published
// Description: Returns the number of bytes stored in the vertices
// array.
////////////////////////////////////////////////////////////////////
58
inline int GeomPrimitive::get_data_size_bytes(void) const;
2117 12 get_modified 0 4 2983 27 GeomPrimitive::get_modified 0 1 587 372
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the vertex index array is
// modified.
////////////////////////////////////////////////////////////////////
57
inline UpdateSeq GeomPrimitive::get_modified(void) const;
2118 16 request_resident 0 4 2983 31 GeomPrimitive::request_resident 0 1 588 451
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::request_resident
// Access: Published
// Description: Returns true if the primitive data is currently
// resident in memory. If this returns false, the
// primitive data will be brought back into memory
// shortly; try again later.
////////////////////////////////////////////////////////////////////
49
bool GeomPrimitive::request_resident(void) const;
2119 11 check_valid 0 4 2983 26 GeomPrimitive::check_valid 0 1 589 455
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::check_valid
// Access: Published
// Description: Verifies that the primitive only references vertices
// that actually exist within the indicated
// GeomVertexData. Returns true if the primitive
// appears to be valid, false otherwise.
////////////////////////////////////////////////////////////////////
80
inline bool GeomPrimitive::check_valid(GeomVertexData const *vertex_data) const;
2120 6 output 0 6 2983 21 GeomPrimitive::output 0 1 590 230
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::output
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
55
virtual void GeomPrimitive::output(ostream &out) const;
2121 5 write 0 6 2983 20 GeomPrimitive::write 0 1 591 229
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::write
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
72
virtual void GeomPrimitive::write(ostream &out, int indent_level) const;
2122 12 get_vertices 0 4 2983 27 GeomPrimitive::get_vertices 0 1 592 1361
// These public methods are not intended for high-level usage. They
// are public so that low-level code that absolutely needs fast
// access to the primitive data can get to it, but using them
// requires knowledge about how the component primitives are encoded
// within the GeomPrimitive class, and it's easy to screw something
// up. Also, if too many code samples depend on this internal
// knowledge, it may make it difficult to extend this class later.
// It is recommended that application-level code use the above
// interfaces instead.
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_vertices
// Access: Published
// Description: Returns a const pointer to the vertex index array so
// application code can read it directly. This might
// return NULL if the primitive is nonindexed. Do not
// attempt to modify the returned array; use
// modify_vertices() or set_vertices() for this.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
85
inline ConstPointerTo< GeomVertexArrayData > GeomPrimitive::get_vertices(void) const;
2123 15 modify_vertices 0 4 2983 30 GeomPrimitive::modify_vertices 0 2 593 594 1321
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::modify_vertices
// Access: Published
// Description: Returns a modifiable pointer to the vertex index
// list, so application code can directly fiddle with
// this data. Use with caution, since there are no
// checks that the data will be left in a stable state.
//
// If this is called on a nonindexed primitive, it will
// implicitly be converted to an indexed primitive.
//
// If num_vertices is not -1, it specifies an artificial
// limit to the number of vertices in the array.
// Otherwise, all of the vertices in the array will be
// used.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
89
PointerTo< GeomVertexArrayData > GeomPrimitive::modify_vertices(int num_vertices = (-1));
2124 12 set_vertices 0 4 2983 27 GeomPrimitive::set_vertices 0 2 595 596 1115
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_vertices
// Access: Published
// Description: Completely replaces the vertex index list with a new
// table. Chances are good that you should also replace
// the ends list with set_ends() at the same time.
//
// If num_vertices is not -1, it specifies an artificial
// limit to the number of vertices in the array.
// Otherwise, all of the vertices in the array will be
// used.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
95
void GeomPrimitive::set_vertices(GeomVertexArrayData const *vertices, int num_vertices = (-1));
2125 23 set_nonindexed_vertices 0 4 2983 38 GeomPrimitive::set_nonindexed_vertices 0 1 597 808
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_nonindexed_vertices
// Access: Published
// Description: Sets the primitive up as a nonindexed primitive,
// using the indicated vertex range.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
80
void GeomPrimitive::set_nonindexed_vertices(int first_vertex, int num_vertices);
2126 16 get_index_stride 0 4 2983 31 GeomPrimitive::get_index_stride 0 1 598 642
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_index_stride
// Access: Published
// Description: A convenience function to return the gap between
// successive index numbers, in bytes, of the index
// data.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
55
inline int GeomPrimitive::get_index_stride(void) const;
2127 8 get_ends 0 4 2983 23 GeomPrimitive::get_ends 0 1 599 936
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_ends
// Access: Published
// Description: Returns a const pointer to the primitive ends
// array so application code can read it directly. Do
// not attempt to modify the returned array; use
// modify_ends() or set_ends() for this.
//
// Note that simple primitive types, like triangles, do
// not have a ends array: since all the primitives
// have the same number of vertices, it is not needed.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
70
inline ConstPointerToArray< int > GeomPrimitive::get_ends(void) const;
2128 11 modify_ends 0 4 2983 26 GeomPrimitive::modify_ends 0 1 600 1159
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::modify_ends
// Access: Published
// Description: Returns a modifiable pointer to the primitive ends
// array, so application code can directly fiddle with
// this data. Use with caution, since there are no
// checks that the data will be left in a stable state.
//
// Note that simple primitive types, like triangles, do
// not have a ends array: since all the primitives
// have the same number of vertices, it is not needed.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
55
PointerToArray< int > GeomPrimitive::modify_ends(void);
2129 8 set_ends 0 4 2983 23 GeomPrimitive::set_ends 0 1 601 1117
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_ends
// Access: Published
// Description: Completely replaces the primitive ends array with
// a new table. Chances are good that you should also
// replace the vertices list with set_vertices() at the
// same time.
//
// Note that simple primitive types, like triangles, do
// not have a ends array: since all the primitives
// have the same number of vertices, it is not needed.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
62
void GeomPrimitive::set_ends(ConstPointerToArray< int > ends);
2130 8 get_mins 0 4 2983 23 GeomPrimitive::get_mins 0 1 602 827
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_mins
// Access: Published
// Description: Returns a const pointer to the primitive mins
// array so application code can read it directly. Do
// not attempt to modify the returned array; use
// set_minmax() for this.
//
// Note that simple primitive types, like triangles, do
// not have a mins array.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
81
inline ConstPointerTo< GeomVertexArrayData > GeomPrimitive::get_mins(void) const;
2131 8 get_maxs 0 4 2983 23 GeomPrimitive::get_maxs 0 1 603 818
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_maxs
// Access: Published
// Description: Returns a const pointer to the primitive maxs
// array so application code can read it directly. Do
// not attempt to modify the returned array; use
// set_minmax().
//
// Note that simple primitive types, like triangles, do
// not have a maxs array.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
81
inline ConstPointerTo< GeomVertexArrayData > GeomPrimitive::get_maxs(void) const;
2132 10 set_minmax 0 4 2983 25 GeomPrimitive::set_minmax 0 1 604 1093
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_minmax
// Access: Published
// Description: Explicitly specifies the minimum and maximum
// vertices, as well as the lists of per-component min
// and max.
//
// Use this method with extreme caution. It's generally
// better to let the GeomPrimitive compute these
// explicitly, unless for some reason you can do it
// faster and you absolutely need the speed improvement.
//
// Note that any modification to the vertex array will
// normally cause this to be recomputed, unless you set
// it immediately again.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
117
void GeomPrimitive::set_minmax(int min_vertex, int max_vertex, GeomVertexArrayData *mins, GeomVertexArrayData *maxs);
2133 12 clear_minmax 0 4 2983 27 GeomPrimitive::clear_minmax 0 1 605 643
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::clear_minmax
// Access: Published
// Description: Undoes a previous call to set_minmax(), and allows
// the minimum and maximum values to be recomputed
// normally.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
39
void GeomPrimitive::clear_minmax(void);
2134 30 get_num_vertices_per_primitive 0 6 2983 45 GeomPrimitive::get_num_vertices_per_primitive 0 1 606 948
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_num_vertices_per_primitive
// Access: Published, Virtual
// Description: If the primitive type is a simple type in which all
// primitives have the same number of vertices, like
// triangles, returns the number of vertices per
// primitive. If the primitive type is a more complex
// type in which different primitives might have
// different numbers of vertices, for instance a
// triangle strip, returns 0.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
70
virtual int GeomPrimitive::get_num_vertices_per_primitive(void) const;
2135 34 get_min_num_vertices_per_primitive 0 6 2983 49 GeomPrimitive::get_min_num_vertices_per_primitive 0 1 607 654
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_min_num_vertices_per_primitive
// Access: Published, Virtual
// Description: Returns the minimum number of vertices that must be
// added before close_primitive() may legally be called.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
74
virtual int GeomPrimitive::get_min_num_vertices_per_primitive(void) const;
2136 37 get_num_unused_vertices_per_primitive 0 6 2983 52 GeomPrimitive::get_num_unused_vertices_per_primitive 0 1 608 845
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_num_unused_vertices_per_primitive
// Access: Published, Virtual
// Description: Returns the number of vertices that are added between
// primitives that aren't, strictly speaking, part of
// the primitives themselves. This is used, for
// instance, to define degenerate triangles to connect
// otherwise disconnected triangle strips.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
////////////////////////////////////////////////////////////////////
77
virtual int GeomPrimitive::get_num_unused_vertices_per_primitive(void) const;
2137 14 get_class_type 0 4 2983 29 GeomPrimitive::get_class_type 0 1 609 0
54
static TypeHandle GeomPrimitive::get_class_type(void);
2138 12 TextureStage 0 4 2984 26 TextureStage::TextureStage 0 2 614 615 1028
// Filename: textureStage.I
// Created by: masad (15Jul04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureStage::Copy Constructor
// Access: Published
// Description: Initialize the texture stage from other
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureStage::Constructor
// Access: Published
// Description: Initialize the texture stage at construction
////////////////////////////////////////////////////////////////////
116
TextureStage::TextureStage(basic_string< char > const &name);
inline TextureStage::TextureStage(TextureStage &copy);
2139 10 operator = 0 4 2984 24 TextureStage::operator = 0 1 616 262
////////////////////////////////////////////////////////////////////
// Function: TextureStage::operator =
// Access: Published
// Description: just copy the members of other to this
////////////////////////////////////////////////////////////////////
56
void TextureStage::operator =(TextureStage const &copy);
2140 8 set_name 0 4 2984 22 TextureStage::set_name 0 1 617 260
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_name
// Access: Published
// Description: Changes the name of this texture stage
////////////////////////////////////////////////////////////////////
69
inline void TextureStage::set_name(basic_string< char > const &name);
2141 8 get_name 0 4 2984 22 TextureStage::get_name 0 1 618 260
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_name
// Access: Published
// Description: Returns the name of this texture stage
////////////////////////////////////////////////////////////////////
70
inline basic_string< char > const &TextureStage::get_name(void) const;
2142 8 set_sort 0 4 2984 22 TextureStage::set_sort 0 1 619 768
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_sort
// Access: Published
// Description: Changes the order in which the texture associated
// with this stage is rendered relative to the other
// texture stages. When geometry is rendered with
// multiple textures, the textures are rendered in order
// from the lowest sort number to the highest sort
// number.
//
// Also see set_priority(), which is used to select the
// most important textures for rendering when some must
// be omitted because of hardware limitations.
////////////////////////////////////////////////////////////////////
45
inline void TextureStage::set_sort(int sort);
2143 8 get_sort 0 4 2984 22 TextureStage::get_sort 0 1 620 267
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_sort
// Access: Published
// Description: Returns the sort order of this texture stage.
////////////////////////////////////////////////////////////////////
46
inline int TextureStage::get_sort(void) const;
2144 12 set_priority 0 4 2984 26 TextureStage::set_priority 0 1 621 919
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_priority
// Access: Published
// Description: Changes the relative importance of the texture
// associated with this stage relative to the other
// texture stages that are applied simultaneously.
//
// This is unrelated to set_sort(), which controls the
// order in which multiple textures are applied. The
// priority number is used to decide which of the
// requested textures are to be selected for rendering
// when more textures are requested than the hardware
// will support. The highest-priority n textures are
// selected for rendering, and then rendered in order by
// their sort factor.
////////////////////////////////////////////////////////////////////
53
inline void TextureStage::set_priority(int priority);
2145 12 get_priority 0 4 2984 26 TextureStage::get_priority 0 1 622 406
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_priority
// Access: Published
// Description: Returns the priority associated with this stage.
//
// This is specially helpful for cards that do not
// support more than n stages of multi-texturing.
////////////////////////////////////////////////////////////////////
50
inline int TextureStage::get_priority(void) const;
2146 17 set_texcoord_name 0 4 2984 31 TextureStage::set_texcoord_name 0 2 623 624 826
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_texcoord_name
// Access: Published
// Description: Indicate which set of UV's this texture stage will
// use. Geometry may have any number of associated UV
// sets, each of which must have a unique name.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_texcoord_name
// Access: Published
// Description: Indicate which set of UV's this texture stage will
// use. Geometry may have any number of associated UV
// sets, each of which must have a unique name.
////////////////////////////////////////////////////////////////////
152
inline void TextureStage::set_texcoord_name(InternalName *name);
inline void TextureStage::set_texcoord_name(basic_string< char > const &texcoord_name);
2147 17 get_texcoord_name 0 4 2984 31 TextureStage::get_texcoord_name 0 1 625 316
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_texcoord_name
// Access: Published
// Description: See set_texcoord_name. The default is
// InternalName::get_texcoord().
////////////////////////////////////////////////////////////////////
65
inline InternalName *TextureStage::get_texcoord_name(void) const;
2148 16 get_tangent_name 0 4 2984 30 TextureStage::get_tangent_name 0 1 626 403
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_tangent_name
// Access: Published
// Description: Returns the set of tangents this texture stage will
// use. This is the same as get_texcoord_name(),
// except that the first part is "tangent".
////////////////////////////////////////////////////////////////////
64
inline InternalName *TextureStage::get_tangent_name(void) const;
2149 17 get_binormal_name 0 4 2984 31 TextureStage::get_binormal_name 0 1 627 406
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_binormal_name
// Access: Published
// Description: Returns the set of binormals this texture stage will
// use. This is the same as get_binormal_name(),
// except that the first part is "binormal".
////////////////////////////////////////////////////////////////////
65
inline InternalName *TextureStage::get_binormal_name(void) const;
2150 8 set_mode 0 4 2984 22 TextureStage::set_mode 0 1 628 256
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_mode
// Access: Published
// Description: Set the mode of this texture stage
////////////////////////////////////////////////////////////////////
60
inline void TextureStage::set_mode(TextureStage::Mode mode);
2151 8 get_mode 0 4 2984 22 TextureStage::get_mode 0 1 629 251
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_mode
// Access: Published
// Description: Return the mode of this stage
////////////////////////////////////////////////////////////////////
61
inline TextureStage::Mode TextureStage::get_mode(void) const;
2152 17 is_fixed_function 0 4 2984 31 TextureStage::is_fixed_function 0 1 630 416
////////////////////////////////////////////////////////////////////
// Function: TextureStage::is_fixed_function
// Access: Published
// Description: Returns true if the TextureStage is relevant to
// the classic fixed function pipeline. This excludes
// texture stages such as normal mapping and the like.
////////////////////////////////////////////////////////////////////
56
inline bool TextureStage::is_fixed_function(void) const;
2153 9 set_color 0 4 2984 23 TextureStage::set_color 0 1 631 251
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_color
// Access: Published
// Description: Set the color for this stage
////////////////////////////////////////////////////////////////////
61
inline void TextureStage::set_color(LVecBase4f const &color);
2154 9 get_color 0 4 2984 23 TextureStage::get_color 0 1 632 254
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_color
// Access: Published
// Description: return the color for this stage
////////////////////////////////////////////////////////////////////
54
inline LVecBase4f TextureStage::get_color(void) const;
2155 13 set_rgb_scale 0 4 2984 27 TextureStage::set_rgb_scale 0 1 633 490
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_rgb_scale
// Access: Published
// Description: Sets an additional factor that will scale all three
// r, g, b components after the texture has been
// applied. This is used only when the mode is
// CM_combine.
//
// The only legal values are 1, 2, or 4.
////////////////////////////////////////////////////////////////////
55
inline void TextureStage::set_rgb_scale(int rgb_scale);
2156 13 get_rgb_scale 0 4 2984 27 TextureStage::get_rgb_scale 0 1 634 247
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_rgb_scale
// Access: Published
// Description: See set_rgb_scale().
////////////////////////////////////////////////////////////////////
51
inline int TextureStage::get_rgb_scale(void) const;
2157 15 set_alpha_scale 0 4 2984 29 TextureStage::set_alpha_scale 0 1 635 465
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_alpha_scale
// Access: Published
// Description: Sets an additional factor that will scale the
// alpha component after the texture has been applied.
// This is used only when the mode is CM_combine.
//
// The only legal values are 1, 2, or 4.
////////////////////////////////////////////////////////////////////
59
inline void TextureStage::set_alpha_scale(int alpha_scale);
2158 15 get_alpha_scale 0 4 2984 29 TextureStage::get_alpha_scale 0 1 636 251
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_alpha_scale
// Access: Published
// Description: See set_alpha_scale().
////////////////////////////////////////////////////////////////////
53
inline int TextureStage::get_alpha_scale(void) const;
2159 16 set_saved_result 0 4 2984 30 TextureStage::set_saved_result 0 1 637 825
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_saved_result
// Access: Published
// Description: Sets the saved_result flag. When this is true, the
// output of this stage will be supplied as the
// "last_saved_result" source for any future stages,
// until the next TextureStage with a saved_result set
// true is encountered.
//
// This can be used to reuse the results of this texture
// stage as input to more than one stage later in the
// pipeline.
//
// The last texture in the pipeline (the one with the
// highest sort value) should not have this flag set.
////////////////////////////////////////////////////////////////////
62
inline void TextureStage::set_saved_result(bool saved_result);
2160 16 get_saved_result 0 4 2984 30 TextureStage::get_saved_result 0 1 638 324
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_saved_result
// Access: Published
// Description: Returns the current setting of the saved_result flag.
// See set_saved_result().
////////////////////////////////////////////////////////////////////
55
inline bool TextureStage::get_saved_result(void) const;
2161 19 set_tex_view_offset 0 4 2984 33 TextureStage::set_tex_view_offset 0 1 639 654
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_tex_view_offset
// Access: Published
// Description: Sets the tex_view_offset value. This is used only
// when a special multiview texture is bound to the
// TextureStage, and it selects the particular view of
// the texture that is to be used.
//
// This value is added to the similar parameter on
// DisplayRegion to derive the final texture view index
// that is selected for rendering.
////////////////////////////////////////////////////////////////////
67
inline void TextureStage::set_tex_view_offset(int tex_view_offset);
2162 19 get_tex_view_offset 0 4 2984 33 TextureStage::get_tex_view_offset 0 1 640 328
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_tex_view_offset
// Access: Published
// Description: Returns the current setting of the tex_view_offset.
// See set_tex_view_offset().
////////////////////////////////////////////////////////////////////
57
inline int TextureStage::get_tex_view_offset(void) const;
2163 15 set_combine_rgb 0 4 2984 29 TextureStage::set_combine_rgb 0 3 641 642 643 1213
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_combine_rgb
// Access: Published
// Description: Specifies any of the CombineMode values that
// represent a one-parameter operation. Specifically,
// this is CM_replace only.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_combine_rgb
// Access: Published
// Description: Specifies any of the CombineMode values that
// represent a two-parameter operation. Specifically,
// this is everything except for CM_replace and
// CM_interpolate.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_combine_rgb
// Access: Published
// Description: Specifies any of the CombineMode values that
// represent a one-parameter operation. Specifically,
// this is CM_interpolate only.
////////////////////////////////////////////////////////////////////
680
inline void TextureStage::set_combine_rgb(TextureStage::CombineMode mode, TextureStage::CombineSource source0, TextureStage::CombineOperand operand0);
inline void TextureStage::set_combine_rgb(TextureStage::CombineMode mode, TextureStage::CombineSource source0, TextureStage::CombineOperand operand0, TextureStage::CombineSource source1, TextureStage::CombineOperand operand1);
inline void TextureStage::set_combine_rgb(TextureStage::CombineMode mode, TextureStage::CombineSource source0, TextureStage::CombineOperand operand0, TextureStage::CombineSource source1, TextureStage::CombineOperand operand1, TextureStage::CombineSource source2, TextureStage::CombineOperand operand2);
2164 20 get_combine_rgb_mode 0 4 2984 34 TextureStage::get_combine_rgb_mode 0 1 644 258
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_mode
// Access: Published
// Description: Get the combine_rgb_mode
////////////////////////////////////////////////////////////////////
80
inline TextureStage::CombineMode TextureStage::get_combine_rgb_mode(void) const;
2165 28 get_num_combine_rgb_operands 0 4 2984 42 TextureStage::get_num_combine_rgb_operands 0 1 645 401
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_num_combine_rgb_operands
// Access: Published
// Description: Returns the number of meaningful operands that may be
// retrieved via get_combine_rgb_sourceN() and
// get_combine_rgb_operandN().
////////////////////////////////////////////////////////////////////
66
inline int TextureStage::get_num_combine_rgb_operands(void) const;
2166 23 get_combine_rgb_source0 0 4 2984 37 TextureStage::get_combine_rgb_source0 0 1 646 268
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_source0
// Access: Published
// Description: Get source0 of combine_rgb_mode
////////////////////////////////////////////////////////////////////
85
inline TextureStage::CombineSource TextureStage::get_combine_rgb_source0(void) const;
2167 24 get_combine_rgb_operand0 0 4 2984 38 TextureStage::get_combine_rgb_operand0 0 1 647 270
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_operand0
// Access: Published
// Description: Get operand0 of combine_rgb_mode
////////////////////////////////////////////////////////////////////
87
inline TextureStage::CombineOperand TextureStage::get_combine_rgb_operand0(void) const;
2168 23 get_combine_rgb_source1 0 4 2984 37 TextureStage::get_combine_rgb_source1 0 1 648 268
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_source1
// Access: Published
// Description: Get source1 of combine_rgb_mode
////////////////////////////////////////////////////////////////////
85
inline TextureStage::CombineSource TextureStage::get_combine_rgb_source1(void) const;
2169 24 get_combine_rgb_operand1 0 4 2984 38 TextureStage::get_combine_rgb_operand1 0 1 649 270
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_operand1
// Access: Published
// Description: Get operand1 of combine_rgb_mode
////////////////////////////////////////////////////////////////////
87
inline TextureStage::CombineOperand TextureStage::get_combine_rgb_operand1(void) const;
2170 23 get_combine_rgb_source2 0 4 2984 37 TextureStage::get_combine_rgb_source2 0 1 650 268
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_source2
// Access: Published
// Description: Get source2 of combine_rgb_mode
////////////////////////////////////////////////////////////////////
85
inline TextureStage::CombineSource TextureStage::get_combine_rgb_source2(void) const;
2171 24 get_combine_rgb_operand2 0 4 2984 38 TextureStage::get_combine_rgb_operand2 0 1 651 270
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_operand2
// Access: Published
// Description: Get operand2 of combine_rgb_mode
////////////////////////////////////////////////////////////////////
87
inline TextureStage::CombineOperand TextureStage::get_combine_rgb_operand2(void) const;
2172 17 set_combine_alpha 0 4 2984 31 TextureStage::set_combine_alpha 0 3 652 653 654 1219
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_combine_alpha
// Access: Published
// Description: Specifies any of the CombineMode values that
// represent a one-parameter operation. Specifically,
// this is CM_replace only.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_combine_alpha
// Access: Published
// Description: Specifies any of the CombineMode values that
// represent a two-parameter operation. Specifically,
// this is everything except for CM_replace and
// CM_interpolate.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_combine_alpha
// Access: Published
// Description: Specifies any of the CombineMode values that
// represent a one-parameter operation. Specifically,
// this is CM_interpolate only.
////////////////////////////////////////////////////////////////////
686
inline void TextureStage::set_combine_alpha(TextureStage::CombineMode mode, TextureStage::CombineSource source0, TextureStage::CombineOperand operand0);
inline void TextureStage::set_combine_alpha(TextureStage::CombineMode mode, TextureStage::CombineSource source0, TextureStage::CombineOperand operand0, TextureStage::CombineSource source1, TextureStage::CombineOperand operand1);
inline void TextureStage::set_combine_alpha(TextureStage::CombineMode mode, TextureStage::CombineSource source0, TextureStage::CombineOperand operand0, TextureStage::CombineSource source1, TextureStage::CombineOperand operand1, TextureStage::CombineSource source2, TextureStage::CombineOperand operand2);
2173 22 get_combine_alpha_mode 0 4 2984 36 TextureStage::get_combine_alpha_mode 0 1 655 253
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha
// Access: Published
// Description: Get combine_alpha_mode
////////////////////////////////////////////////////////////////////
82
inline TextureStage::CombineMode TextureStage::get_combine_alpha_mode(void) const;
2174 30 get_num_combine_alpha_operands 0 4 2984 44 TextureStage::get_num_combine_alpha_operands 0 1 656 407
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_num_combine_alpha_operands
// Access: Published
// Description: Returns the number of meaningful operands that may be
// retrieved via get_combine_alpha_sourceN() and
// get_combine_alpha_operandN().
////////////////////////////////////////////////////////////////////
68
inline int TextureStage::get_num_combine_alpha_operands(void) const;
2175 25 get_combine_alpha_source0 0 4 2984 39 TextureStage::get_combine_alpha_source0 0 1 657 272
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha_source0
// Access: Published
// Description: Get source0 of combine_alpha_mode
////////////////////////////////////////////////////////////////////
87
inline TextureStage::CombineSource TextureStage::get_combine_alpha_source0(void) const;
2176 26 get_combine_alpha_operand0 0 4 2984 40 TextureStage::get_combine_alpha_operand0 0 1 658 274
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha_operand0
// Access: Published
// Description: Get operand0 of combine_alpha_mode
////////////////////////////////////////////////////////////////////
89
inline TextureStage::CombineOperand TextureStage::get_combine_alpha_operand0(void) const;
2177 25 get_combine_alpha_source1 0 4 2984 39 TextureStage::get_combine_alpha_source1 0 1 659 272
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha_source1
// Access: Published
// Description: Get source1 of combine_alpha_mode
////////////////////////////////////////////////////////////////////
87
inline TextureStage::CombineSource TextureStage::get_combine_alpha_source1(void) const;
2178 26 get_combine_alpha_operand1 0 4 2984 40 TextureStage::get_combine_alpha_operand1 0 1 660 274
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha_operand1
// Access: Published
// Description: Get operand1 of combine_alpha_mode
////////////////////////////////////////////////////////////////////
89
inline TextureStage::CombineOperand TextureStage::get_combine_alpha_operand1(void) const;
2179 25 get_combine_alpha_source2 0 4 2984 39 TextureStage::get_combine_alpha_source2 0 1 661 272
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha_source2
// Access: Published
// Description: Get source2 of combine_alpha_mode
////////////////////////////////////////////////////////////////////
87
inline TextureStage::CombineSource TextureStage::get_combine_alpha_source2(void) const;
2180 26 get_combine_alpha_operand2 0 4 2984 40 TextureStage::get_combine_alpha_operand2 0 1 662 274
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha_operand2
// Access: Published
// Description: Get operand2 of combine_alpha_mode
////////////////////////////////////////////////////////////////////
89
inline TextureStage::CombineOperand TextureStage::get_combine_alpha_operand2(void) const;
2181 20 involves_color_scale 0 4 2984 34 TextureStage::involves_color_scale 0 1 663 377
////////////////////////////////////////////////////////////////////
// Function: TextureStage::involves_color_scale
// Access: Published
// Description: Returns true if the TextureStage is affected by the
// setting of the current ColorScaleAttrib, false
// otherwise.
////////////////////////////////////////////////////////////////////
59
inline bool TextureStage::involves_color_scale(void) const;
2182 10 uses_color 0 4 2984 24 TextureStage::uses_color 0 1 664 364
////////////////////////////////////////////////////////////////////
// Function: TextureStage::uses_color
// Access: Published
// Description: Returns true if the TextureStage makes use of
// whatever color is specified in set_color(), false
// otherwise.
////////////////////////////////////////////////////////////////////
49
inline bool TextureStage::uses_color(void) const;
2183 18 uses_primary_color 0 4 2984 32 TextureStage::uses_primary_color 0 1 665 331
////////////////////////////////////////////////////////////////////
// Function: TextureStage::uses_primary_color
// Access: Published
// Description: Returns true if the TextureStage makes use of
// the CS_primary_color combine source.
////////////////////////////////////////////////////////////////////
57
inline bool TextureStage::uses_primary_color(void) const;
2184 22 uses_last_saved_result 0 4 2984 36 TextureStage::uses_last_saved_result 0 1 666 335
////////////////////////////////////////////////////////////////////
// Function: TextureStage::uses_last_saved_result
// Access: Published
// Description: Returns true if the TextureStage makes use of
// the CS_primary_color combine source.
////////////////////////////////////////////////////////////////////
61
inline bool TextureStage::uses_last_saved_result(void) const;
2185 11 operator == 0 4 2984 25 TextureStage::operator == 0 1 667 224
////////////////////////////////////////////////////////////////////
// Function: TextureStage::operator ==
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
71
inline bool TextureStage::operator ==(TextureStage const &other) const;
2186 11 operator != 0 4 2984 25 TextureStage::operator != 0 1 668 224
////////////////////////////////////////////////////////////////////
// Function: TextureStage::operator !=
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
71
inline bool TextureStage::operator !=(TextureStage const &other) const;
2187 10 operator < 0 4 2984 24 TextureStage::operator < 0 1 669 223
////////////////////////////////////////////////////////////////////
// Function: TextureStage::operator <
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
70
inline bool TextureStage::operator <(TextureStage const &other) const;
2188 10 compare_to 0 4 2984 24 TextureStage::compare_to 0 1 670 540
////////////////////////////////////////////////////////////////////
// Function: TextureStage::compare_to
// Access: Published
// Description: Returns a number less than zero if this TextureStage
// sorts before the other one, greater than zero if it
// sorts after, or zero if they are equivalent. The
// sorting order is arbitrary and largely meaningless,
// except to differentiate different stages.
////////////////////////////////////////////////////////////////////
62
int TextureStage::compare_to(TextureStage const &other) const;
2189 5 write 0 4 2984 19 TextureStage::write 0 1 671 256
////////////////////////////////////////////////////////////////////
// Function: TextureStage::Destructor
// Access: Published
// Description: Writes the details of this stage
////////////////////////////////////////////////////////////////////
45
void TextureStage::write(ostream &out) const;
2190 6 output 0 4 2984 20 TextureStage::output 0 1 672 249
////////////////////////////////////////////////////////////////////
// Function: TextureStage::Destructor
// Access: Published
// Description: Just a single line output
////////////////////////////////////////////////////////////////////
46
void TextureStage::output(ostream &out) const;
2191 11 get_default 0 4 2984 25 TextureStage::get_default 0 1 673 447
////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_default
// Access: Published, Static
// Description: Returns the default TextureStage that will be used
// for all texturing that does not name a particular
// stage. This generally handles the normal
// single-texture case.
////////////////////////////////////////////////////////////////////
60
static inline TextureStage *TextureStage::get_default(void);
2192 14 get_class_type 0 4 2984 28 TextureStage::get_class_type 0 1 674 0
53
static TypeHandle TextureStage::get_class_type(void);
2193 27 upcast_to_CopyOnWriteObject 0 12 2989 33 Geom::upcast_to_CopyOnWriteObject 0 1 740 37
upcast from Geom to CopyOnWriteObject
59
CopyOnWriteObject *Geom::upcast_to_CopyOnWriteObject(void);
2194 16 downcast_to_Geom 0 12 2968 35 CopyOnWriteObject::downcast_to_Geom 0 1 741 39
downcast from CopyOnWriteObject to Geom
48
Geom *CopyOnWriteObject::downcast_to_Geom(void);
2195 19 upcast_to_GeomEnums 0 12 2989 25 Geom::upcast_to_GeomEnums 0 1 742 29
upcast from Geom to GeomEnums
43
GeomEnums *Geom::upcast_to_GeomEnums(void);
2196 16 downcast_to_Geom 0 12 2941 27 GeomEnums::downcast_to_Geom 0 1 743 31
downcast from GeomEnums to Geom
40
Geom *GeomEnums::downcast_to_Geom(void);
2197 4 Geom 0 4 2989 10 Geom::Geom 0 1 675 477
////////////////////////////////////////////////////////////////////
// Function: Geom::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Geom::Copy Constructor
// Access: Protected
// Description: Use make_copy() to duplicate a Geom.
////////////////////////////////////////////////////////////////////
39
Geom::Geom(GeomVertexData const *data);
2198 10 operator = 0 4 2989 16 Geom::operator = 0 1 676 460
////////////////////////////////////////////////////////////////////
// Function: Geom::Copy Assignment Operator
// Access: Published
// Description: The copy assignment operator is not pipeline-safe.
// This will completely obliterate all stages of the
// pipeline, so don't do it for a Geom that is actively
// being used for rendering.
////////////////////////////////////////////////////////////////////
40
void Geom::operator =(Geom const &copy);
2199 5 ~Geom 0 6 2989 11 Geom::~Geom 0 0 225
////////////////////////////////////////////////////////////////////
// Function: Geom::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
26
virtual Geom::~Geom(void);
2200 12 operator new 0 4 2989 18 Geom::operator new 0 1 677 0
114
inline void *Geom::operator new(unsigned int size);
inline void *Geom::operator new(unsigned int size, void *ptr);
2201 15 operator delete 0 4 2989 21 Geom::operator delete 0 0 0
96
inline void Geom::operator delete(void *ptr);
inline void Geom::operator delete(void *, void *);
2202 12 validate_ptr 0 4 2989 18 Geom::validate_ptr 0 0 0
55
static inline bool Geom::validate_ptr(void const *ptr);
2203 9 make_copy 0 6 2989 15 Geom::make_copy 0 1 678 458
////////////////////////////////////////////////////////////////////
// Function: Geom::make_copy
// Access: Protected, Virtual
// Description: Returns a newly-allocated Geom that is a shallow copy
// of this one. It will be a different Geom pointer,
// but its internal data may or may not be shared with
// that of the original Geom.
////////////////////////////////////////////////////////////////////
42
virtual Geom *Geom::make_copy(void) const;
2204 18 get_primitive_type 0 4 2989 24 Geom::get_primitive_type 0 1 679 1144
// Filename: geom.I
// Created by: drose (06Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Geom::get_primitive_type
// Access: Published
// Description: Returns the fundamental primitive type that is common
// to all GeomPrimitives added within the Geom. All
// nested primitives within a particular Geom must be
// the same type (that is, you can mix triangles and
// tristrips, because they are both the same fundamental
// type PT_polygons, but you cannot mix triangles and
// points withn the same Geom).
////////////////////////////////////////////////////////////////////
69
inline GeomEnums::PrimitiveType Geom::get_primitive_type(void) const;
2205 15 get_shade_model 0 4 2989 21 Geom::get_shade_model 0 1 680 359
////////////////////////////////////////////////////////////////////
// Function: Geom::get_shade_model
// Access: Published
// Description: Returns the shade model common to all of the
// individual GeomPrimitives that have been added to the
// geom.
////////////////////////////////////////////////////////////////////
63
inline GeomEnums::ShadeModel Geom::get_shade_model(void) const;
2206 18 get_geom_rendering 0 4 2989 24 Geom::get_geom_rendering 0 1 681 374
////////////////////////////////////////////////////////////////////
// Function: Geom::get_geom_rendering
// Access: Published
// Description: Returns the set of GeomRendering bits that represent
// the rendering properties required to properly render
// this Geom.
////////////////////////////////////////////////////////////////////
48
inline int Geom::get_geom_rendering(void) const;
2207 14 get_usage_hint 0 4 2989 20 Geom::get_usage_hint 0 1 682 381
////////////////////////////////////////////////////////////////////
// Function: Geom::get_usage_hint
// Access: Published
// Description: Returns the minimum (i.e. most dynamic) usage_hint
// among all of the individual GeomPrimitives that have
// been added to the geom.
////////////////////////////////////////////////////////////////////
61
inline GeomEnums::UsageHint Geom::get_usage_hint(void) const;
2208 14 set_usage_hint 0 4 2989 20 Geom::set_usage_hint 0 1 683 558
////////////////////////////////////////////////////////////////////
// Function: Geom::set_usage_hint
// Access: Published
// Description: Changes the UsageHint hint for all of the primitives
// on this Geom to the same value. See
// get_usage_hint().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
59
void Geom::set_usage_hint(GeomEnums::UsageHint usage_hint);
2209 15 get_vertex_data 0 4 2989 21 Geom::get_vertex_data 0 2 684 685 387
////////////////////////////////////////////////////////////////////
// Function: Geom::get_vertex_data
// Access: Published
// Description: Returns a const pointer to the GeomVertexData,
// for application code to directly examine (but not
// modify) the geom's underlying data.
////////////////////////////////////////////////////////////////////
119
inline ConstPointerTo< GeomVertexData > Geom::get_vertex_data(Thread *current_thread = ((get_current_thread()))) const;
2210 18 modify_vertex_data 0 4 2989 24 Geom::modify_vertex_data 0 1 686 583
////////////////////////////////////////////////////////////////////
// Function: Geom::modify_vertex_data
// Access: Published
// Description: Returns a modifiable pointer to the GeomVertexData,
// so that application code may directly maniuplate the
// geom's underlying data.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
59
PointerTo< GeomVertexData > Geom::modify_vertex_data(void);
2211 15 set_vertex_data 0 4 2989 21 Geom::set_vertex_data 0 1 687 512
////////////////////////////////////////////////////////////////////
// Function: Geom::set_vertex_data
// Access: Published
// Description: Replaces the Geom's underlying vertex data table with
// a completely new table.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
55
void Geom::set_vertex_data(GeomVertexData const *data);
2212 15 offset_vertices 0 4 2989 21 Geom::offset_vertices 0 1 688 847
////////////////////////////////////////////////////////////////////
// Function: Geom::offset_vertices
// Access: Published
// Description: Replaces a Geom's vertex table with a new table, and
// simultaneously adds the indicated offset to all
// vertex references within the Geom's primitives. This
// is intended to be used to combine multiple
// GeomVertexDatas from different Geoms into a single
// big buffer, with each Geom referencing a subset of
// the vertices in the buffer.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
67
void Geom::offset_vertices(GeomVertexData const *data, int offset);
2213 15 make_nonindexed 0 4 2989 21 Geom::make_nonindexed 0 1 689 728
////////////////////////////////////////////////////////////////////
// Function: Geom::make_nonindexed
// Access: Published
// Description: Converts the geom from indexed to nonindexed by
// duplicating vertices as necessary. If composite_only
// is true, then only composite primitives such as
// trifans and tristrips are converted. Returns the
// number of GeomPrimitive objects converted.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
47
int Geom::make_nonindexed(bool composite_only);
2214 8 is_empty 0 4 2989 14 Geom::is_empty 0 1 690 337
////////////////////////////////////////////////////////////////////
// Function: Geom::is_empty
// Access: Published
// Description: Returns true if there appear to be no vertices to be
// rendered by this Geom, false if has some actual data.
////////////////////////////////////////////////////////////////////
39
inline bool Geom::is_empty(void) const;
2215 18 get_num_primitives 0 4 2989 24 Geom::get_num_primitives 0 1 691 395
////////////////////////////////////////////////////////////////////
// Function: Geom::get_num_primitives
// Access: Published
// Description: Returns the number of GeomPrimitive objects stored
// within the Geom, each of which represents a number of
// primitives of a particular type.
////////////////////////////////////////////////////////////////////
48
inline int Geom::get_num_primitives(void) const;
2216 13 get_primitive 0 4 2989 19 Geom::get_primitive 0 1 692 464
////////////////////////////////////////////////////////////////////
// Function: Geom::get_primitive
// Access: Published
// Description: Returns a const pointer to the ith GeomPrimitive
// object stored within the Geom. Use this call only to
// inspect the ith object; use modify_primitive() or
// set_primitive() if you want to modify it.
////////////////////////////////////////////////////////////////////
72
inline ConstPointerTo< GeomPrimitive > Geom::get_primitive(int i) const;
2217 16 modify_primitive 0 4 2989 22 Geom::modify_primitive 0 1 693 632
////////////////////////////////////////////////////////////////////
// Function: Geom::modify_primitive
// Access: Published
// Description: Returns a modifiable pointer to the ith GeomPrimitive
// object stored within the Geom, so application code
// can directly manipulate the properties of this
// primitive.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
64
inline PointerTo< GeomPrimitive > Geom::modify_primitive(int i);
2218 13 set_primitive 0 4 2989 19 Geom::set_primitive 0 1 694 514
////////////////////////////////////////////////////////////////////
// Function: Geom::set_primitive
// Access: Published
// Description: Replaces the ith GeomPrimitive object stored within
// the Geom with the new object.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
64
void Geom::set_primitive(int i, GeomPrimitive const *primitive);
2219 13 add_primitive 0 4 2989 19 Geom::add_primitive 0 1 695 637
////////////////////////////////////////////////////////////////////
// Function: Geom::add_primitive
// Access: Published
// Description: Adds a new GeomPrimitive structure to the Geom
// object. This specifies a particular subset of
// vertices that are used to define geometric primitives
// of the indicated type.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
57
void Geom::add_primitive(GeomPrimitive const *primitive);
2220 16 remove_primitive 0 4 2989 22 Geom::remove_primitive 0 1 696 459
////////////////////////////////////////////////////////////////////
// Function: Geom::remove_primitive
// Access: Published
// Description: Removes the ith primitive from the list.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
35
void Geom::remove_primitive(int i);
2221 16 clear_primitives 0 4 2989 22 Geom::clear_primitives 0 1 697 633
////////////////////////////////////////////////////////////////////
// Function: Geom::clear_primitives
// Access: Published
// Description: Removes all the primitives from the Geom object (but
// keeps the same table of vertices). You may then
// re-add primitives one at a time via calls to
// add_primitive().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
34
void Geom::clear_primitives(void);
2222 9 decompose 0 4 2989 15 Geom::decompose 0 1 698 354
////////////////////////////////////////////////////////////////////
// Function: Geom::decompose
// Access: Published
// Description: Decomposes all of the primitives within this Geom,
// returning the result. See
// GeomPrimitive::decompose().
////////////////////////////////////////////////////////////////////
53
inline PointerTo< Geom > Geom::decompose(void) const;
2223 10 doubleside 0 4 2989 16 Geom::doubleside 0 1 699 357
////////////////////////////////////////////////////////////////////
// Function: Geom::doubleside
// Access: Published
// Description: Doublesides all of the primitives within this Geom,
// returning the result. See
// GeomPrimitive::doubleside().
////////////////////////////////////////////////////////////////////
54
inline PointerTo< Geom > Geom::doubleside(void) const;
2224 7 reverse 0 4 2989 13 Geom::reverse 0 1 700 348
////////////////////////////////////////////////////////////////////
// Function: Geom::reverse
// Access: Published
// Description: Reverses all of the primitives within this Geom,
// returning the result. See
// GeomPrimitive::reverse().
////////////////////////////////////////////////////////////////////
51
inline PointerTo< Geom > Geom::reverse(void) const;
2225 6 rotate 0 4 2989 12 Geom::rotate 0 1 701 345
////////////////////////////////////////////////////////////////////
// Function: Geom::rotate
// Access: Published
// Description: Rotates all of the primitives within this Geom,
// returning the result. See
// GeomPrimitive::rotate().
////////////////////////////////////////////////////////////////////
50
inline PointerTo< Geom > Geom::rotate(void) const;
2226 5 unify 0 4 2989 11 Geom::unify 0 1 702 890
////////////////////////////////////////////////////////////////////
// Function: Geom::unify
// Access: Published
// Description: Unifies all of the primitives contained within this
// Geom into a single (or as few as possible, within the
// constraints of max_indices) primitive objects. This
// may require decomposing the primitives if, for
// instance, the Geom contains both triangle strips and
// triangle fans.
//
// max_indices represents the maximum number of indices
// that will be put in any one GeomPrimitive. If
// preserve_order is true, then the primitives will not
// be reordered during the operation, even if this
// results in a suboptimal result.
////////////////////////////////////////////////////////////////////
81
inline PointerTo< Geom > Geom::unify(int max_indices, bool preserve_order) const;
2227 11 make_points 0 4 2989 17 Geom::make_points 0 1 703 319
////////////////////////////////////////////////////////////////////
// Function: Geom::make_points
// Access: Published
// Description: Returns a new Geom with points at all the vertices.
// See GeomPrimitive::make_points().
////////////////////////////////////////////////////////////////////
55
inline PointerTo< Geom > Geom::make_points(void) const;
2228 12 make_patches 0 4 2989 18 Geom::make_patches 0 1 704 323
////////////////////////////////////////////////////////////////////
// Function: Geom::make_patches
// Access: Published
// Description: Returns a new Geom with each primitive converted
// into a patch. Calls decompose() first.
////////////////////////////////////////////////////////////////////
56
inline PointerTo< Geom > Geom::make_patches(void) const;
2229 18 decompose_in_place 0 4 2989 24 Geom::decompose_in_place 0 1 705 568
////////////////////////////////////////////////////////////////////
// Function: Geom::decompose_in_place
// Access: Published
// Description: Decomposes all of the primitives within this Geom,
// leaving the results in place. See
// GeomPrimitive::decompose().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
36
void Geom::decompose_in_place(void);
2230 19 doubleside_in_place 0 4 2989 25 Geom::doubleside_in_place 0 1 706 571
////////////////////////////////////////////////////////////////////
// Function: Geom::doubleside_in_place
// Access: Published
// Description: Doublesides all of the primitives within this Geom,
// leaving the results in place. See
// GeomPrimitive::doubleside().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
37
void Geom::doubleside_in_place(void);
2231 16 reverse_in_place 0 4 2989 22 Geom::reverse_in_place 0 1 707 562
////////////////////////////////////////////////////////////////////
// Function: Geom::reverse_in_place
// Access: Published
// Description: Reverses all of the primitives within this Geom,
// leaving the results in place. See
// GeomPrimitive::reverse().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
34
void Geom::reverse_in_place(void);
2232 15 rotate_in_place 0 4 2989 21 Geom::rotate_in_place 0 1 708 559
////////////////////////////////////////////////////////////////////
// Function: Geom::rotate_in_place
// Access: Published
// Description: Rotates all of the primitives within this Geom,
// leaving the results in place. See
// GeomPrimitive::rotate().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
33
void Geom::rotate_in_place(void);
2233 14 unify_in_place 0 4 2989 20 Geom::unify_in_place 0 1 709 1096
////////////////////////////////////////////////////////////////////
// Function: Geom::unify_in_place
// Access: Published
// Description: Unifies all of the primitives contained within this
// Geom into a single (or as few as possible, within the
// constraints of max_indices) primitive objects. This
// may require decomposing the primitives if, for
// instance, the Geom contains both triangle strips and
// triangle fans.
//
// max_indices represents the maximum number of indices
// that will be put in any one GeomPrimitive. If
// preserve_order is true, then the primitives will not
// be reordered during the operation, even if this
// results in a suboptimal result.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
64
void Geom::unify_in_place(int max_indices, bool preserve_order);
2234 20 make_points_in_place 0 4 2989 26 Geom::make_points_in_place 0 1 710 567
////////////////////////////////////////////////////////////////////
// Function: Geom::make_points_in_place
// Access: Published
// Description: Replaces the GeomPrimitives within this Geom with
// corresponding GeomPoints. See
// GeomPrimitive::make_points().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
38
void Geom::make_points_in_place(void);
2235 21 make_patches_in_place 0 4 2989 27 Geom::make_patches_in_place 0 1 711 570
////////////////////////////////////////////////////////////////////
// Function: Geom::make_patches_in_place
// Access: Published
// Description: Replaces the GeomPrimitives within this Geom with
// corresponding GeomPatches. See
// GeomPrimitive::make_patches().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
39
void Geom::make_patches_in_place(void);
2236 20 copy_primitives_from 0 6 2989 26 Geom::copy_primitives_from 0 1 712 792
////////////////////////////////////////////////////////////////////
// Function: Geom::copy_primitives_from
// Access: Published, Virtual
// Description: Copies the primitives from the indicated Geom into
// this one. This does require that both Geoms contain
// the same fundamental type primitives, both have a
// compatible shade model, and both use the same
// GeomVertexData. Both Geoms must also be the same
// specific class type (i.e. if one is a GeomTextGlyph,
// they both must be.)
//
// Returns true if the copy is successful, or false
// otherwise (because the Geoms were mismatched).
////////////////////////////////////////////////////////////////////
59
virtual bool Geom::copy_primitives_from(Geom const *other);
2237 13 get_num_bytes 0 4 2989 19 Geom::get_num_bytes 0 1 713 341
////////////////////////////////////////////////////////////////////
// Function: Geom::get_num_bytes
// Access: Published
// Description: Returns the number of bytes consumed by the geom and
// its primitives (but not including its vertex table).
////////////////////////////////////////////////////////////////////
36
int Geom::get_num_bytes(void) const;
2238 12 get_modified 0 4 2989 18 Geom::get_modified 0 2 714 715 564
////////////////////////////////////////////////////////////////////
// Function: Geom::get_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time any of the primitives in
// the Geom is modified, or the set of primitives is
// modified. However, this does not include
// modifications to the vertex data, which should be
// tested separately.
////////////////////////////////////////////////////////////////////
93
inline UpdateSeq Geom::get_modified(Thread *current_thread = ((get_current_thread()))) const;
2239 16 request_resident 0 4 2989 22 Geom::request_resident 0 1 716 571
////////////////////////////////////////////////////////////////////
// Function: Geom::request_resident
// Access: Published
// Description: Returns true if all the primitive arrays are
// currently resident in memory. If this returns false,
// the data will be brought back into memory shortly;
// try again later.
//
// This does not also test the Geom's associated
// GeomVertexData. That must be tested separately.
////////////////////////////////////////////////////////////////////
40
bool Geom::request_resident(void) const;
2240 18 transform_vertices 0 4 2989 24 Geom::transform_vertices 0 1 717 808
////////////////////////////////////////////////////////////////////
// Function: Geom::transform_vertices
// Access: Published
// Description: Applies the indicated transform to all of the
// vertices in the Geom. If the Geom happens to share a
// vertex table with another Geom, this operation will
// duplicate the vertex table instead of breaking the
// other Geom; however, if multiple Geoms with shared
// tables are transformed by the same matrix, they will
// no longer share tables after the operation. Consider
// using the GeomTransformer if you will be applying the
// same transform to multiple Geoms.
////////////////////////////////////////////////////////////////////
52
void Geom::transform_vertices(LMatrix4f const &mat);
2241 11 check_valid 0 4 2989 17 Geom::check_valid 0 2 718 719 925
////////////////////////////////////////////////////////////////////
// Function: Geom::check_valid
// Access: Published
// Description: Verifies that the all of the primitives within the
// geom reference vertices that actually exist within
// the geom's GeomVertexData. Returns true if the geom
// appears to be valid, false otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Geom::check_valid
// Access: Published
// Description: Verifies that the all of the primitives within the
// geom reference vertices that actually exist within
// the indicated GeomVertexData. Returns true if the
// geom appears to be valid, false otherwise.
////////////////////////////////////////////////////////////////////
100
bool Geom::check_valid(void) const;
bool Geom::check_valid(GeomVertexData const *vertex_data) const;
2242 10 get_bounds 0 4 2989 16 Geom::get_bounds 0 2 720 721 257
////////////////////////////////////////////////////////////////////
// Function: Geom::get_bounds
// Access: Published
// Description: Returns the bounding volume for the Geom.
////////////////////////////////////////////////////////////////////
107
ConstPointerTo< BoundingVolume > Geom::get_bounds(Thread *current_thread = ((get_current_thread()))) const;
2243 19 get_nested_vertices 0 4 2989 25 Geom::get_nested_vertices 0 2 722 723 316
////////////////////////////////////////////////////////////////////
// Function: Geom::get_nested_vertices
// Access: Published
// Description: Returns the number of vertices rendered by all
// primitives within the Geom.
////////////////////////////////////////////////////////////////////
87
int Geom::get_nested_vertices(Thread *current_thread = ((get_current_thread()))) const;
2244 17 mark_bounds_stale 0 4 2989 23 Geom::mark_bounds_stale 0 1 724 390
////////////////////////////////////////////////////////////////////
// Function: Geom::mark_bounds_stale
// Access: Published
// Description: Marks the bounding volume of the Geom as stale so
// that it should be recomputed. Usually it is not
// necessary to call this explicitly.
////////////////////////////////////////////////////////////////////
48
inline void Geom::mark_bounds_stale(void) const;
2245 15 set_bounds_type 0 4 2989 21 Geom::set_bounds_type 0 1 725 969
////////////////////////////////////////////////////////////////////
// Function: Geom::set_bounds_type
// Access: Published
// Description: Specifies the desired type of bounding volume that
// will be created for this Geom. This is normally
// BoundingVolume::BT_default, which means to set the
// type according to the config variable "bounds-type".
//
// If this is BT_sphere or BT_box, a BoundingSphere or
// BoundingBox is explicitly created. If it is BT_best,
// a BoundingBox is created.
//
// This affects the implicit bounding volume only. If
// an explicit bounding volume is set on the Geom with
// set_bounds(), that bounding volume type is used.
// (This is different behavior from the similar method
// on PandaNode.)
////////////////////////////////////////////////////////////////////
74
inline void Geom::set_bounds_type(BoundingVolume::BoundsType bounds_type);
2246 15 get_bounds_type 0 4 2989 21 Geom::get_bounds_type 0 1 726 298
////////////////////////////////////////////////////////////////////
// Function: Geom::get_bounds_type
// Access: Published
// Description: Returns the bounding volume type set with
// set_bounds_type().
////////////////////////////////////////////////////////////////////
68
inline BoundingVolume::BoundsType Geom::get_bounds_type(void) const;
2247 10 set_bounds 0 4 2989 16 Geom::set_bounds 0 1 727 726
////////////////////////////////////////////////////////////////////
// Function: Geom::set_bounds
// Access: Published
// Description: Resets the bounding volume so that it is the
// indicated volume. When it is explicitly set, the
// bounding volume will no longer be automatically
// computed; call clear_bounds() if you would like to
// return the bounding volume to its default behavior.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
59
inline void Geom::set_bounds(BoundingVolume const *volume);
2248 12 clear_bounds 0 4 2989 18 Geom::clear_bounds 0 1 728 614
////////////////////////////////////////////////////////////////////
// Function: Geom::clear_bounds
// Access: Published
// Description: Reverses the effect of a previous call to
// set_bounds(), and allows the bounding volume to be
// automatically computed once more based on the
// vertices.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
37
inline void Geom::clear_bounds(void);
2249 6 output 0 6 2989 12 Geom::output 0 1 729 221
////////////////////////////////////////////////////////////////////
// Function: Geom::output
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
46
virtual void Geom::output(ostream &out) const;
2250 5 write 0 6 2989 11 Geom::write 0 2 730 731 220
////////////////////////////////////////////////////////////////////
// Function: Geom::write
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
69
virtual void Geom::write(ostream &out, int indent_level = (0)) const;
2251 11 clear_cache 0 4 2989 17 Geom::clear_cache 0 1 732 546
////////////////////////////////////////////////////////////////////
// Function: Geom::clear_cache
// Access: Published
// Description: Removes all of the previously-cached results of
// munge_geom().
//
// This blows away the entire cache, upstream and
// downstream the pipeline. Use clear_cache_stage()
// instead if you only want to blow away the cache at
// the current stage and upstream.
////////////////////////////////////////////////////////////////////
29
void Geom::clear_cache(void);
2252 17 clear_cache_stage 0 4 2989 23 Geom::clear_cache_stage 0 1 733 598
////////////////////////////////////////////////////////////////////
// Function: Geom::clear_cache_stage
// Access: Published
// Description: Removes all of the previously-cached results of
// munge_geom(), at the current pipeline stage and
// upstream. Does not affect the downstream cache.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
////////////////////////////////////////////////////////////////////
53
void Geom::clear_cache_stage(Thread *current_thread);
2253 7 prepare 0 4 2989 13 Geom::prepare 0 1 734 640
////////////////////////////////////////////////////////////////////
// Function: Geom::prepare
// Access: Published
// Description: Indicates that the geom should be enqueued to be
// prepared in the indicated prepared_objects at the
// beginning of the next frame. This will ensure the
// geom is already loaded into geom memory if it
// is expected to be rendered soon.
//
// Use this function instead of prepare_now() to preload
// geoms from a user interface standpoint.
////////////////////////////////////////////////////////////////////
62
void Geom::prepare(PreparedGraphicsObjects *prepared_objects);
2254 11 is_prepared 0 4 2989 17 Geom::is_prepared 0 1 735 368
////////////////////////////////////////////////////////////////////
// Function: Geom::is_prepared
// Access: Published
// Description: Returns true if the geom has already been prepared
// or enqueued for preparation on the indicated GSG,
// false otherwise.
////////////////////////////////////////////////////////////////////
72
bool Geom::is_prepared(PreparedGraphicsObjects *prepared_objects) const;
2255 7 release 0 4 2989 13 Geom::release 0 1 736 388
////////////////////////////////////////////////////////////////////
// Function: Geom::release
// Access: Published
// Description: Frees the geom context only on the indicated object,
// if it exists there. Returns true if it was released,
// false if it had not been prepared.
////////////////////////////////////////////////////////////////////
62
bool Geom::release(PreparedGraphicsObjects *prepared_objects);
2256 11 release_all 0 4 2989 17 Geom::release_all 0 1 737 386
////////////////////////////////////////////////////////////////////
// Function: Geom::release_all
// Access: Published
// Description: Frees the context allocated on all objects for which
// the geom has been declared. Returns the number of
// contexts which have been freed.
////////////////////////////////////////////////////////////////////
28
int Geom::release_all(void);
2257 11 prepare_now 0 4 2989 17 Geom::prepare_now 0 1 738 871
////////////////////////////////////////////////////////////////////
// Function: Geom::prepare_now
// Access: Public
// Description: Creates a context for the geom on the particular
// GSG, if it does not already exist. Returns the new
// (or old) GeomContext. This assumes that the
// GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// geoms. If this is not necessarily the case, you
// should use prepare() instead.
//
// Normally, this is not called directly except by the
// GraphicsStateGuardian; a geom does not need to be
// explicitly prepared by the user before it may be
// rendered.
////////////////////////////////////////////////////////////////////
106
GeomContext *Geom::prepare_now(PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg);
2258 14 get_class_type 0 4 2989 20 Geom::get_class_type 0 1 739 0
45
static TypeHandle Geom::get_class_type(void);
2259 8 get_geom 0 4 2990 21 GeomContext::get_geom 0 1 744 220
////////////////////////////////////////////////////////////////////
// Function: GeomContext::get_geom
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
47
inline Geom *GeomContext::get_geom(void) const;
2260 14 get_class_type 0 4 2990 27 GeomContext::get_class_type 0 1 745 0
52
static TypeHandle GeomContext::get_class_type(void);
2261 12 ~GeomContext 0 4 2990 25 GeomContext::~GeomContext 0 0 0
32
GeomContext::~GeomContext(void);
2262 9 GeomLines 0 4 2991 20 GeomLines::GeomLines 0 2 746 747 451
////////////////////////////////////////////////////////////////////
// Function: GeomLines::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomLines::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
99
GeomLines::GeomLines(GeomEnums::UsageHint usage_hint);
GeomLines::GeomLines(GeomLines const &copy);
2263 12 operator new 0 4 2991 23 GeomLines::operator new 0 1 748 0
124
inline void *GeomLines::operator new(unsigned int size);
inline void *GeomLines::operator new(unsigned int size, void *ptr);
2264 15 operator delete 0 4 2991 26 GeomLines::operator delete 0 0 0
106
inline void GeomLines::operator delete(void *ptr);
inline void GeomLines::operator delete(void *, void *);
2265 12 validate_ptr 0 4 2991 23 GeomLines::validate_ptr 0 0 0
60
static inline bool GeomLines::validate_ptr(void const *ptr);
2266 14 get_class_type 0 4 2991 25 GeomLines::get_class_type 0 1 749 0
50
static TypeHandle GeomLines::get_class_type(void);
2267 14 GeomLinestrips 0 4 2992 30 GeomLinestrips::GeomLinestrips 0 2 750 751 461
////////////////////////////////////////////////////////////////////
// Function: GeomLinestrips::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomLinestrips::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
124
GeomLinestrips::GeomLinestrips(GeomEnums::UsageHint usage_hint);
GeomLinestrips::GeomLinestrips(GeomLinestrips const &copy);
2268 12 operator new 0 4 2992 28 GeomLinestrips::operator new 0 1 752 0
134
inline void *GeomLinestrips::operator new(unsigned int size);
inline void *GeomLinestrips::operator new(unsigned int size, void *ptr);
2269 15 operator delete 0 4 2992 31 GeomLinestrips::operator delete 0 0 0
116
inline void GeomLinestrips::operator delete(void *ptr);
inline void GeomLinestrips::operator delete(void *, void *);
2270 12 validate_ptr 0 4 2992 28 GeomLinestrips::validate_ptr 0 0 0
65
static inline bool GeomLinestrips::validate_ptr(void const *ptr);
2271 14 get_class_type 0 4 2992 30 GeomLinestrips::get_class_type 0 1 753 0
55
static TypeHandle GeomLinestrips::get_class_type(void);
2272 11 GeomPatches 0 4 2993 24 GeomPatches::GeomPatches 0 2 754 755 743
////////////////////////////////////////////////////////////////////
// Function: GeomPatches::Constructor
// Access: Published
// Description: The number of vertices per patch must be specified to
// the GeomPatches constructor, and it may not be
// changed during the lifetime of the GeomPatches
// object. Create a new GeomPatches if you need to have
// a different value.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomPatches::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
137
GeomPatches::GeomPatches(int num_vertices_per_patch, GeomEnums::UsageHint usage_hint);
GeomPatches::GeomPatches(GeomPatches const &copy);
2273 12 operator new 0 4 2993 25 GeomPatches::operator new 0 1 756 0
128
inline void *GeomPatches::operator new(unsigned int size);
inline void *GeomPatches::operator new(unsigned int size, void *ptr);
2274 15 operator delete 0 4 2993 28 GeomPatches::operator delete 0 0 0
110
inline void GeomPatches::operator delete(void *ptr);
inline void GeomPatches::operator delete(void *, void *);
2275 12 validate_ptr 0 4 2993 25 GeomPatches::validate_ptr 0 0 0
62
static inline bool GeomPatches::validate_ptr(void const *ptr);
2276 14 get_class_type 0 4 2993 27 GeomPatches::get_class_type 0 1 757 0
52
static TypeHandle GeomPatches::get_class_type(void);
2277 10 GeomPoints 0 4 2994 22 GeomPoints::GeomPoints 0 2 758 759 453
////////////////////////////////////////////////////////////////////
// Function: GeomPoints::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomPoints::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
104
GeomPoints::GeomPoints(GeomEnums::UsageHint usage_hint);
GeomPoints::GeomPoints(GeomPoints const &copy);
2278 12 operator new 0 4 2994 24 GeomPoints::operator new 0 1 760 0
126
inline void *GeomPoints::operator new(unsigned int size);
inline void *GeomPoints::operator new(unsigned int size, void *ptr);
2279 15 operator delete 0 4 2994 27 GeomPoints::operator delete 0 0 0
108
inline void GeomPoints::operator delete(void *ptr);
inline void GeomPoints::operator delete(void *, void *);
2280 12 validate_ptr 0 4 2994 24 GeomPoints::validate_ptr 0 0 0
61
static inline bool GeomPoints::validate_ptr(void const *ptr);
2281 14 get_class_type 0 4 2994 26 GeomPoints::get_class_type 0 1 761 0
51
static TypeHandle GeomPoints::get_class_type(void);
2282 13 GeomTriangles 0 4 2995 28 GeomTriangles::GeomTriangles 0 2 762 763 459
////////////////////////////////////////////////////////////////////
// Function: GeomTriangles::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomTriangles::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
119
GeomTriangles::GeomTriangles(GeomEnums::UsageHint usage_hint);
GeomTriangles::GeomTriangles(GeomTriangles const &copy);
2283 12 operator new 0 4 2995 27 GeomTriangles::operator new 0 1 764 0
132
inline void *GeomTriangles::operator new(unsigned int size);
inline void *GeomTriangles::operator new(unsigned int size, void *ptr);
2284 15 operator delete 0 4 2995 30 GeomTriangles::operator delete 0 0 0
114
inline void GeomTriangles::operator delete(void *ptr);
inline void GeomTriangles::operator delete(void *, void *);
2285 12 validate_ptr 0 4 2995 27 GeomTriangles::validate_ptr 0 0 0
64
static inline bool GeomTriangles::validate_ptr(void const *ptr);
2286 14 get_class_type 0 4 2995 29 GeomTriangles::get_class_type 0 1 765 0
54
static TypeHandle GeomTriangles::get_class_type(void);
2287 11 GeomTrifans 0 4 2996 24 GeomTrifans::GeomTrifans 0 2 766 767 455
////////////////////////////////////////////////////////////////////
// Function: GeomTrifans::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomTrifans::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
109
GeomTrifans::GeomTrifans(GeomEnums::UsageHint usage_hint);
GeomTrifans::GeomTrifans(GeomTrifans const &copy);
2288 12 operator new 0 4 2996 25 GeomTrifans::operator new 0 1 768 0
128
inline void *GeomTrifans::operator new(unsigned int size);
inline void *GeomTrifans::operator new(unsigned int size, void *ptr);
2289 15 operator delete 0 4 2996 28 GeomTrifans::operator delete 0 0 0
110
inline void GeomTrifans::operator delete(void *ptr);
inline void GeomTrifans::operator delete(void *, void *);
2290 12 validate_ptr 0 4 2996 25 GeomTrifans::validate_ptr 0 0 0
62
static inline bool GeomTrifans::validate_ptr(void const *ptr);
2291 14 get_class_type 0 4 2996 27 GeomTrifans::get_class_type 0 1 769 0
52
static TypeHandle GeomTrifans::get_class_type(void);
2292 13 GeomTristrips 0 4 2997 28 GeomTristrips::GeomTristrips 0 2 770 771 459
////////////////////////////////////////////////////////////////////
// Function: GeomTristrips::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomTristrips::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
119
GeomTristrips::GeomTristrips(GeomEnums::UsageHint usage_hint);
GeomTristrips::GeomTristrips(GeomTristrips const &copy);
2293 12 operator new 0 4 2997 27 GeomTristrips::operator new 0 1 772 0
132
inline void *GeomTristrips::operator new(unsigned int size);
inline void *GeomTristrips::operator new(unsigned int size, void *ptr);
2294 15 operator delete 0 4 2997 30 GeomTristrips::operator delete 0 0 0
114
inline void GeomTristrips::operator delete(void *ptr);
inline void GeomTristrips::operator delete(void *, void *);
2295 12 validate_ptr 0 4 2997 27 GeomTristrips::validate_ptr 0 0 0
64
static inline bool GeomTristrips::validate_ptr(void const *ptr);
2296 14 get_class_type 0 4 2997 29 GeomTristrips::get_class_type 0 1 773 0
54
static TypeHandle GeomTristrips::get_class_type(void);
2297 16 GeomVertexReader 0 4 2998 34 GeomVertexReader::GeomVertexReader 0 13 774 775 776 777 778 779 780 781 782 783 784 785 786 3393
// Filename: geomVertexReader.I
// Created by: drose (25Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Default Constructor
// Access: Published
// Description: Constructs an invalid GeomVertexReader. You must use
// the assignment operator to assign a valid
// GeomVertexReader to this object before you can use
// it.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated data object.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated data object. This flavor creates the
// reader specifically to process the named data type.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated data object. This flavor creates the
// reader specifically to process the named data type.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated array only.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated array only.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Public
// Description: Constructs a new reader to process the vertices of
// the indicated data object. This flavor creates the
// reader specifically to process the named data type.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
891
inline GeomVertexReader::GeomVertexReader(Thread *current_thread = ((get_current_thread())));
inline GeomVertexReader::GeomVertexReader(GeomVertexData const *vertex_data, Thread *current_thread = ((get_current_thread())));
inline GeomVertexReader::GeomVertexReader(GeomVertexData const *vertex_data, basic_string< char > const &name, Thread *current_thread = ((get_current_thread())));
inline GeomVertexReader::GeomVertexReader(GeomVertexData const *vertex_data, InternalName const *name, Thread *current_thread = ((get_current_thread())));
inline GeomVertexReader::GeomVertexReader(GeomVertexArrayData const *array_data, Thread *current_thread = ((get_current_thread())));
inline GeomVertexReader::GeomVertexReader(GeomVertexArrayData const *array_data, int column, Thread *current_thread = ((get_current_thread())));
inline GeomVertexReader::GeomVertexReader(GeomVertexReader const &copy);
2298 10 operator = 0 4 2998 28 GeomVertexReader::operator = 0 1 787 242
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
71
inline void GeomVertexReader::operator =(GeomVertexReader const &copy);
2299 17 ~GeomVertexReader 0 4 2998 35 GeomVertexReader::~GeomVertexReader 0 0 228
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Destructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
49
inline GeomVertexReader::~GeomVertexReader(void);
2300 15 get_vertex_data 0 4 2998 33 GeomVertexReader::get_vertex_data 0 1 788 408
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_vertex_data
// Access: Published
// Description: Returns the vertex data object that the
// reader is processing. This may return NULL if the
// reader was constructed with just an array pointer.
////////////////////////////////////////////////////////////////////
75
inline GeomVertexData const *GeomVertexReader::get_vertex_data(void) const;
2301 14 get_array_data 0 4 2998 32 GeomVertexReader::get_array_data 0 1 789 325
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_array_data
// Access: Published
// Description: Returns the particular array object that the
// reader is currently processing.
////////////////////////////////////////////////////////////////////
79
inline GeomVertexArrayData const *GeomVertexReader::get_array_data(void) const;
2302 16 get_array_handle 0 4 2998 34 GeomVertexReader::get_array_handle 0 1 790 400
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_array_handle
// Access: Published
// Description: Returns the read handle to the array object that the
// read is currently processing. This low-level call
// should be used with caution.
////////////////////////////////////////////////////////////////////
87
inline GeomVertexArrayDataHandle const *GeomVertexReader::get_array_handle(void) const;
2303 10 get_stride 0 4 2998 28 GeomVertexReader::get_stride 0 1 791 459
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_stride
// Access: Published
// Description: Returns the per-row stride (bytes between consecutive
// rows) of the underlying vertex array. This low-level
// information is normally not needed to use the
// GeomVertexReader directly.
////////////////////////////////////////////////////////////////////
61
inline unsigned int GeomVertexReader::get_stride(void) const;
2304 18 get_current_thread 0 4 2998 36 GeomVertexReader::get_current_thread 0 1 792 359
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_current_thread
// Access: Published
// Description: Returns the Thread pointer of the currently-executing
// thread, as passed to the constructor of this object.
////////////////////////////////////////////////////////////////////
64
inline Thread *GeomVertexReader::get_current_thread(void) const;
2305 9 set_force 0 4 2998 27 GeomVertexReader::set_force 0 1 793 928
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_force
// Access: Published
// Description: Sets the value of the force flag. When this is true
// (the default), vertex data will be paged in from disk
// if necessary. When this is false, the GeomVertexData
// will simply return a failure code when attempting to
// read vertex data that is not resident (but will put
// it on the queue to become resident later).
//
// Normally, vertex data is always resident, so this
// will not be an issue. It is only possible for vertex
// data to be nonresident if you have enabled vertex
// paging via the GeomVertexArrayData and VertexDataPage
// interfaces.
////////////////////////////////////////////////////////////////////
52
inline void GeomVertexReader::set_force(bool force);
2306 9 get_force 0 4 2998 27 GeomVertexReader::get_force 0 1 794 298
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_force
// Access: Published
// Description: Returns the value of the force flag. See
// set_force().
////////////////////////////////////////////////////////////////////
52
inline bool GeomVertexReader::get_force(void) const;
2307 10 set_column 0 4 2998 28 GeomVertexReader::set_column 0 4 795 796 797 798 2514
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_column
// Access: Published
// Description: Sets up the reader to use the nth data type of the
// GeomVertexFormat, numbering from 0.
//
// This also resets the read row number to the start row
// (the same value passed to a previous call to
// set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_column
// Access: Published
// Description: Sets up the reader to use the data type with the
// indicated name.
//
// This also resets the read row number to the start row
// (the same value passed to a previous call to
// set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_column
// Access: Published
// Description: Sets up the reader to use the data type with the
// indicated name.
//
// This also resets the read row number to the start row
// (the same value passed to a previous call to
// set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_column
// Access: Published
// Description: Sets up the reader to use the indicated column
// description on the given array.
//
// This also resets the current read row number to the
// start row (the same value passed to a previous call
// to set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
////////////////////////////////////////////////////////////////////
275
inline bool GeomVertexReader::set_column(int column);
inline bool GeomVertexReader::set_column(basic_string< char > const &name);
inline bool GeomVertexReader::set_column(InternalName const *name);
bool GeomVertexReader::set_column(int array, GeomVertexColumn const *column);
2308 5 clear 0 4 2998 23 GeomVertexReader::clear 0 1 799 272
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::clear
// Access: Published
// Description: Resets the GeomVertexReader to the initial state.
////////////////////////////////////////////////////////////////////
42
inline void GeomVertexReader::clear(void);
2309 10 has_column 0 4 2998 28 GeomVertexReader::has_column 0 1 800 445
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::has_column
// Access: Published
// Description: Returns true if a valid data type has been
// successfully set, or false if the data type does not
// exist (or if get_force() is false and the vertex data
// is nonresident).
////////////////////////////////////////////////////////////////////
53
inline bool GeomVertexReader::has_column(void) const;
2310 9 get_array 0 4 2998 27 GeomVertexReader::get_array 0 1 801 323
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_array
// Access: Published
// Description: Returns the array index containing the data type that
// the reader is working on.
////////////////////////////////////////////////////////////////////
51
inline int GeomVertexReader::get_array(void) const;
2311 10 get_column 0 4 2998 28 GeomVertexReader::get_column 0 1 802 316
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_column
// Access: Published
// Description: Returns the description of the data type that the
// reader is working on.
////////////////////////////////////////////////////////////////////
72
inline GeomVertexColumn const *GeomVertexReader::get_column(void) const;
2312 14 set_row_unsafe 0 4 2998 32 GeomVertexReader::set_row_unsafe 0 1 803 655
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_row_unsafe
// Access: Published
// Description: Sets the start row to the indicated value, without
// internal checks. This is the same as set_row(), but
// it does not check for the possibility that the array
// has been reallocated internally for some reason; use
// only when you are confident that the array is
// unchanged and you really need every bit of available
// performance.
////////////////////////////////////////////////////////////////////
54
inline void GeomVertexReader::set_row_unsafe(int row);
2313 7 set_row 0 4 2998 25 GeomVertexReader::set_row 0 1 804 533
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_row
// Access: Published
// Description: Sets the start row to the indicated value. The
// reader will begin reading from the indicated row;
// each subsequent get_data*() call will return the data
// from the subsequent row. If set_column() is called,
// the reader will return to this row.
////////////////////////////////////////////////////////////////////
47
inline void GeomVertexReader::set_row(int row);
2314 13 get_start_row 0 4 2998 31 GeomVertexReader::get_start_row 0 1 805 375
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_start_row
// Access: Published
// Description: Returns the row index at which the reader started.
// It will return to this row if you reset the current
// column.
////////////////////////////////////////////////////////////////////
55
inline int GeomVertexReader::get_start_row(void) const;
2315 12 get_read_row 0 4 2998 30 GeomVertexReader::get_read_row 0 1 806 339
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_read_row
// Access: Published
// Description: Returns the row index from which the data will be
// retrieved by the next call to get_data*().
////////////////////////////////////////////////////////////////////
54
inline int GeomVertexReader::get_read_row(void) const;
2316 9 is_at_end 0 4 2998 27 GeomVertexReader::is_at_end 0 1 807 440
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::is_at_end
// Access: Published
// Description: Returns true if the reader is currently at the end of
// the list of vertices, false otherwise. If this is
// true, another call to get_data*() will result in a
// crash.
////////////////////////////////////////////////////////////////////
52
inline bool GeomVertexReader::is_at_end(void) const;
2317 10 get_data1f 0 4 2998 28 GeomVertexReader::get_data1f 0 1 808 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data1f
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 1-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
48
inline float GeomVertexReader::get_data1f(void);
2318 10 get_data2f 0 4 2998 28 GeomVertexReader::get_data2f 0 1 809 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data2f
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 2-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
60
inline LVecBase2f const &GeomVertexReader::get_data2f(void);
2319 10 get_data3f 0 4 2998 28 GeomVertexReader::get_data3f 0 1 810 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data3f
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 3-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
60
inline LVecBase3f const &GeomVertexReader::get_data3f(void);
2320 10 get_data4f 0 4 2998 28 GeomVertexReader::get_data4f 0 1 811 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data4f
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 4-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
60
inline LVecBase4f const &GeomVertexReader::get_data4f(void);
2321 10 get_data1d 0 4 2998 28 GeomVertexReader::get_data1d 0 1 812 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data1d
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 1-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
49
inline double GeomVertexReader::get_data1d(void);
2322 10 get_data2d 0 4 2998 28 GeomVertexReader::get_data2d 0 1 813 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data2d
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 2-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
60
inline LVecBase2d const &GeomVertexReader::get_data2d(void);
2323 10 get_data3d 0 4 2998 28 GeomVertexReader::get_data3d 0 1 814 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data3d
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 3-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
60
inline LVecBase3d const &GeomVertexReader::get_data3d(void);
2324 10 get_data4d 0 4 2998 28 GeomVertexReader::get_data4d 0 1 815 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data4d
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 4-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
60
inline LVecBase4d const &GeomVertexReader::get_data4d(void);
2325 9 get_data1 0 4 2998 27 GeomVertexReader::get_data1 0 1 816 368
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data1
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 1-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
47
inline float GeomVertexReader::get_data1(void);
2326 9 get_data2 0 4 2998 27 GeomVertexReader::get_data2 0 1 817 368
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data2
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 2-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
59
inline LVecBase2f const &GeomVertexReader::get_data2(void);
2327 9 get_data3 0 4 2998 27 GeomVertexReader::get_data3 0 1 818 368
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data3
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 3-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
59
inline LVecBase3f const &GeomVertexReader::get_data3(void);
2328 9 get_data4 0 4 2998 27 GeomVertexReader::get_data4 0 1 819 368
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data4
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 4-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
59
inline LVecBase4f const &GeomVertexReader::get_data4(void);
2329 10 get_data1i 0 4 2998 28 GeomVertexReader::get_data1i 0 1 820 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data1i
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 1-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
46
inline int GeomVertexReader::get_data1i(void);
2330 10 get_data2i 0 4 2998 28 GeomVertexReader::get_data2i 0 1 821 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data2i
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 2-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
60
inline LVecBase2i const &GeomVertexReader::get_data2i(void);
2331 10 get_data3i 0 4 2998 28 GeomVertexReader::get_data3i 0 1 822 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data3i
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 3-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
60
inline LVecBase3i const &GeomVertexReader::get_data3i(void);
2332 10 get_data4i 0 4 2998 28 GeomVertexReader::get_data4i 0 1 823 369
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data4i
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 4-component value, and advances the
// read row.
////////////////////////////////////////////////////////////////////
60
inline LVecBase4i const &GeomVertexReader::get_data4i(void);
2333 6 output 0 4 2998 24 GeomVertexReader::output 0 1 824 224
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
50
void GeomVertexReader::output(ostream &out) const;
2334 16 GeomVertexWriter 0 4 2999 34 GeomVertexWriter::GeomVertexWriter 0 13 825 826 827 828 829 830 831 832 833 834 835 836 837 3393
// Filename: geomVertexWriter.I
// Created by: drose (25Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Default Constructor
// Access: Published
// Description: Constructs an invalid GeomVertexWriter. You must use
// the assignment operator to assign a valid
// GeomVertexWriter to this object before you can use
// it.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated data object.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated data object. This flavor creates the
// writer specifically to process the named data type.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated data object. This flavor creates the
// writer specifically to process the named data type.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated array only.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated array only.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Public
// Description: Constructs a new writer to process the vertices of
// the indicated data object. This flavor creates the
// writer specifically to process the named data type.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
861
inline GeomVertexWriter::GeomVertexWriter(Thread *current_thread = ((get_current_thread())));
inline GeomVertexWriter::GeomVertexWriter(GeomVertexData *vertex_data, Thread *current_thread = ((get_current_thread())));
inline GeomVertexWriter::GeomVertexWriter(GeomVertexData *vertex_data, basic_string< char > const &name, Thread *current_thread = ((get_current_thread())));
inline GeomVertexWriter::GeomVertexWriter(GeomVertexData *vertex_data, InternalName const *name, Thread *current_thread = ((get_current_thread())));
inline GeomVertexWriter::GeomVertexWriter(GeomVertexArrayData *array_data, Thread *current_thread = ((get_current_thread())));
inline GeomVertexWriter::GeomVertexWriter(GeomVertexArrayData *array_data, int column, Thread *current_thread = ((get_current_thread())));
inline GeomVertexWriter::GeomVertexWriter(GeomVertexWriter const &copy);
2335 10 operator = 0 4 2999 28 GeomVertexWriter::operator = 0 1 838 242
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
71
inline void GeomVertexWriter::operator =(GeomVertexWriter const &copy);
2336 17 ~GeomVertexWriter 0 4 2999 35 GeomVertexWriter::~GeomVertexWriter 0 0 228
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Destructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
49
inline GeomVertexWriter::~GeomVertexWriter(void);
2337 15 get_vertex_data 0 4 2999 33 GeomVertexWriter::get_vertex_data 0 1 839 408
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_vertex_data
// Access: Published
// Description: Returns the vertex data object that the
// writer is processing. This may return NULL if the
// writer was constructed with just an array pointer.
////////////////////////////////////////////////////////////////////
69
inline GeomVertexData *GeomVertexWriter::get_vertex_data(void) const;
2338 14 get_array_data 0 4 2999 32 GeomVertexWriter::get_array_data 0 1 840 325
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_array_data
// Access: Published
// Description: Returns the particular array object that the
// writer is currently processing.
////////////////////////////////////////////////////////////////////
73
inline GeomVertexArrayData *GeomVertexWriter::get_array_data(void) const;
2339 16 get_array_handle 0 4 2999 34 GeomVertexWriter::get_array_handle 0 1 841 523
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_array_handle
// Access: Published
// Description: Returns the write handle to the array object that the
// writer is currently processing. This low-level call
// should be used with caution; be careful with
// modifying the data in the handle out from under the
// GeomVertexWriter.
////////////////////////////////////////////////////////////////////
81
inline GeomVertexArrayDataHandle *GeomVertexWriter::get_array_handle(void) const;
2340 10 get_stride 0 4 2999 28 GeomVertexWriter::get_stride 0 1 842 459
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_stride
// Access: Published
// Description: Returns the per-row stride (bytes between consecutive
// rows) of the underlying vertex array. This low-level
// information is normally not needed to use the
// GeomVertexWriter directly.
////////////////////////////////////////////////////////////////////
61
inline unsigned int GeomVertexWriter::get_stride(void) const;
2341 18 get_current_thread 0 4 2999 36 GeomVertexWriter::get_current_thread 0 1 843 359
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_current_thread
// Access: Published
// Description: Returns the Thread pointer of the currently-executing
// thread, as passed to the constructor of this object.
////////////////////////////////////////////////////////////////////
64
inline Thread *GeomVertexWriter::get_current_thread(void) const;
2342 10 set_column 0 4 2999 28 GeomVertexWriter::set_column 0 4 844 845 846 847 2514
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_column
// Access: Published
// Description: Sets up the writer to use the nth data type of the
// GeomVertexFormat, numbering from 0.
//
// This also resets the write row number to the start
// row (the same value passed to a previous call to
// set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_column
// Access: Published
// Description: Sets up the writer to use the data type with the
// indicated name.
//
// This also resets the write row number to the start
// row (the same value passed to a previous call to
// set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_column
// Access: Published
// Description: Sets up the writer to use the data type with the
// indicated name.
//
// This also resets the write number to the start row
// (the same value passed to a previous call to
// set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_column
// Access: Published
// Description: Sets up the writer to use the indicated column
// description on the given array.
//
// This also resets the current write row number to the
// start row (the same value passed to a previous call
// to set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
////////////////////////////////////////////////////////////////////
275
inline bool GeomVertexWriter::set_column(int column);
inline bool GeomVertexWriter::set_column(basic_string< char > const &name);
inline bool GeomVertexWriter::set_column(InternalName const *name);
bool GeomVertexWriter::set_column(int array, GeomVertexColumn const *column);
2343 5 clear 0 4 2999 23 GeomVertexWriter::clear 0 1 848 272
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::clear
// Access: Published
// Description: Resets the GeomVertexWriter to the initial state.
////////////////////////////////////////////////////////////////////
42
inline void GeomVertexWriter::clear(void);
2344 16 reserve_num_rows 0 4 2999 34 GeomVertexWriter::reserve_num_rows 0 1 849 597
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::reserve_num_rows
// Access: Published
// Description: This ensures that enough memory space for num_rows is
// allocated, so that you may add up to num_rows rows
// without causing a new memory allocation. This is a
// performance optimization only; it is especially
// useful when you know the number of rows you will be
// adding ahead of time.
////////////////////////////////////////////////////////////////////
54
bool GeomVertexWriter::reserve_num_rows(int num_rows);
2345 10 has_column 0 4 2999 28 GeomVertexWriter::has_column 0 1 850 364
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::has_column
// Access: Published
// Description: Returns true if a valid data type has been
// successfully set, or false if the data type does not
// exist.
////////////////////////////////////////////////////////////////////
53
inline bool GeomVertexWriter::has_column(void) const;
2346 9 get_array 0 4 2999 27 GeomVertexWriter::get_array 0 1 851 323
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_array
// Access: Published
// Description: Returns the array index containing the data type that
// the writer is working on.
////////////////////////////////////////////////////////////////////
51
inline int GeomVertexWriter::get_array(void) const;
2347 10 get_column 0 4 2999 28 GeomVertexWriter::get_column 0 1 852 316
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_column
// Access: Published
// Description: Returns the description of the data type that the
// writer is working on.
////////////////////////////////////////////////////////////////////
72
inline GeomVertexColumn const *GeomVertexWriter::get_column(void) const;
2348 14 set_row_unsafe 0 4 2999 32 GeomVertexWriter::set_row_unsafe 0 1 853 655
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_row_unsafe
// Access: Published
// Description: Sets the start row to the indicated value, without
// internal checks. This is the same as set_row(), but
// it does not check for the possibility that the array
// has been reallocated internally for some reason; use
// only when you are confident that the array is
// unchanged and you really need every bit of available
// performance.
////////////////////////////////////////////////////////////////////
54
inline void GeomVertexWriter::set_row_unsafe(int row);
2349 7 set_row 0 4 2999 25 GeomVertexWriter::set_row 0 1 854 530
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_row
// Access: Published
// Description: Sets the start row to the indicated value. The
// writer will begin writing to the indicated row;
// each subsequent set_data*() call will store the data
// into the subsequent row. If set_column() is called,
// the writer will return to this row.
////////////////////////////////////////////////////////////////////
47
inline void GeomVertexWriter::set_row(int row);
2350 13 get_start_row 0 4 2999 31 GeomVertexWriter::get_start_row 0 1 855 376
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_start_row
// Access: Published
// Description: Returns the row index at which the writer
// started. It will return to this row if you reset
// the current column.
////////////////////////////////////////////////////////////////////
55
inline int GeomVertexWriter::get_start_row(void) const;
2351 13 get_write_row 0 4 2999 31 GeomVertexWriter::get_write_row 0 1 856 368
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_write_row
// Access: Published
// Description: Returns the row index to which the data will be
// written at the next call to set_data*() or
// add_data*().
////////////////////////////////////////////////////////////////////
55
inline int GeomVertexWriter::get_write_row(void) const;
2352 9 is_at_end 0 4 2999 27 GeomVertexWriter::is_at_end 0 1 857 509
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::is_at_end
// Access: Published
// Description: Returns true if the writer is currently at the end of
// the list of vertices, false otherwise. If this is
// true, another call to set_data*() will result in a
// crash, but another call to add_data*() will add a new
// row.
////////////////////////////////////////////////////////////////////
52
inline bool GeomVertexWriter::is_at_end(void) const;
2353 10 set_data1f 0 4 2999 28 GeomVertexWriter::set_data1f 0 1 858 429
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data1f
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
53
inline void GeomVertexWriter::set_data1f(float data);
2354 10 set_data2f 0 4 2999 28 GeomVertexWriter::set_data2f 0 2 859 860 860
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2f
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2f
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
125
inline void GeomVertexWriter::set_data2f(float x, float y);
inline void GeomVertexWriter::set_data2f(LVecBase2f const &data);
2355 10 set_data3f 0 4 2999 28 GeomVertexWriter::set_data3f 0 2 861 862 860
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3f
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3f
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
134
inline void GeomVertexWriter::set_data3f(float x, float y, float z);
inline void GeomVertexWriter::set_data3f(LVecBase3f const &data);
2356 10 set_data4f 0 4 2999 28 GeomVertexWriter::set_data4f 0 2 863 864 860
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4f
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4f
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
143
inline void GeomVertexWriter::set_data4f(float x, float y, float z, float w);
inline void GeomVertexWriter::set_data4f(LVecBase4f const &data);
2357 10 set_data1d 0 4 2999 28 GeomVertexWriter::set_data1d 0 1 865 429
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data1d
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
54
inline void GeomVertexWriter::set_data1d(double data);
2358 10 set_data2d 0 4 2999 28 GeomVertexWriter::set_data2d 0 2 866 867 860
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2d
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2d
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
127
inline void GeomVertexWriter::set_data2d(double x, double y);
inline void GeomVertexWriter::set_data2d(LVecBase2d const &data);
2359 10 set_data3d 0 4 2999 28 GeomVertexWriter::set_data3d 0 2 868 869 860
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3d
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3d
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
137
inline void GeomVertexWriter::set_data3d(double x, double y, double z);
inline void GeomVertexWriter::set_data3d(LVecBase3d const &data);
2360 10 set_data4d 0 4 2999 28 GeomVertexWriter::set_data4d 0 2 870 871 860
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4d
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4d
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
147
inline void GeomVertexWriter::set_data4d(double x, double y, double z, double w);
inline void GeomVertexWriter::set_data4d(LVecBase4d const &data);
2361 9 set_data1 0 4 2999 27 GeomVertexWriter::set_data1 0 1 872 428
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data1
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
52
inline void GeomVertexWriter::set_data1(float data);
2362 9 set_data2 0 4 2999 27 GeomVertexWriter::set_data2 0 2 873 874 858
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
123
inline void GeomVertexWriter::set_data2(float x, float y);
inline void GeomVertexWriter::set_data2(LVecBase2f const &data);
2363 9 set_data3 0 4 2999 27 GeomVertexWriter::set_data3 0 2 875 876 858
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
132
inline void GeomVertexWriter::set_data3(float x, float y, float z);
inline void GeomVertexWriter::set_data3(LVecBase3f const &data);
2364 9 set_data4 0 4 2999 27 GeomVertexWriter::set_data4 0 2 877 878 858
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
141
inline void GeomVertexWriter::set_data4(float x, float y, float z, float w);
inline void GeomVertexWriter::set_data4(LVecBase4f const &data);
2365 10 set_data1i 0 4 2999 28 GeomVertexWriter::set_data1i 0 1 879 429
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data1i
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
51
inline void GeomVertexWriter::set_data1i(int data);
2366 10 set_data2i 0 4 2999 28 GeomVertexWriter::set_data2i 0 2 880 881 1291
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2i
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2i
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2i
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
182
inline void GeomVertexWriter::set_data2i(int a, int b);
inline void GeomVertexWriter::set_data2i(int const data[2]);
inline void GeomVertexWriter::set_data2i(LVecBase2i const &data);
2367 10 set_data3i 0 4 2999 28 GeomVertexWriter::set_data3i 0 2 882 883 1291
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3i
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3i
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3i
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
189
inline void GeomVertexWriter::set_data3i(int a, int b, int c);
inline void GeomVertexWriter::set_data3i(int const data[3]);
inline void GeomVertexWriter::set_data3i(LVecBase3i const &data);
2368 10 set_data4i 0 4 2999 28 GeomVertexWriter::set_data4i 0 2 884 885 1291
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4i
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4i
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4i
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
////////////////////////////////////////////////////////////////////
196
inline void GeomVertexWriter::set_data4i(int a, int b, int c, int d);
inline void GeomVertexWriter::set_data4i(int const data[4]);
inline void GeomVertexWriter::set_data4i(LVecBase4i const &data);
2369 10 add_data1f 0 4 2999 28 GeomVertexWriter::add_data1f 0 1 886 450
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data1f
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
53
inline void GeomVertexWriter::add_data1f(float data);
2370 10 add_data2f 0 4 2999 28 GeomVertexWriter::add_data2f 0 2 887 888 902
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2f
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2f
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
125
inline void GeomVertexWriter::add_data2f(float x, float y);
inline void GeomVertexWriter::add_data2f(LVecBase2f const &data);
2371 10 add_data3f 0 4 2999 28 GeomVertexWriter::add_data3f 0 2 889 890 902
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3f
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3f
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
134
inline void GeomVertexWriter::add_data3f(float x, float y, float z);
inline void GeomVertexWriter::add_data3f(LVecBase3f const &data);
2372 10 add_data4f 0 4 2999 28 GeomVertexWriter::add_data4f 0 2 891 892 902
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4f
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4f
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
143
inline void GeomVertexWriter::add_data4f(float x, float y, float z, float w);
inline void GeomVertexWriter::add_data4f(LVecBase4f const &data);
2373 10 add_data1d 0 4 2999 28 GeomVertexWriter::add_data1d 0 1 893 450
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data1d
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
54
inline void GeomVertexWriter::add_data1d(double data);
2374 10 add_data2d 0 4 2999 28 GeomVertexWriter::add_data2d 0 2 894 895 902
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2d
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2d
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
127
inline void GeomVertexWriter::add_data2d(double x, double y);
inline void GeomVertexWriter::add_data2d(LVecBase2d const &data);
2375 10 add_data3d 0 4 2999 28 GeomVertexWriter::add_data3d 0 2 896 897 902
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3d
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3d
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
137
inline void GeomVertexWriter::add_data3d(double x, double y, double z);
inline void GeomVertexWriter::add_data3d(LVecBase3d const &data);
2376 10 add_data4d 0 4 2999 28 GeomVertexWriter::add_data4d 0 2 898 899 902
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4d
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4d
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
147
inline void GeomVertexWriter::add_data4d(double x, double y, double z, double w);
inline void GeomVertexWriter::add_data4d(LVecBase4d const &data);
2377 9 add_data1 0 4 2999 27 GeomVertexWriter::add_data1 0 1 900 449
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data1
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
52
inline void GeomVertexWriter::add_data1(float data);
2378 9 add_data2 0 4 2999 27 GeomVertexWriter::add_data2 0 2 901 902 900
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
123
inline void GeomVertexWriter::add_data2(float x, float y);
inline void GeomVertexWriter::add_data2(LVecBase2f const &data);
2379 9 add_data3 0 4 2999 27 GeomVertexWriter::add_data3 0 2 903 904 900
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
132
inline void GeomVertexWriter::add_data3(float x, float y, float z);
inline void GeomVertexWriter::add_data3(LVecBase3f const &data);
2380 9 add_data4 0 4 2999 27 GeomVertexWriter::add_data4 0 2 905 906 900
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
141
inline void GeomVertexWriter::add_data4(float x, float y, float z, float w);
inline void GeomVertexWriter::add_data4(LVecBase4f const &data);
2381 10 add_data1i 0 4 2999 28 GeomVertexWriter::add_data1i 0 1 907 450
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data1i
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
51
inline void GeomVertexWriter::add_data1i(int data);
2382 10 add_data2i 0 4 2999 28 GeomVertexWriter::add_data2i 0 2 908 909 1354
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2i
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2i
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2i
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
182
inline void GeomVertexWriter::add_data2i(int a, int b);
inline void GeomVertexWriter::add_data2i(int const data[2]);
inline void GeomVertexWriter::add_data2i(LVecBase2i const &data);
2383 10 add_data3i 0 4 2999 28 GeomVertexWriter::add_data3i 0 2 910 911 1354
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3i
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3i
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3i
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
189
inline void GeomVertexWriter::add_data3i(int a, int b, int c);
inline void GeomVertexWriter::add_data3i(int const data[3]);
inline void GeomVertexWriter::add_data3i(LVecBase3i const &data);
2384 10 add_data4i 0 4 2999 28 GeomVertexWriter::add_data4i 0 2 912 913 1354
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4i
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4i
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4i
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
////////////////////////////////////////////////////////////////////
196
inline void GeomVertexWriter::add_data4i(int a, int b, int c, int d);
inline void GeomVertexWriter::add_data4i(int const data[4]);
inline void GeomVertexWriter::add_data4i(LVecBase4i const &data);
2385 6 output 0 4 2999 24 GeomVertexWriter::output 0 1 914 224
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
50
void GeomVertexWriter::output(ostream &out) const;
2386 26 upcast_to_GeomVertexWriter 0 12 3000 46 GeomVertexRewriter::upcast_to_GeomVertexWriter 0 1 947 50
upcast from GeomVertexRewriter to GeomVertexWriter
71
GeomVertexWriter *GeomVertexRewriter::upcast_to_GeomVertexWriter(void);
2387 30 downcast_to_GeomVertexRewriter 0 12 2999 48 GeomVertexWriter::downcast_to_GeomVertexRewriter 0 1 948 52
downcast from GeomVertexWriter to GeomVertexRewriter
75
GeomVertexRewriter *GeomVertexWriter::downcast_to_GeomVertexRewriter(void);
2388 26 upcast_to_GeomVertexReader 0 12 3000 46 GeomVertexRewriter::upcast_to_GeomVertexReader 0 1 949 50
upcast from GeomVertexRewriter to GeomVertexReader
71
GeomVertexReader *GeomVertexRewriter::upcast_to_GeomVertexReader(void);
2389 30 downcast_to_GeomVertexRewriter 0 12 2998 48 GeomVertexReader::downcast_to_GeomVertexRewriter 0 1 950 52
downcast from GeomVertexReader to GeomVertexRewriter
75
GeomVertexRewriter *GeomVertexReader::downcast_to_GeomVertexRewriter(void);
2390 18 GeomVertexRewriter 0 4 3000 38 GeomVertexRewriter::GeomVertexRewriter 0 13 915 916 917 918 919 920 921 922 923 924 925 926 927 3011
// Filename: geomVertexRewriter.I
// Created by: drose (28Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Default Constructor
// Access: Published
// Description: Constructs an invalid GeomVertexRewriter. You must use
// the assignment operator to assign a valid
// GeomVertexRewriter to this object before you can use
// it.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated data object.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated data object. This flavor creates the
// rewriter specifically to process the named data type.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated data object. This flavor creates the
// rewriter specifically to process the named data type.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated array only.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated array only.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
891
inline GeomVertexRewriter::GeomVertexRewriter(Thread *current_thread = ((get_current_thread())));
inline GeomVertexRewriter::GeomVertexRewriter(GeomVertexData *vertex_data, Thread *current_thread = ((get_current_thread())));
inline GeomVertexRewriter::GeomVertexRewriter(GeomVertexData *vertex_data, basic_string< char > const &name, Thread *current_thread = ((get_current_thread())));
inline GeomVertexRewriter::GeomVertexRewriter(GeomVertexData *vertex_data, InternalName const *name, Thread *current_thread = ((get_current_thread())));
inline GeomVertexRewriter::GeomVertexRewriter(GeomVertexArrayData *array_data, Thread *current_thread = ((get_current_thread())));
inline GeomVertexRewriter::GeomVertexRewriter(GeomVertexArrayData *array_data, int column, Thread *current_thread = ((get_current_thread())));
inline GeomVertexRewriter::GeomVertexRewriter(GeomVertexRewriter const &copy);
2391 10 operator = 0 4 3000 30 GeomVertexRewriter::operator = 0 1 928 244
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
75
inline void GeomVertexRewriter::operator =(GeomVertexRewriter const &copy);
2392 19 ~GeomVertexRewriter 0 4 3000 39 GeomVertexRewriter::~GeomVertexRewriter 0 0 230
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Destructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
53
inline GeomVertexRewriter::~GeomVertexRewriter(void);
2393 15 get_vertex_data 0 4 3000 35 GeomVertexRewriter::get_vertex_data 0 1 929 315
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_vertex_data
// Access: Published
// Description: Returns the vertex data object that the
// rewriter is processing.
////////////////////////////////////////////////////////////////////
71
inline GeomVertexData *GeomVertexRewriter::get_vertex_data(void) const;
2394 14 get_array_data 0 4 3000 34 GeomVertexRewriter::get_array_data 0 1 930 329
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_array_data
// Access: Published
// Description: Returns the particular array object that the
// rewriter is currently processing.
////////////////////////////////////////////////////////////////////
75
inline GeomVertexArrayData *GeomVertexRewriter::get_array_data(void) const;
2395 16 get_array_handle 0 4 3000 36 GeomVertexRewriter::get_array_handle 0 1 931 529
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_array_handle
// Access: Published
// Description: Returns the write handle to the array object that the
// rewriter is currently processing. This low-level call
// should be used with caution; be careful with
// modifying the data in the handle out from under the
// GeomVertexRewriter.
////////////////////////////////////////////////////////////////////
83
inline GeomVertexArrayDataHandle *GeomVertexRewriter::get_array_handle(void) const;
2396 10 get_stride 0 4 3000 30 GeomVertexRewriter::get_stride 0 1 932 463
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_stride
// Access: Published
// Description: Returns the per-row stride (bytes between consecutive
// rows) of the underlying vertex array. This low-level
// information is normally not needed to use the
// GeomVertexRewriter directly.
////////////////////////////////////////////////////////////////////
63
inline unsigned int GeomVertexRewriter::get_stride(void) const;
2397 18 get_current_thread 0 4 3000 38 GeomVertexRewriter::get_current_thread 0 1 933 361
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_current_thread
// Access: Published
// Description: Returns the Thread pointer of the currently-executing
// thread, as passed to the constructor of this object.
////////////////////////////////////////////////////////////////////
66
inline Thread *GeomVertexRewriter::get_current_thread(void) const;
2398 10 set_column 0 4 3000 30 GeomVertexRewriter::set_column 0 4 934 935 936 937 2654
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::set_column
// Access: Published
// Description: Sets up the rewriter to use the nth data type of the
// GeomVertexFormat, numbering from 0.
//
// This also resets both the read and write row
// numbers to the start row (the same value passed to
// a previous call to set_row(), or 0 if set_row()
// was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::set_column
// Access: Published
// Description: Sets up the rewriter to use the data type with the
// indicated name.
//
// This also resets both the read and write row
// numbers to the start row (the same value passed to
// a previous call to set_row(), or 0 if set_row()
// was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::set_column
// Access: Published
// Description: Sets up the rewriter to use the data type with the
// indicated name.
//
// This also resets both the read and write row
// numbers to the start row (the same value passed to
// a previous call to set_row(), or 0 if set_row()
// was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::set_column
// Access: Published
// Description: Sets up the rewriter to use the indicated column
// description on the given array.
//
// This also resets both the read and write row
// numbers to the start row (the same value passed to
// a previous call to set_row(), or 0 if set_row()
// was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
////////////////////////////////////////////////////////////////////
290
inline bool GeomVertexRewriter::set_column(int column);
inline bool GeomVertexRewriter::set_column(basic_string< char > const &name);
inline bool GeomVertexRewriter::set_column(InternalName const *name);
inline bool GeomVertexRewriter::set_column(int array, GeomVertexColumn const *column);
2399 5 clear 0 4 3000 25 GeomVertexRewriter::clear 0 1 938 276
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::clear
// Access: Published
// Description: Resets the GeomVertexRewriter to the initial state.
////////////////////////////////////////////////////////////////////
44
inline void GeomVertexRewriter::clear(void);
2400 10 has_column 0 4 3000 30 GeomVertexRewriter::has_column 0 1 939 366
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::has_column
// Access: Published
// Description: Returns true if a valid data type has been
// successfully set, or false if the data type does not
// exist.
////////////////////////////////////////////////////////////////////
55
inline bool GeomVertexRewriter::has_column(void) const;
2401 9 get_array 0 4 3000 29 GeomVertexRewriter::get_array 0 1 940 327
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_array
// Access: Published
// Description: Returns the array index containing the data type that
// the rewriter is working on.
////////////////////////////////////////////////////////////////////
53
inline int GeomVertexRewriter::get_array(void) const;
2402 10 get_column 0 4 3000 30 GeomVertexRewriter::get_column 0 1 941 320
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_column
// Access: Published
// Description: Returns the description of the data type that the
// rewriter is working on.
////////////////////////////////////////////////////////////////////
74
inline GeomVertexColumn const *GeomVertexRewriter::get_column(void) const;
2403 14 set_row_unsafe 0 4 3000 34 GeomVertexRewriter::set_row_unsafe 0 1 942 657
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::set_row_unsafe
// Access: Published
// Description: Sets the start row to the indicated value, without
// internal checks. This is the same as set_row(), but
// it does not check for the possibility that the array
// has been reallocated internally for some reason; use
// only when you are confident that the array is
// unchanged and you really need every bit of available
// performance.
////////////////////////////////////////////////////////////////////
56
inline void GeomVertexRewriter::set_row_unsafe(int row);
2404 7 set_row 0 4 3000 27 GeomVertexRewriter::set_row 0 1 943 379
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::set_row
// Access: Published
// Description: Sets the start, write, and write index to the
// indicated value. The rewriter will begin traversing
// from the given row.
////////////////////////////////////////////////////////////////////
49
inline void GeomVertexRewriter::set_row(int row);
2405 13 get_start_row 0 4 3000 33 GeomVertexRewriter::get_start_row 0 1 944 380
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_start_row
// Access: Published
// Description: Returns the row index at which the rewriter
// started. It will return to this row if you reset
// the current column.
////////////////////////////////////////////////////////////////////
57
inline int GeomVertexRewriter::get_start_row(void) const;
2406 9 is_at_end 0 4 3000 29 GeomVertexRewriter::is_at_end 0 1 945 348
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::is_at_end
// Access: Published
// Description: Returns true if the reader or writer is currently at
// the end of the list of vertices, false otherwise.
////////////////////////////////////////////////////////////////////
54
inline bool GeomVertexRewriter::is_at_end(void) const;
2407 6 output 0 4 3000 26 GeomVertexRewriter::output 0 1 946 226
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
52
void GeomVertexRewriter::output(ostream &out) const;
2408 37 upcast_to_TypedWritableReferenceCount 0 12 3001 46 Texture::upcast_to_TypedWritableReferenceCount 0 1 1195 50
upcast from Texture to TypedWritableReferenceCount
82
TypedWritableReferenceCount *Texture::upcast_to_TypedWritableReferenceCount(void);
2409 19 downcast_to_Texture 0 12 2951 48 TypedWritableReferenceCount::downcast_to_Texture 0 1 1196 52
downcast from TypedWritableReferenceCount to Texture
64
Texture *TypedWritableReferenceCount::downcast_to_Texture(void);
2410 17 upcast_to_Namable 0 12 3001 26 Texture::upcast_to_Namable 0 1 1197 30
upcast from Texture to Namable
42
Namable *Texture::upcast_to_Namable(void);
2411 19 downcast_to_Texture 0 12 2937 28 Namable::downcast_to_Texture 0 1 1198 32
downcast from Namable to Texture
44
Texture *Namable::downcast_to_Texture(void);
2412 7 Texture 0 4 3001 16 Texture::Texture 0 2 951 952 763
////////////////////////////////////////////////////////////////////
// Function: Texture::Constructor
// Access: Published
// Description: Constructs an empty texture. The default is to set
// up the texture as an empty 2-d texture; follow up
// with one of the variants of setup_texture() if this
// is not what you want.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::Copy Constructor
// Access: Protected
// Description: Use Texture::make_copy() to make a duplicate copy of
// an existing Texture.
////////////////////////////////////////////////////////////////////
66
Texture::Texture(basic_string< char > const &name = ((string())));
2413 8 ~Texture 0 6 3001 17 Texture::~Texture 0 0 227
////////////////////////////////////////////////////////////////////
// Function: Texture::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
32
virtual Texture::~Texture(void);
2414 9 make_copy 0 4 3001 18 Texture::make_copy 0 1 953 1236
// Filename: texture.I
// Created by: drose (05Feb99)
// Updated by: fperazzi, PandaSE(29Apr10) (added setup_2d_texture_array)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::make_copy
// Access: Published
// Description: Returns a new copy of the same Texture. This copy,
// if applied to geometry, will be copied into texture
// as a separate texture from the original, so it will
// be duplicated in texture memory (and may be
// independently modified if desired).
//
// If the Texture is a VideoTexture, the resulting
// duplicate may be animated independently of the
// original.
////////////////////////////////////////////////////////////////////
59
inline PointerTo< Texture > Texture::make_copy(void) const;
2415 5 clear 0 4 3001 14 Texture::clear 0 1 954 316
////////////////////////////////////////////////////////////////////
// Function: Texture::clear
// Access: Published, Virtual
// Description: Reinitializes the texture to its default, empty
// state (except for the name).
////////////////////////////////////////////////////////////////////
33
inline void Texture::clear(void);
2416 13 setup_texture 0 4 3001 22 Texture::setup_texture 0 1 955 425
////////////////////////////////////////////////////////////////////
// Function: Texture::setup_texture
// Access: Published
// Description: Sets the texture to the indicated type and
// dimensions, presumably in preparation for calling
// read() or load(), or set_ram_image() or
// modify_ram_image().
////////////////////////////////////////////////////////////////////
169
inline void Texture::setup_texture(Texture::TextureType texture_type, int x_size, int y_size, int z_size, Texture::ComponentType component_type, Texture::Format format);
2417 16 setup_1d_texture 0 4 3001 25 Texture::setup_1d_texture 0 2 956 957 841
////////////////////////////////////////////////////////////////////
// Function: Texture::setup_1d_texture
// Access: Published
// Description: Sets the texture as an empty 1-d texture with no
// dimensions. Follow up with read() or load() to fill
// the texture properties and image data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::setup_1d_texture
// Access: Published
// Description: Sets the texture as an empty 1-d texture with the
// specified dimensions and properties. Follow up with
// set_ram_image() or modify_ram_image() to fill the
// image data.
////////////////////////////////////////////////////////////////////
158
inline void Texture::setup_1d_texture(void);
inline void Texture::setup_1d_texture(int x_size, Texture::ComponentType component_type, Texture::Format format);
2418 16 setup_2d_texture 0 4 3001 25 Texture::setup_2d_texture 0 2 958 959 841
////////////////////////////////////////////////////////////////////
// Function: Texture::setup_2d_texture
// Access: Published
// Description: Sets the texture as an empty 2-d texture with no
// dimensions. Follow up with read() or load() to fill
// the texture properties and image data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::setup_2d_texture
// Access: Published
// Description: Sets the texture as an empty 2-d texture with the
// specified dimensions and properties. Follow up with
// set_ram_image() or modify_ram_image() to fill the
// image data.
////////////////////////////////////////////////////////////////////
170
inline void Texture::setup_2d_texture(void);
inline void Texture::setup_2d_texture(int x_size, int y_size, Texture::ComponentType component_type, Texture::Format format);
2419 16 setup_3d_texture 0 4 3001 25 Texture::setup_3d_texture 0 3 960 961 962 957
////////////////////////////////////////////////////////////////////
// Function: Texture::setup_3d_texture
// Access: Published
// Description: Sets the texture as an empty 3-d texture with no
// dimensions (though if you know the depth ahead
// of time, it saves a bit of reallocation later).
// Follow up with read() or load() to fill the texture
// properties and image data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::setup_3d_texture
// Access: Published
// Description: Sets the texture as an empty 3-d texture with the
// specified dimensions and properties. Follow up with
// set_ram_image() or modify_ram_image() to fill the
// image data.
////////////////////////////////////////////////////////////////////
194
inline void Texture::setup_3d_texture(int z_size = (1));
inline void Texture::setup_3d_texture(int x_size, int y_size, int z_size, Texture::ComponentType component_type, Texture::Format format);
2420 14 setup_cube_map 0 4 3001 23 Texture::setup_cube_map 0 2 963 964 1031
////////////////////////////////////////////////////////////////////
// Function: Texture::setup_cube_map
// Access: Published
// Description: Sets the texture as an empty cube map texture with no
// dimensions. Follow up with read() or load() to fill
// the texture properties and image data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::setup_cube_map
// Access: Published
// Description: Sets the texture as an empty cube map texture with
// the specified dimensions and properties. Follow up
// with set_ram_image() or modify_ram_image() to fill
// the image data.
//
// Note that a cube map should always consist of six
// square images, so x_size and y_size will be the same,
// and z_size is always 6.
////////////////////////////////////////////////////////////////////
152
inline void Texture::setup_cube_map(void);
inline void Texture::setup_cube_map(int size, Texture::ComponentType component_type, Texture::Format format);
2421 22 setup_2d_texture_array 0 4 3001 31 Texture::setup_2d_texture_array 0 3 965 966 967 980
////////////////////////////////////////////////////////////////////
// Function: Texture::setup_2d_texture_array
// Access: Published
// Description: Sets the texture as an empty 2-d texture array with
// no dimensions (though if you know the depth ahead
// of time, it saves a bit of reallocation later).
// Follow up with read() or load() to fill the texture
// properties and image data.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::setup_2d_texture_array
// Access: Published
// Description: Sets the texture as an empty 2-d texture array with the
// specified dimensions and properties. Follow up with
// set_ram_image() or modify_ram_image() to fill the
// image data.
////////////////////////////////////////////////////////////////////
206
inline void Texture::setup_2d_texture_array(int z_size = (1));
inline void Texture::setup_2d_texture_array(int x_size, int y_size, int z_size, Texture::ComponentType component_type, Texture::Format format);
2422 31 generate_normalization_cube_map 0 4 3001 40 Texture::generate_normalization_cube_map 0 1 968 601
////////////////////////////////////////////////////////////////////
// Function: Texture::generate_normalization_cube_map
// Access: Published
// Description: Generates a special cube map image in the texture
// that can be used to apply bump mapping effects: for
// each texel in the cube map that is indexed by the 3-d
// texture coordinates (x, y, z), the resulting value is
// the normalized vector (x, y, z) (compressed from
// -1..1 into 0..1).
////////////////////////////////////////////////////////////////////
56
void Texture::generate_normalization_cube_map(int size);
2423 24 generate_alpha_scale_map 0 4 3001 33 Texture::generate_alpha_scale_map 0 1 969 534
////////////////////////////////////////////////////////////////////
// Function: Texture::generate_alpha_scale_map
// Access: Published
// Description: Generates a special 256x1 1-d texture that can be
// used to apply an arbitrary alpha scale to objects by
// judicious use of texture matrix. The texture is a
// gradient, with an alpha of 0 on the left (U = 0), and
// 255 on the right (U = 1).
////////////////////////////////////////////////////////////////////
45
void Texture::generate_alpha_scale_map(void);
2424 4 read 0 4 3001 13 Texture::read 0 9 970 971 972 973 974 975 976 977 978 5206
////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Reads the named filename into the texture.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Combine a 3-component image with a grayscale image
// to get a 4-component image.
//
// See the description of the full-parameter read()
// method for the meaning of the
// primary_file_num_channels and alpha_file_channel
// parameters.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Reads a single file into a single page or mipmap
// level, or automatically reads a series of files into
// a series of pages and/or mipmap levels.
//
// See the description of the full-parameter read()
// method for the meaning of the various parameters.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Reads the texture from the indicated filename. If
// primary_file_num_channels is not 0, it specifies the
// number of components to downgrade the image to if it
// is greater than this number.
//
// If the filename has the extension .txo, this
// implicitly reads a texture object instead of a
// filename (which replaces all of the texture
// properties). In this case, all the rest of the
// parameters are ignored, and the filename should not
// contain any hash marks; just the one named file will
// be read, since a single .txo file can contain all
// pages and mipmaps necessary to define a texture.
//
// If alpha_fullpath is not empty, it specifies the name
// of a file from which to retrieve the alpha. In this
// case, alpha_file_channel represents the numeric
// channel of this image file to use as the resulting
// texture's alpha channel; usually, this is 0 to
// indicate the grayscale combination of r, g, b; or it
// may be a one-based channel number, e.g. 1 for the red
// channel, 2 for the green channel, and so on.
//
// If read pages is false, then z indicates the page
// number into which this image will be assigned.
// Normally this is 0 for the first (or only) page of
// the texture. 3-D textures have one page for each
// level of depth, and cube map textures always have six
// pages.
//
// If read_pages is true, multiple images will be read
// at once, one for each page of a cube map or a 3-D
// texture. In this case, the filename should contain a
// sequence of one or more hash marks ("#") which will
// be filled in with the z value of each page,
// zero-based. In this case, the z parameter indicates
// the maximum z value that will be loaded, or 0 to load
// all filenames that exist.
//
// If read_mipmaps is false, then n indicates the mipmap
// level to which this image will be assigned. Normally
// this is 0 for the base texture image, but it is
// possible to load custom mipmap levels into the later
// images. After the base texture image is loaded (thus
// defining the size of the texture), you can call
// get_expected_num_mipmap_levels() to determine the
// maximum sensible value for n.
//
// If read_mipmaps is true, multiple images will be read
// as above, but this time the images represent the
// different mipmap levels of the texture image. In
// this case, the n parameter indicates the maximum n
// value that will be loaded, or 0 to load all filenames
// that exist (up to the expected number of mipmap
// levels).
//
// If both read_pages and read_mipmaps is true, then
// both sequences will be read; the filename should
// contain two sequences of hash marks, separated by
// some character such as a hyphen, underscore, or dot.
// The first hash mark sequence will be filled in with
// the mipmap level, while the second hash mark sequence
// will be the page index.
//
// This method implicitly sets keep_ram_image to false.
////////////////////////////////////////////////////////////////////
653
bool Texture::read(Filename const &fullpath, LoaderOptions const &options = ((())));
bool Texture::read(Filename const &fullpath, Filename const &alpha_fullpath, int primary_file_num_channels, int alpha_file_channel, LoaderOptions const &options = ((())));
bool Texture::read(Filename const &fullpath, int z, int n, bool read_pages, bool read_mipmaps, LoaderOptions const &options = ((())));
bool Texture::read(Filename const &fullpath, Filename const &alpha_fullpath, int primary_file_num_channels, int alpha_file_channel, int z, int n, bool read_pages, bool read_mipmaps, BamCacheRecord *record = ((void *)(0)), LoaderOptions const &options = ((())));
2425 5 write 0 4 3001 14 Texture::write 0 3 979 980 981 3708
////////////////////////////////////////////////////////////////////
// Function: Texture::write
// Access: Published
// Description: Writes the texture to the named filename.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::write
// Access: Published
// Description: Writes a single page or mipmap level to a single
// file, or automatically writes a series of pages
// and/or mipmap levels to a numbered series of files.
//
// If the filename ends in the extension .txo, this
// implicitly writes a Panda texture object (.txo)
// instead of an image file. In this case, the
// remaining parameters are ignored, and only one file
// is written, which will contain all of the pages and
// resident mipmap levels in the texture.
//
// If write_pages is false, then z indicates the page
// number to write. 3-D textures have one page number
// for each level of depth; cube maps have six pages
// number 0 through 5. Other kinds of textures have
// only one page, numbered 0. If there are multiple
// views, the range of z is increased; the total range
// is [0, get_num_pages()).
//
// If write_pages is true, then all pages of the texture
// will be written. In this case z is ignored, and the
// filename should contain a sequence of hash marks
// ("#") which will be filled in with the page index
// number.
//
// If write_mipmaps is false, then n indicates the
// mipmap level number to write. Normally, this is 0,
// for the base texture image. Normally, the mipmap
// levels of a texture are not available in RAM (they
// are generated automatically by the graphics card).
// However, if you have the mipmap levels available, for
// instance because you called
// generate_ram_mipmap_images() to generate them
// internally, or you called
// GraphicsEngine::extract_texture_data() to retrieve
// them from the graphics card, then you may write out
// each mipmap level with this parameter.
//
// If write_mipmaps is true, then all mipmap levels of
// the texture will be written. In this case n is
// ignored, and the filename should contain a sequence
// of hash marks ("#") which will be filled in with the
// mipmap level number.
//
// If both write_pages and write_mipmaps is true, then
// all pages and all mipmap levels will be written. In
// this case, the filename should contain two different
// sequences of hash marks, separated by a character
// such as a hyphen, underscore, or dot. The first hash
// mark sequence will be filled in with the mipmap
// level, while the second hash mark sequence will be
// the page index.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::write
// Access: Published
// Description: Not to be confused with write(Filename), this method
// simply describes the texture properties.
////////////////////////////////////////////////////////////////////
218
inline bool Texture::write(Filename const &fullpath);
inline bool Texture::write(Filename const &fullpath, int z, int n, bool write_pages, bool write_mipmaps);
void Texture::write(ostream &out, int indent_level) const;
2426 8 read_txo 0 4 3001 17 Texture::read_txo 0 2 982 983 692
////////////////////////////////////////////////////////////////////
// Function: Texture::read_txo
// Access: Published
// Description: Reads the texture from a Panda texture object. This
// defines the complete Texture specification, including
// the image data as well as all texture properties.
// This only works if the txo file contains a static
// Texture image, as opposed to a subclass of Texture
// such as a movie texture.
//
// Pass a real filename if it is available, or empty
// string if it is not.
////////////////////////////////////////////////////////////////////
81
bool Texture::read_txo(istream &in, basic_string< char > const &filename = (""));
2427 13 make_from_txo 0 4 3001 22 Texture::make_from_txo 0 2 984 985 621
////////////////////////////////////////////////////////////////////
// Function: Texture::make_from_txo
// Access: Published, Static
// Description: Constructs a new Texture object from the txo file.
// This is similar to Texture::read_txo(), but it
// constructs and returns a new object, which allows it
// to return a subclass of Texture (for instance, a
// movie texture).
//
// Pass a real filename if it is available, or empty
// string if it is not.
////////////////////////////////////////////////////////////////////
109
static PointerTo< Texture > Texture::make_from_txo(istream &in, basic_string< char > const &filename = (""));
2428 9 write_txo 0 4 3001 18 Texture::write_txo 0 2 986 987 463
////////////////////////////////////////////////////////////////////
// Function: Texture::write_txo
// Access: Published
// Description: Writes the texture to a Panda texture object. This
// defines the complete Texture specification, including
// the image data as well as all texture properties.
//
// The filename is just for reference.
////////////////////////////////////////////////////////////////////
89
bool Texture::write_txo(ostream &out, basic_string< char > const &filename = ("")) const;
2429 8 read_dds 0 4 3001 17 Texture::read_dds 0 3 988 989 990 674
////////////////////////////////////////////////////////////////////
// Function: Texture::read_dds
// Access: Published
// Description: Reads the texture from a DDS file object. This is a
// Microsoft-defined file format; it is similar in
// principle to a txo object, in that it is designed to
// contain the texture image in a form as similar as
// possible to its runtime image, and it can contain
// mipmaps, pre-compressed textures, and so on.
//
// As with read_txo, the filename is just for reference.
////////////////////////////////////////////////////////////////////
105
bool Texture::read_dds(istream &in, basic_string< char > const &filename = (""), bool header_only = (0));
2430 4 load 0 4 3001 13 Texture::load 0 8 991 992 993 994 995 996 997 998 1134
////////////////////////////////////////////////////////////////////
// Function: Texture::load
// Access: Published
// Description: Replaces the texture with the indicated image.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::load
// Access: Published
// Description: Stores the indicated image in the given page and
// mipmap level. See read().
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::load
// Access: Published
// Description: Replaces the texture with the indicated image.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::load
// Access: Published
// Description: Stores the indicated image in the given page and
// mipmap level. See read().
////////////////////////////////////////////////////////////////////
383
inline bool Texture::load(PNMImage const &pnmimage, LoaderOptions const &options = ((())));
inline bool Texture::load(PNMImage const &pnmimage, int z, int n, LoaderOptions const &options = ((())));
inline bool Texture::load(PfmFile const &pfm, LoaderOptions const &options = ((())));
inline bool Texture::load(PfmFile const &pfm, int z, int n, LoaderOptions const &options = ((())));
2431 5 store 0 4 3001 14 Texture::store 0 4 999 1000 1001 1002 1224
////////////////////////////////////////////////////////////////////
// Function: Texture::store
// Access: Published
// Description: Saves the texture to the indicated PNMImage, but does
// not write it to disk.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::store
// Access: Published
// Description: Saves the indicated page and mipmap level of the
// texture to the PNMImage.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::store
// Access: Published
// Description: Saves the texture to the indicated PfmFile, but does
// not write it to disk.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::store
// Access: Published
// Description: Saves the indicated page and mipmap level of the
// texture to the PfmFile.
////////////////////////////////////////////////////////////////////
231
inline bool Texture::store(PNMImage &pnmimage) const;
inline bool Texture::store(PNMImage &pnmimage, int z, int n) const;
inline bool Texture::store(PfmFile &pfm) const;
inline bool Texture::store(PfmFile &pfm, int z, int n) const;
2432 6 reload 0 4 3001 15 Texture::reload 0 1 1003 532
////////////////////////////////////////////////////////////////////
// Function: Texture::reload
// Access: Published
// Description: Re-reads the Texture from its disk file. Useful when
// you know the image on disk has recently changed, and
// you want to update the Texture image.
//
// Returns true on success, false on failure (in which
// case, the Texture may or may not still be valid).
////////////////////////////////////////////////////////////////////
34
inline bool Texture::reload(void);
2433 12 load_related 0 4 3001 21 Texture::load_related 0 1 1004 444
////////////////////////////////////////////////////////////////////
// Function: Texture::load_related
// Access: Published
// Description: Loads a texture whose filename is derived by
// concatenating a suffix to the filename of this
// texture. May return NULL, for example, if this
// texture doesn't have a filename.
////////////////////////////////////////////////////////////////////
65
Texture *Texture::load_related(InternalName const *suffix) const;
2434 12 has_filename 0 4 3001 21 Texture::has_filename 0 1 1005 318
////////////////////////////////////////////////////////////////////
// Function: Texture::has_filename
// Access: Published
// Description: Returns true if the filename has been set and
// is available. See set_filename().
////////////////////////////////////////////////////////////////////
46
inline bool Texture::has_filename(void) const;
2435 12 get_filename 0 4 3001 21 Texture::get_filename 0 1 1006 371
////////////////////////////////////////////////////////////////////
// Function: Texture::get_filename
// Access: Published
// Description: Returns the filename that has been set. This is the
// name of the file as it was requested. Also see
// get_fullpath().
////////////////////////////////////////////////////////////////////
57
inline Filename const &Texture::get_filename(void) const;
2436 18 has_alpha_filename 0 4 3001 27 Texture::has_alpha_filename 0 1 1007 336
////////////////////////////////////////////////////////////////////
// Function: Texture::has_alpha_filename
// Access: Published
// Description: Returns true if the alpha_filename has been set and
// is available. See set_alpha_filename().
////////////////////////////////////////////////////////////////////
52
inline bool Texture::has_alpha_filename(void) const;
2437 18 get_alpha_filename 0 4 3001 27 Texture::get_alpha_filename 0 1 1008 475
////////////////////////////////////////////////////////////////////
// Function: Texture::get_alpha_filename
// Access: Published
// Description: Returns the alpha_filename that has been set. If
// this is set, it represents the name of the alpha
// component, which is stored in a separate file. See
// also get_filename(), and get_alpha_fullpath().
////////////////////////////////////////////////////////////////////
63
inline Filename const &Texture::get_alpha_filename(void) const;
2438 12 has_fullpath 0 4 3001 21 Texture::has_fullpath 0 1 1009 318
////////////////////////////////////////////////////////////////////
// Function: Texture::has_fullpath
// Access: Published
// Description: Returns true if the fullpath has been set and
// is available. See set_fullpath().
////////////////////////////////////////////////////////////////////
46
inline bool Texture::has_fullpath(void) const;
2439 12 get_fullpath 0 4 3001 21 Texture::get_fullpath 0 1 1010 376
////////////////////////////////////////////////////////////////////
// Function: Texture::get_fullpath
// Access: Published
// Description: Returns the fullpath that has been set. This is the
// full path to the file as it was found along the
// texture search path.
////////////////////////////////////////////////////////////////////
57
inline Filename const &Texture::get_fullpath(void) const;
2440 18 has_alpha_fullpath 0 4 3001 27 Texture::has_alpha_fullpath 0 1 1011 336
////////////////////////////////////////////////////////////////////
// Function: Texture::has_alpha_fullpath
// Access: Published
// Description: Returns true if the alpha_fullpath has been set and
// is available. See set_alpha_fullpath().
////////////////////////////////////////////////////////////////////
52
inline bool Texture::has_alpha_fullpath(void) const;
2441 18 get_alpha_fullpath 0 4 3001 27 Texture::get_alpha_fullpath 0 1 1012 430
////////////////////////////////////////////////////////////////////
// Function: Texture::get_alpha_fullpath
// Access: Published
// Description:
// Returns the alpha_fullpath that has been set. This
// is the full path to the alpha part of the image file
// as it was found along the texture search path.
////////////////////////////////////////////////////////////////////
63
inline Filename const &Texture::get_alpha_fullpath(void) const;
2442 10 get_x_size 0 4 3001 19 Texture::get_x_size 0 1 1013 268
////////////////////////////////////////////////////////////////////
// Function: Texture::get_x_size
// Access: Published
// Description: Returns the width of the texture image in texels.
////////////////////////////////////////////////////////////////////
43
inline int Texture::get_x_size(void) const;
2443 10 get_y_size 0 4 3001 19 Texture::get_y_size 0 1 1014 321
////////////////////////////////////////////////////////////////////
// Function: Texture::get_y_size
// Access: Published
// Description: Returns the height of the texture image in texels.
// For a 1-d texture, this will be 1.
////////////////////////////////////////////////////////////////////
43
inline int Texture::get_y_size(void) const;
2444 10 get_z_size 0 4 3001 19 Texture::get_z_size 0 1 1015 392
////////////////////////////////////////////////////////////////////
// Function: Texture::get_z_size
// Access: Published
// Description: Returns the depth of the texture image in texels.
// For a 1-d texture or 2-d texture, this will be 1.
// For a cube map texture, this will be 6.
////////////////////////////////////////////////////////////////////
43
inline int Texture::get_z_size(void) const;
2445 13 get_num_views 0 4 3001 22 Texture::get_num_views 0 1 1016 758
////////////////////////////////////////////////////////////////////
// Function: Texture::get_num_views
// Access: Published
// Description: Returns the number of "views" in the texture. A view
// is a completely separate image stored within the
// Texture object. Most textures have only one view,
// but a stereo texture, for instance, may have two
// views, a left and a right image. Other uses for
// multiple views are not yet defined.
//
// If this value is greater than one, the additional
// views are accessed as additional pages beyond
// get_z_size().
////////////////////////////////////////////////////////////////////
46
inline int Texture::get_num_views(void) const;
2446 13 get_num_pages 0 4 3001 22 Texture::get_num_pages 0 1 1017 604
////////////////////////////////////////////////////////////////////
// Function: Texture::get_num_pages
// Access: Published
// Description: Returns the total number of pages in the texture.
// Each "page" is a 2-d texture image within the larger
// image--a face of a cube map, or a level of a 3-d
// texture. Normally, get_num_pages() is the same as
// get_z_size(). However, in a multiview texture, this
// returns get_z_size() * get_num_views().
////////////////////////////////////////////////////////////////////
46
inline int Texture::get_num_pages(void) const;
2447 18 get_num_components 0 4 3001 27 Texture::get_num_components 0 1 1018 456
////////////////////////////////////////////////////////////////////
// Function: Texture::get_num_components
// Access: Published
// Description: Returns the number of color components for each texel
// of the texture image. This is 3 for an rgb texture
// or 4 for an rgba texture; it may also be 1 or 2 for a
// grayscale texture.
////////////////////////////////////////////////////////////////////
51
inline int Texture::get_num_components(void) const;
2448 19 get_component_width 0 4 3001 28 Texture::get_component_width 0 1 1019 390
////////////////////////////////////////////////////////////////////
// Function: Texture::get_component_width
// Access: Published
// Description: Returns the number of bytes stored for each color
// component of a texel. Typically this is 1, but it
// may be 2 for 16-bit texels.
////////////////////////////////////////////////////////////////////
52
inline int Texture::get_component_width(void) const;
2449 16 get_texture_type 0 4 3001 25 Texture::get_texture_type 0 1 1020 275
////////////////////////////////////////////////////////////////////
// Function: Texture::get_texture_type
// Access: Published
// Description: Returns the overall interpretation of the texture.
////////////////////////////////////////////////////////////////////
66
inline Texture::TextureType Texture::get_texture_type(void) const;
2450 10 get_format 0 4 3001 19 Texture::get_format 0 1 1021 392
////////////////////////////////////////////////////////////////////
// Function: Texture::get_format
// Access: Published
// Description: Returns the format of the texture, which represents
// both the semantic meaning of the texels and, to some
// extent, their storage information.
////////////////////////////////////////////////////////////////////
55
inline Texture::Format Texture::get_format(void) const;
2451 18 get_component_type 0 4 3001 27 Texture::get_component_type 0 1 1022 312
////////////////////////////////////////////////////////////////////
// Function: Texture::get_component_type
// Access: Published
// Description: Returns the numeric interpretation of each component
// of the texture.
////////////////////////////////////////////////////////////////////
70
inline Texture::ComponentType Texture::get_component_type(void) const;
2452 10 set_wrap_u 0 4 3001 19 Texture::set_wrap_u 0 1 1023 218
////////////////////////////////////////////////////////////////////
// Function: Texture::set_wrap_u
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
56
inline void Texture::set_wrap_u(Texture::WrapMode wrap);
2453 10 set_wrap_v 0 4 3001 19 Texture::set_wrap_v 0 1 1024 218
////////////////////////////////////////////////////////////////////
// Function: Texture::set_wrap_v
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
56
inline void Texture::set_wrap_v(Texture::WrapMode wrap);
2454 10 set_wrap_w 0 4 3001 19 Texture::set_wrap_w 0 1 1025 270
////////////////////////////////////////////////////////////////////
// Function: Texture::set_wrap_w
// Access: Published
// Description: The W wrap direction is only used for 3-d textures.
////////////////////////////////////////////////////////////////////
56
inline void Texture::set_wrap_w(Texture::WrapMode wrap);
2455 13 set_minfilter 0 4 3001 22 Texture::set_minfilter 0 1 1026 221
////////////////////////////////////////////////////////////////////
// Function: Texture::set_minfilter
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
63
inline void Texture::set_minfilter(Texture::FilterType filter);
2456 13 set_magfilter 0 4 3001 22 Texture::set_magfilter 0 1 1027 221
////////////////////////////////////////////////////////////////////
// Function: Texture::set_magfilter
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
63
inline void Texture::set_magfilter(Texture::FilterType filter);
2457 22 set_anisotropic_degree 0 4 3001 31 Texture::set_anisotropic_degree 0 1 1028 733
////////////////////////////////////////////////////////////////////
// Function: Texture::set_anisotropic_degree
// Access: Published
// Description: Specifies the level of anisotropic filtering to apply
// to the texture. Set this 0 to indicate the default
// value, which is specified in the
// texture-anisotropic-degree config variable.
//
// To explicitly disable anisotropic filtering, set this
// value to 1. To explicitly enable anisotropic
// filtering, set it to a value higher than 1; larger
// numbers indicate greater degrees of filtering.
////////////////////////////////////////////////////////////////////
68
inline void Texture::set_anisotropic_degree(int anisotropic_degree);
2458 16 set_border_color 0 4 3001 25 Texture::set_border_color 0 1 1029 446
////////////////////////////////////////////////////////////////////
// Function: Texture::set_border_color
// Access: Published
// Description: Specifies the solid color of the texture's border.
// Some OpenGL implementations use a border for tiling
// textures; in Panda, it is only used for specifying
// the clamp color.
////////////////////////////////////////////////////////////////////
63
inline void Texture::set_border_color(LVecBase4f const &color);
2459 15 set_compression 0 4 3001 24 Texture::set_compression 0 1 1030 1037
////////////////////////////////////////////////////////////////////
// Function: Texture::set_compression
// Access: Published
// Description: Requests that this particular Texture be compressed
// when it is loaded into texture memory.
//
// This refers to the internal compression of the
// texture image within texture memory; it is not
// related to jpeg or png compression, which are disk
// file compression formats. The actual disk file that
// generated this texture may be stored in a compressed
// or uncompressed format supported by Panda; it will be
// decompressed on load, and then recompressed by the
// graphics API if this parameter is not CM_off.
//
// If the GSG does not support this texture compression
// mode, the texture will silently be loaded
// uncompressed.
////////////////////////////////////////////////////////////////////
75
inline void Texture::set_compression(Texture::CompressionMode compression);
2460 21 set_render_to_texture 0 4 3001 30 Texture::set_render_to_texture 0 1 1031 905
////////////////////////////////////////////////////////////////////
// Function: Texture::set_render_to_texture
// Access: Published
// Description: Sets a flag on the texture that indicates whether the
// texture is intended to be used as a direct-render
// target, by binding a framebuffer to a texture and
// rendering directly into the texture.
//
// This controls some low-level choices made about the
// texture object itself. For instance, compressed
// textures are disallowed when this flag is set true.
//
// Normally, a user should not need to set this flag
// directly; it is set automatically by the low-level
// display code when a texture is bound to a
// framebuffer.
////////////////////////////////////////////////////////////////////
67
inline void Texture::set_render_to_texture(bool render_to_texture);
2461 10 get_wrap_u 0 4 3001 19 Texture::get_wrap_u 0 1 1032 292
////////////////////////////////////////////////////////////////////
// Function: Texture::get_wrap_u
// Access: Published
// Description: Returns the wrap mode of the texture in the U
// direction.
////////////////////////////////////////////////////////////////////
57
inline Texture::WrapMode Texture::get_wrap_u(void) const;
2462 10 get_wrap_v 0 4 3001 19 Texture::get_wrap_v 0 1 1033 292
////////////////////////////////////////////////////////////////////
// Function: Texture::get_wrap_v
// Access: Published
// Description: Returns the wrap mode of the texture in the V
// direction.
////////////////////////////////////////////////////////////////////
57
inline Texture::WrapMode Texture::get_wrap_v(void) const;
2463 10 get_wrap_w 0 4 3001 19 Texture::get_wrap_w 0 1 1034 355
////////////////////////////////////////////////////////////////////
// Function: Texture::get_wrap_w
// Access: Published
// Description: Returns the wrap mode of the texture in the W
// direction. This is the depth direction of 3-d
// textures.
////////////////////////////////////////////////////////////////////
57
inline Texture::WrapMode Texture::get_wrap_w(void) const;
2464 13 get_minfilter 0 4 3001 22 Texture::get_minfilter 0 1 1035 487
////////////////////////////////////////////////////////////////////
// Function: Texture::get_minfilter
// Access: Published
// Description: Returns the filter mode of the texture for
// minification. If this is one of the mipmap
// constants, then the texture requires mipmaps. This
// may return FT_default; see also
// get_effective_minfilter().
////////////////////////////////////////////////////////////////////
62
inline Texture::FilterType Texture::get_minfilter(void) const;
2465 13 get_magfilter 0 4 3001 22 Texture::get_magfilter 0 1 1036 435
////////////////////////////////////////////////////////////////////
// Function: Texture::get_magfilter
// Access: Published
// Description: Returns the filter mode of the texture for
// magnification. The mipmap constants are invalid
// here. This may return FT_default; see also
// get_effective_minfilter().
////////////////////////////////////////////////////////////////////
62
inline Texture::FilterType Texture::get_magfilter(void) const;
2466 23 get_effective_minfilter 0 4 3001 32 Texture::get_effective_minfilter 0 1 1037 465
////////////////////////////////////////////////////////////////////
// Function: Texture::get_effective_minfilter
// Access: Published
// Description: Returns the filter mode of the texture for
// minification, with special treatment for FT_default.
// This will normally not return FT_default, unless
// there is an error in the config file.
////////////////////////////////////////////////////////////////////
65
Texture::FilterType Texture::get_effective_minfilter(void) const;
2467 23 get_effective_magfilter 0 4 3001 32 Texture::get_effective_magfilter 0 1 1038 466
////////////////////////////////////////////////////////////////////
// Function: Texture::get_effective_magfilter
// Access: Published
// Description: Returns the filter mode of the texture for
// magnification, with special treatment for FT_default.
// This will normally not return FT_default, unless
// there is an error in the config file.
////////////////////////////////////////////////////////////////////
65
Texture::FilterType Texture::get_effective_magfilter(void) const;
2468 22 get_anisotropic_degree 0 4 3001 31 Texture::get_anisotropic_degree 0 1 1039 463
////////////////////////////////////////////////////////////////////
// Function: Texture::get_anisotropic_degree
// Access: Published
// Description: Returns the degree of anisotropic filtering that
// should be applied to the texture. This value may
// return 0, indicating the default value; see also
// get_effective_anisotropic_degree.
////////////////////////////////////////////////////////////////////
55
inline int Texture::get_anisotropic_degree(void) const;
2469 32 get_effective_anisotropic_degree 0 4 3001 41 Texture::get_effective_anisotropic_degree 0 1 1040 459
////////////////////////////////////////////////////////////////////
// Function: Texture::get_effective_anisotropic_degree
// Access: Published
// Description: Returns the degree of anisotropic filtering that
// should be applied to the texture. This value will
// normally not return 0, unless there is an error in
// the config file.
////////////////////////////////////////////////////////////////////
65
inline int Texture::get_effective_anisotropic_degree(void) const;
2470 16 get_border_color 0 4 3001 25 Texture::get_border_color 0 1 1041 444
////////////////////////////////////////////////////////////////////
// Function: Texture::get_border_color
// Access: Published
// Description: Returns the solid color of the texture's border.
// Some OpenGL implementations use a border for tiling
// textures; in Panda, it is only used for specifying
// the clamp color.
////////////////////////////////////////////////////////////////////
56
inline LVecBase4f Texture::get_border_color(void) const;
2471 15 get_compression 0 4 3001 24 Texture::get_compression 0 1 1042 765
////////////////////////////////////////////////////////////////////
// Function: Texture::get_compression
// Access: Published
// Description: Returns the compression mode requested for this
// particular texture, or CM_off if the texture is not
// to be compressed.
//
// If a value other than CM_off is returned, this is
// not a guarantee that the texture is actually
// successfully compressed on the GSG. It may be that
// the GSG does not support the requested compression
// mode, in which case the texture may actually be
// stored uncompressed in texture memory.
////////////////////////////////////////////////////////////////////
69
inline Texture::CompressionMode Texture::get_compression(void) const;
2472 15 has_compression 0 4 3001 24 Texture::has_compression 0 1 1043 764
////////////////////////////////////////////////////////////////////
// Function: Texture::has_compression
// Access: Published
// Description: Returns true if the texture indicates it wants to be
// compressed, either with CM_on or higher, or
// CM_default and compressed-textures is true.
//
// If true returned, this is not a guarantee that the
// texture is actually successfully compressed on the
// GSG. It may be that the GSG does not support the
// requested compression mode, in which case the texture
// may actually be stored uncompressed in texture
// memory.
////////////////////////////////////////////////////////////////////
49
inline bool Texture::has_compression(void) const;
2473 21 get_render_to_texture 0 4 3001 30 Texture::get_render_to_texture 0 1 1044 701
////////////////////////////////////////////////////////////////////
// Function: Texture::get_render_to_texture
// Access: Published
// Description: Returns a flag on the texture that indicates whether the
// texture is intended to be used as a direct-render
// target, by binding a framebuffer to a texture and
// rendering directly into the texture.
//
// Normally, a user should not need to set this flag
// directly; it is set automatically by the low-level
// display code when a texture is bound to a
// framebuffer.
////////////////////////////////////////////////////////////////////
55
inline bool Texture::get_render_to_texture(void) const;
2474 12 uses_mipmaps 0 4 3001 21 Texture::uses_mipmaps 0 1 1045 355
////////////////////////////////////////////////////////////////////
// Function: Texture::uses_mipmaps
// Access: Public
// Description: Returns true if the minfilter settings on this
// texture indicate the use of mipmapping, false
// otherwise.
////////////////////////////////////////////////////////////////////
46
inline bool Texture::uses_mipmaps(void) const;
2475 17 set_quality_level 0 4 3001 26 Texture::set_quality_level 0 1 1046 535
////////////////////////////////////////////////////////////////////
// Function: Texture::set_quality_level
// Access: Public
// Description: Sets a hint to the renderer about the desired
// performance / quality tradeoff for this particular
// texture. This is most useful for the tinydisplay
// software renderer; for normal, hardware-accelerated
// renderers, this may have little or no effect.
////////////////////////////////////////////////////////////////////
76
inline void Texture::set_quality_level(Texture::QualityLevel quality_level);
2476 17 get_quality_level 0 4 3001 26 Texture::get_quality_level 0 1 1047 392
////////////////////////////////////////////////////////////////////
// Function: Texture::get_quality_level
// Access: Public
// Description: Returns the current quality_level hint. See
// set_quality_level(). This value may return
// QL_default; see get_effective_quality_level().
////////////////////////////////////////////////////////////////////
68
inline Texture::QualityLevel Texture::get_quality_level(void) const;
2477 27 get_effective_quality_level 0 4 3001 36 Texture::get_effective_quality_level 0 1 1048 519
////////////////////////////////////////////////////////////////////
// Function: Texture::get_effective_quality_level
// Access: Public
// Description: Returns the current quality_level hint, or the global
// default quality_level if this texture doesn't specify
// a quality level. This value will not normally return
// QL_default (unless there is an error in the config
// file)
////////////////////////////////////////////////////////////////////
78
inline Texture::QualityLevel Texture::get_effective_quality_level(void) const;
2478 30 get_expected_num_mipmap_levels 0 4 3001 39 Texture::get_expected_num_mipmap_levels 0 1 1049 536
////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_num_mipmap_levels
// Access: Published
// Description: Returns the number of mipmap levels that should be
// defined for this texture, given the texture's size.
//
// Note that this returns a number appropriate for
// mipmapping, even if the texture does not currently
// have mipmapping enabled.
////////////////////////////////////////////////////////////////////
63
inline int Texture::get_expected_num_mipmap_levels(void) const;
2479 26 get_expected_mipmap_x_size 0 4 3001 35 Texture::get_expected_mipmap_x_size 0 1 1050 338
////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_mipmap_x_size
// Access: Published
// Description: Returns the x_size that the nth mipmap level should
// have, based on the texture's size.
////////////////////////////////////////////////////////////////////
60
inline int Texture::get_expected_mipmap_x_size(int n) const;
2480 26 get_expected_mipmap_y_size 0 4 3001 35 Texture::get_expected_mipmap_y_size 0 1 1051 338
////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_mipmap_y_size
// Access: Published
// Description: Returns the y_size that the nth mipmap level should
// have, based on the texture's size.
////////////////////////////////////////////////////////////////////
60
inline int Texture::get_expected_mipmap_y_size(int n) const;
2481 26 get_expected_mipmap_z_size 0 4 3001 35 Texture::get_expected_mipmap_z_size 0 1 1052 338
////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_mipmap_z_size
// Access: Published
// Description: Returns the z_size that the nth mipmap level should
// have, based on the texture's size.
////////////////////////////////////////////////////////////////////
60
inline int Texture::get_expected_mipmap_z_size(int n) const;
2482 29 get_expected_mipmap_num_pages 0 4 3001 38 Texture::get_expected_mipmap_num_pages 0 1 1053 566
////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_mipmap_num_pages
// Access: Published
// Description: Returns the total number of pages that the nth mipmap
// level should have, based on the texture's size. This
// is usually the same as get_expected_mipmap_z_size(),
// except for a multiview texture, in which case it is
// get_expected_mipmap_z_size() * get_num_views().
////////////////////////////////////////////////////////////////////
63
inline int Texture::get_expected_mipmap_num_pages(int n) const;
2483 13 has_ram_image 0 4 3001 22 Texture::has_ram_image 0 1 1054 1616
////////////////////////////////////////////////////////////////////
// Function: Texture::has_ram_image
// Access: Published
// Description: Returns true if the Texture has its image contents
// available in main RAM, false if it exists only in
// texture memory or in the prepared GSG context.
//
// Note that this has nothing to do with whether
// get_ram_image() will fail or not. Even if
// has_ram_image() returns false, get_ram_image() may
// still return a valid RAM image, because
// get_ram_image() will automatically load the texture
// from disk if necessary. The only thing
// has_ram_image() tells you is whether the texture is
// available right now without hitting the disk first.
//
// Note also that if an application uses only one GSG,
// it may appear that has_ram_image() returns true if
// the texture has not yet been loaded by the GSG, but
// this correlation is not true in general and should
// not be depended on. Specifically, if an application
// ever uses multiple GSG's in its lifetime (for
// instance, by opening more than one window, or by
// closing its window and opening another one later),
// then has_ram_image() may well return false on
// textures that have never been loaded on the current
// GSG.
////////////////////////////////////////////////////////////////////
47
inline bool Texture::has_ram_image(void) const;
2484 26 has_uncompressed_ram_image 0 4 3001 35 Texture::has_uncompressed_ram_image 0 1 1055 401
////////////////////////////////////////////////////////////////////
// Function: Texture::has_uncompressed_ram_image
// Access: Published
// Description: Returns true if the Texture has its image contents
// available in main RAM and is uncompressed, false
// otherwise. See has_ram_image().
////////////////////////////////////////////////////////////////////
60
inline bool Texture::has_uncompressed_ram_image(void) const;
2485 20 might_have_ram_image 0 4 3001 29 Texture::might_have_ram_image 0 1 1056 578
////////////////////////////////////////////////////////////////////
// Function: Texture::might_have_ram_image
// Access: Published
// Description: Returns true if the texture's image contents are
// currently available in main RAM, or there is reason
// to believe it can be loaded on demand. That is, this
// function returns a "best guess" as to whether
// get_ram_image() will succeed without actually calling
// it first.
////////////////////////////////////////////////////////////////////
54
inline bool Texture::might_have_ram_image(void) const;
2486 18 get_ram_image_size 0 4 3001 27 Texture::get_ram_image_size 0 1 1057 388
////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_image_size
// Access: Published
// Description: Returns the total number of bytes used by the
// in-memory image, across all pages and views, or 0 if
// there is no in-memory image.
////////////////////////////////////////////////////////////////////
60
inline unsigned int Texture::get_ram_image_size(void) const;
2487 17 get_ram_view_size 0 4 3001 26 Texture::get_ram_view_size 0 1 1058 467
////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_view_size
// Access: Published
// Description: Returns the number of bytes used by the in-memory
// image per view, or 0 if there is no in-memory image.
// Since each view is a stack of z_size pages, this is
// get_z_size() * get_ram_page_size().
////////////////////////////////////////////////////////////////////
59
inline unsigned int Texture::get_ram_view_size(void) const;
2488 17 get_ram_page_size 0 4 3001 26 Texture::get_ram_page_size 0 1 1059 647
////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_page_size
// Access: Published
// Description: Returns the number of bytes used by the in-memory
// image per page, or 0 if there is no in-memory image.
//
// For a non-compressed texture, this is the same as
// get_expected_ram_page_size(). For a compressed
// texture, this may be a smaller value. (We do assume
// that all pages will be the same size on a compressed
// texture).
////////////////////////////////////////////////////////////////////
59
inline unsigned int Texture::get_ram_page_size(void) const;
2489 27 get_expected_ram_image_size 0 4 3001 36 Texture::get_expected_ram_image_size 0 1 1060 378
////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_ram_image_size
// Access: Published
// Description: Returns the number of bytes that *ought* to be used
// by the in-memory image, based on the texture
// parameters.
////////////////////////////////////////////////////////////////////
69
inline unsigned int Texture::get_expected_ram_image_size(void) const;
2490 26 get_expected_ram_page_size 0 4 3001 35 Texture::get_expected_ram_page_size 0 1 1061 447
////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_ram_page_size
// Access: Published
// Description: Returns the number of bytes that should be used per
// each Z page of the 3-d texture. For a 2-d or 1-d
// texture, this is the same as
// get_expected_ram_image_size().
////////////////////////////////////////////////////////////////////
68
inline unsigned int Texture::get_expected_ram_page_size(void) const;
2491 13 get_ram_image 0 4 3001 22 Texture::get_ram_image 0 1 1062 1676
////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_image
// Access: Published
// Description: Returns the system-RAM image data associated with the
// texture. If the texture does not currently have an
// associated RAM image, and the texture was generated
// by loading an image from a disk file (the most common
// case), this forces the reload of the same texture.
// This can happen if keep_texture_ram is configured to
// false, and we have previously prepared this texture
// with a GSG.
//
// Note that it is not correct to call has_ram_image()
// first to test whether this function will fail. A
// false return value from has_ram_image() indicates
// only that get_ram_image() may need to reload the
// texture from disk, which it will do automatically.
// However, you can call might_have_ram_image(), which
// will return true if the ram image exists, or there is
// a reasonable reason to believe it can be loaded.
//
// On the other hand, it is possible that the texture
// cannot be found on disk or is otherwise unavailable.
// If that happens, this function will return NULL.
// There is no way to predict with 100% accuracy whether
// get_ram_image() will return NULL without calling it
// first; might_have_ram_image() is the closest.
////////////////////////////////////////////////////////////////////
73
inline ConstPointerToArray< unsigned char > Texture::get_ram_image(void);
2492 25 get_ram_image_compression 0 4 3001 34 Texture::get_ram_image_compression 0 1 1063 633
////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_image_compression
// Access: Published
// Description: Returns the compression mode in which the ram image
// is already stored pre-compressed. If this is other
// than CM_off, you cannot rely on the contents of the
// ram image to be anything predicatable (it will not be
// an array of x by y pixels, and it probably won't have
// the same length as get_expected_ram_image_size()).
////////////////////////////////////////////////////////////////////
79
inline Texture::CompressionMode Texture::get_ram_image_compression(void) const;
2493 26 get_uncompressed_ram_image 0 4 3001 35 Texture::get_uncompressed_ram_image 0 1 1064 973
////////////////////////////////////////////////////////////////////
// Function: Texture::get_uncompressed_ram_image
// Access: Published
// Description: Returns the system-RAM image associated with the
// texture, in an uncompressed form if at all possible.
//
// If get_ram_image_compression() is CM_off, then the
// system-RAM image is already uncompressed, and this
// returns the same thing as get_ram_image().
//
// If get_ram_image_compression() is anything else, then
// the system-RAM image is compressed. In this case,
// the image will be reloaded from the *original* file
// (not from the cache), in the hopes that an
// uncompressed image will be found there.
//
// If an uncompressed image cannot be found, returns
// NULL.
////////////////////////////////////////////////////////////////////
86
inline ConstPointerToArray< unsigned char > Texture::get_uncompressed_ram_image(void);
2494 16 get_ram_image_as 0 4 3001 25 Texture::get_ram_image_as 0 1 1065 1762
////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_image_as
// Access: Published
// Description: Returns the uncompressed system-RAM image data
// associated with the texture. Rather than
// just returning a pointer to the data, like
// get_uncompressed_ram_image, this function first
// processes the data and reorders the components
// using the specified format string, and places these
// into a new char array. The 'format' argument should
// specify in which order the components of the texture
// must be. For example, valid format strings are
// "RGBA", "GA", "ABRG" or "AAA". A component can
// also be written as "0" or "1", which means an
// empty/black or a full/white channel, respectively.
// This function is particularly useful to
// copy an image in-memory to a different library
// (for example, PIL or wxWidgets) that require
// a different component order than Panda's internal
// format, BGRA. Note, however, that this conversion
// can still be too slow if you want to do it every
// frame, and should thus be avoided for that purpose.
// The only requirement for the reordering is that
// an uncompressed image must be available. If the
// RAM image is compressed, it will attempt to re-load
// the texture from disk, if it doesn't find an
// uncompressed image there, it will return NULL.
////////////////////////////////////////////////////////////////////
109
ConstPointerToArray< unsigned char > Texture::get_ram_image_as(basic_string< char > const &requested_format);
2495 16 modify_ram_image 0 4 3001 25 Texture::modify_ram_image 0 1 1066 517
////////////////////////////////////////////////////////////////////
// Function: Texture::modify_ram_image
// Access: Published
// Description: Returns a modifiable pointer to the system-RAM image.
// This assumes the RAM image should be uncompressed.
// If the RAM image has been dumped, or is stored
// compressed, creates a new one.
//
// This does *not* affect keep_ram_image.
////////////////////////////////////////////////////////////////////
71
inline PointerToArray< unsigned char > Texture::modify_ram_image(void);
2496 14 make_ram_image 0 4 3001 23 Texture::make_ram_image 0 1 1067 455
////////////////////////////////////////////////////////////////////
// Function: Texture::make_ram_image
// Access: Published
// Description: Discards the current system-RAM image for the
// texture, if any, and allocates a new buffer of the
// appropriate size. Returns the new buffer.
//
// This does *not* affect keep_ram_image.
////////////////////////////////////////////////////////////////////
69
inline PointerToArray< unsigned char > Texture::make_ram_image(void);
2497 13 set_ram_image 0 4 3001 22 Texture::set_ram_image 0 3 1068 1069 1070 501
////////////////////////////////////////////////////////////////////
// Function: Texture::set_ram_image
// Access: Published
// Description: Replaces the current system-RAM image with the new
// data. If compression is not CM_off, it indicates
// that the new data is already pre-compressed in the
// indicated format.
//
// This does *not* affect keep_ram_image.
////////////////////////////////////////////////////////////////////
158
inline void Texture::set_ram_image(ConstPointerToArray< unsigned char > image, Texture::CompressionMode compression = (CM_off), unsigned int page_size = (0));
2498 16 set_ram_image_as 0 4 3001 25 Texture::set_ram_image_as 0 1 1071 597
////////////////////////////////////////////////////////////////////
// Function: Texture::set_ram_image_as
// Access: Published
// Description: Replaces the current system-RAM image with the new
// data, converting it first if necessary from the
// indicated component-order format. See
// get_ram_image_as() for specifications about the
// format. This method cannot support compressed image
// data or sub-pages; use set_ram_image() for that.
////////////////////////////////////////////////////////////////////
120
void Texture::set_ram_image_as(ConstPointerToArray< unsigned char > image, basic_string< char > const &provided_format);
2499 15 clear_ram_image 0 4 3001 24 Texture::clear_ram_image 0 1 1072 262
////////////////////////////////////////////////////////////////////
// Function: Texture::clear_ram_image
// Access: Published
// Description: Discards the current system-RAM image.
////////////////////////////////////////////////////////////////////
43
inline void Texture::clear_ram_image(void);
2500 18 set_keep_ram_image 0 4 3001 27 Texture::set_keep_ram_image 0 1 1073 827
////////////////////////////////////////////////////////////////////
// Function: Texture::set_keep_ram_image
// Access: Published
// Description: Sets the flag that indicates whether this Texture is
// eligible to have its main RAM copy of the texture
// memory dumped when the texture is prepared for
// rendering.
//
// This will be false for most textures, which can
// reload their images if needed by rereading the input
// file. However, textures that were generated
// dynamically and cannot be easily reloaded will want
// to set this flag to true, so that the texture will
// always keep its image copy around.
////////////////////////////////////////////////////////////////////
61
inline void Texture::set_keep_ram_image(bool keep_ram_image);
2501 18 get_keep_ram_image 0 6 3001 27 Texture::get_keep_ram_image 0 1 1074 477
////////////////////////////////////////////////////////////////////
// Function: Texture::get_keep_ram_image
// Access: Published, Virtual
// Description: Returns the flag that indicates whether this Texture
// is eligible to have its main RAM copy of the texture
// memory dumped when the texture is prepared for
// rendering. See set_keep_ram_image().
////////////////////////////////////////////////////////////////////
53
virtual bool Texture::get_keep_ram_image(void) const;
2502 12 is_cacheable 0 6 3001 21 Texture::is_cacheable 0 1 1075 464
////////////////////////////////////////////////////////////////////
// Function: Texture::is_cacheable
// Access: Published, Virtual
// Description: Returns true if there is enough information in this
// Texture object to write it to the bam cache
// successfully, false otherwise. For most textures,
// this is the same as has_ram_image().
////////////////////////////////////////////////////////////////////
47
virtual bool Texture::is_cacheable(void) const;
2503 18 compress_ram_image 0 4 3001 27 Texture::compress_ram_image 0 4 1076 1077 1078 1079 1257
////////////////////////////////////////////////////////////////////
// Function: Texture::compress_ram_image
// Access: Published
// Description: Attempts to compress the texture's RAM image
// internally, to a format supported by the indicated
// GSG. In order for this to work, the squish library
// must have been compiled into Panda.
//
// If compression is CM_on, then an appropriate
// compression method that is supported by the indicated
// GSG is automatically chosen. If the GSG pointer is
// NULL, any of the standard DXT1/3/5 compression
// methods will be used, regardless of whether it is
// supported.
//
// If compression is any specific compression method,
// that method is used regardless of whether the GSG
// supports it.
//
// quality_level determines the speed/quality tradeoff
// of the compression. If it is QL_default, the
// texture's own quality_level parameter is used.
//
// Returns true if successful, false otherwise.
////////////////////////////////////////////////////////////////////
188
inline bool Texture::compress_ram_image(Texture::CompressionMode compression = (CM_on), Texture::QualityLevel quality_level = (QL_default), GraphicsStateGuardianBase *gsg = ((void *)(0)));
2504 20 uncompress_ram_image 0 4 3001 29 Texture::uncompress_ram_image 0 1 1080 573
////////////////////////////////////////////////////////////////////
// Function: Texture::uncompress_ram_image
// Access: Published
// Description: Attempts to uncompress the texture's RAM image
// internally. In order for this to work, the squish
// library must have been compiled into Panda, and the
// ram image must be compressed in a format supported by
// squish.
//
// Returns true if successful, false otherwise.
////////////////////////////////////////////////////////////////////
48
inline bool Texture::uncompress_ram_image(void);
2505 25 get_num_ram_mipmap_images 0 4 3001 34 Texture::get_num_ram_mipmap_images 0 1 1081 584
////////////////////////////////////////////////////////////////////
// Function: Texture::get_num_ram_mipmap_images
// Access: Published
// Description: Returns the maximum number of mipmap level images
// available in system memory. The actual number may be
// less than this (that is, there might be gaps in the
// sequence); use has_ram_mipmap_image() to verify each
// level.
//
// Also see get_num_loadable_ram_mipmap_images().
////////////////////////////////////////////////////////////////////
58
inline int Texture::get_num_ram_mipmap_images(void) const;
2506 20 has_ram_mipmap_image 0 4 3001 29 Texture::has_ram_mipmap_image 0 1 1082 608
////////////////////////////////////////////////////////////////////
// Function: Texture::has_ram_mipmap_image
// Access: Published
// Description: Returns true if the Texture has the nth mipmap level
// available in system memory, false otherwise. If the
// texture's minfilter mode requires mipmapping (see
// uses_mipmaps()), and all the texture's mipmap levels
// are not available when the texture is rendered, they
// will be generated automatically.
////////////////////////////////////////////////////////////////////
55
inline bool Texture::has_ram_mipmap_image(int n) const;
2507 34 get_num_loadable_ram_mipmap_images 0 4 3001 43 Texture::get_num_loadable_ram_mipmap_images 0 1 1083 955
////////////////////////////////////////////////////////////////////
// Function: Texture::get_num_loadable_ram_mipmap_images
// Access: Published
// Description: Returns the number of contiguous mipmap levels that
// exist in RAM, up until the first gap in the sequence.
// It is guaranteed that at least mipmap levels [0,
// get_num_ram_mipmap_images()) exist.
//
// The number returned will never exceed the number of
// required mipmap images based on the size of the
// texture and its filter mode.
//
// This method is different from
// get_num_ram_mipmap_images() in that it returns only
// the number of mipmap levels that can actually be
// usefully loaded, regardless of the actual number that
// may be stored.
////////////////////////////////////////////////////////////////////
60
int Texture::get_num_loadable_ram_mipmap_images(void) const;
2508 25 has_all_ram_mipmap_images 0 4 3001 34 Texture::has_all_ram_mipmap_images 0 1 1084 403
////////////////////////////////////////////////////////////////////
// Function: Texture::has_all_ram_mipmap_images
// Access: Published
// Description: Returns true if all expected mipmap levels have been
// defined and exist in the system RAM, or false if even
// one mipmap level is missing.
////////////////////////////////////////////////////////////////////
59
inline bool Texture::has_all_ram_mipmap_images(void) const;
2509 25 get_ram_mipmap_image_size 0 4 3001 34 Texture::get_ram_mipmap_image_size 0 1 1085 402
////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_mipmap_image_size
// Access: Published
// Description: Returns the number of bytes used by the in-memory
// image for mipmap level n, or 0 if there is no
// in-memory image for this mipmap level.
////////////////////////////////////////////////////////////////////
68
inline unsigned int Texture::get_ram_mipmap_image_size(int n) const;
2510 24 get_ram_mipmap_view_size 0 4 3001 33 Texture::get_ram_mipmap_view_size 0 1 1086 913
////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_mipmap_view_size
// Access: Published
// Description: Returns the number of bytes used by the in-memory
// image per view for mipmap level n, or 0 if there is
// no in-memory image for this mipmap level.
//
// A "view" is a collection of z_size pages for each
// mipmap level. Most textures have only one view,
// except for multiview or stereo textures.
//
// For a non-compressed texture, this is the same as
// get_expected_ram_mipmap_view_size(). For a compressed
// texture, this may be a smaller value. (We do assume
// that all pages will be the same size on a compressed
// texture).
////////////////////////////////////////////////////////////////////
67
inline unsigned int Texture::get_ram_mipmap_view_size(int n) const;
2511 24 get_ram_mipmap_page_size 0 4 3001 33 Texture::get_ram_mipmap_page_size 0 1 1087 719
////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_mipmap_page_size
// Access: Published
// Description: Returns the number of bytes used by the in-memory
// image per page for mipmap level n, or 0 if there is
// no in-memory image for this mipmap level.
//
// For a non-compressed texture, this is the same as
// get_expected_ram_mipmap_page_size(). For a compressed
// texture, this may be a smaller value. (We do assume
// that all pages will be the same size on a compressed
// texture).
////////////////////////////////////////////////////////////////////
67
inline unsigned int Texture::get_ram_mipmap_page_size(int n) const;
2512 34 get_expected_ram_mipmap_image_size 0 4 3001 43 Texture::get_expected_ram_mipmap_image_size 0 1 1088 404
////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_ram_mipmap_image_size
// Access: Published
// Description: Returns the number of bytes that *ought* to be used
// by the in-memory image for mipmap level n, based on
// the texture parameters.
////////////////////////////////////////////////////////////////////
77
inline unsigned int Texture::get_expected_ram_mipmap_image_size(int n) const;
2513 33 get_expected_ram_mipmap_view_size 0 4 3001 42 Texture::get_expected_ram_mipmap_view_size 0 1 1089 547
////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_ram_mipmap_view_size
// Access: Published
// Description: Returns the number of bytes that *ought* to be used
// by each view of the in-memory image for mipmap level
// n, based on the texture parameters. For a normal,
// non-multiview texture, this is the same as
// get_expected_ram_mipmap_image_size(n).
////////////////////////////////////////////////////////////////////
76
inline unsigned int Texture::get_expected_ram_mipmap_view_size(int n) const;
2514 33 get_expected_ram_mipmap_page_size 0 4 3001 42 Texture::get_expected_ram_mipmap_page_size 0 1 1090 480
////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_ram_mipmap_page_size
// Access: Published
// Description: Returns the number of bytes that should be used per
// each Z page of the 3-d texture, for mipmap level n.
// For a 2-d or 1-d texture, this is the same as
// get_expected_ram_mipmap_view_size(n).
////////////////////////////////////////////////////////////////////
76
inline unsigned int Texture::get_expected_ram_mipmap_page_size(int n) const;
2515 20 get_ram_mipmap_image 0 4 3001 29 Texture::get_ram_mipmap_image 0 1 1091 400
////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_mipmap_image
// Access: Published
// Description: Returns the system-RAM image data associated with the
// nth mipmap level, if present. Returns NULL if the
// nth mipmap level is not present.
////////////////////////////////////////////////////////////////////
80
ConstPointerToArray< unsigned char > Texture::get_ram_mipmap_image(int n) const;
2516 22 get_ram_mipmap_pointer 0 4 3001 31 Texture::get_ram_mipmap_pointer 0 1 1092 447
////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_mipmap_pointer
// Access: Published
// Description: Similiar to get_ram_mipmap_image(), however, in this
// case the void pointer for the given ram image is
// returned. This will be NULL unless it has been
// explicitly set.
////////////////////////////////////////////////////////////////////
51
void *Texture::get_ram_mipmap_pointer(int n) const;
2517 23 modify_ram_mipmap_image 0 4 3001 32 Texture::modify_ram_mipmap_image 0 1 1093 511
////////////////////////////////////////////////////////////////////
// Function: Texture::modify_ram_mipmap_image
// Access: Published
// Description: Returns a modifiable pointer to the system-RAM image
// for the nth mipmap level. This assumes the RAM image
// is uncompressed; if this is not the case, raises an
// assertion.
//
// This does *not* affect keep_ram_image.
////////////////////////////////////////////////////////////////////
79
inline PointerToArray< unsigned char > Texture::modify_ram_mipmap_image(int n);
2518 21 make_ram_mipmap_image 0 4 3001 30 Texture::make_ram_mipmap_image 0 1 1094 471
////////////////////////////////////////////////////////////////////
// Function: Texture::make_ram_mipmap_image
// Access: Published
// Description: Discards the current system-RAM image for the
// nth mipmap level, if any, and allocates a new buffer
// of the appropriate size. Returns the new buffer.
//
// This does *not* affect keep_ram_image.
////////////////////////////////////////////////////////////////////
77
inline PointerToArray< unsigned char > Texture::make_ram_mipmap_image(int n);
2519 22 set_ram_mipmap_pointer 0 4 3001 31 Texture::set_ram_mipmap_pointer 0 0 827
////////////////////////////////////////////////////////////////////
// Function: Texture::set_ram_mipmap_pointer
// Access: Published
// Description: Sets an explicit void pointer as the texture's mipmap
// image for the indicated level. This is a special
// call to direct a texture to reference some external
// image location, for instance from a webcam input.
//
// The texture will henceforth reference this pointer
// directly, instead of its own internal storage; the
// user is responsible for ensuring the data at this
// address remains allocated and valid, and in the
// correct format, during the lifetime of the texture.
////////////////////////////////////////////////////////////////////
87
void Texture::set_ram_mipmap_pointer(int n, void *image, unsigned int page_size = (0));
2520 31 set_ram_mipmap_pointer_from_int 0 4 3001 40 Texture::set_ram_mipmap_pointer_from_int 0 1 1095 592
////////////////////////////////////////////////////////////////////
// Function: Texture::set_ram_mipmap_pointer_from_int
// Access: Published
// Description: Accepts a raw pointer cast as an int, which is then
// passed to set_ram_mipmap_pointer(); see the
// documentation for that method.
//
// This variant is particularly useful to set an
// external pointer from a language like Python, which
// doesn't support void pointers directly.
////////////////////////////////////////////////////////////////////
85
void Texture::set_ram_mipmap_pointer_from_int(__int64 pointer, int n, int page_size);
2521 20 set_ram_mipmap_image 0 4 3001 29 Texture::set_ram_mipmap_image 0 2 1096 1097 556
////////////////////////////////////////////////////////////////////
// Function: Texture::set_ram_mipmap_image
// Access: Published
// Description: Replaces the current system-RAM image for the
// indicated mipmap level with the new data. If
// compression is not CM_off, it indicates that the new
// data is already pre-compressed in the indicated
// format.
//
// This does *not* affect keep_ram_image.
////////////////////////////////////////////////////////////////////
123
inline void Texture::set_ram_mipmap_image(int n, ConstPointerToArray< unsigned char > image, unsigned int page_size = (0));
2522 22 clear_ram_mipmap_image 0 4 3001 31 Texture::clear_ram_mipmap_image 0 1 1098 311
////////////////////////////////////////////////////////////////////
// Function: Texture::clear_ram_mipmap_image
// Access: Published
// Description: Discards the current system-RAM image for the nth
// mipmap level.
////////////////////////////////////////////////////////////////////
44
void Texture::clear_ram_mipmap_image(int n);
2523 23 clear_ram_mipmap_images 0 4 3001 32 Texture::clear_ram_mipmap_images 0 1 1099 342
////////////////////////////////////////////////////////////////////
// Function: Texture::clear_ram_mipmap_images
// Access: Published
// Description: Discards the current system-RAM image for all
// mipmap levels, except level 0 (the base image).
////////////////////////////////////////////////////////////////////
51
inline void Texture::clear_ram_mipmap_images(void);
2524 26 generate_ram_mipmap_images 0 4 3001 35 Texture::generate_ram_mipmap_images 0 1 1100 794
////////////////////////////////////////////////////////////////////
// Function: Texture::generate_ram_mipmap_images
// Access: Published
// Description: Automatically fills in the n mipmap levels of the
// Texture, based on the texture's source image. This
// requires the texture's uncompressed ram image to be
// available in system memory. If it is not already, it
// will be fetched if possible.
//
// This call is not normally necessary, since the mipmap
// levels will be generated automatically if needed.
// But there may be certain cases in which you would
// like to call this explicitly.
////////////////////////////////////////////////////////////////////
54
inline void Texture::generate_ram_mipmap_images(void);
2525 17 get_simple_x_size 0 4 3001 26 Texture::get_simple_x_size 0 1 1101 276
////////////////////////////////////////////////////////////////////
// Function: Texture::get_simple_x_size
// Access: Published
// Description: Returns the width of the "simple" image in texels.
////////////////////////////////////////////////////////////////////
50
inline int Texture::get_simple_x_size(void) const;
2526 17 get_simple_y_size 0 4 3001 26 Texture::get_simple_y_size 0 1 1102 277
////////////////////////////////////////////////////////////////////
// Function: Texture::get_simple_y_size
// Access: Published
// Description: Returns the height of the "simple" image in texels.
////////////////////////////////////////////////////////////////////
50
inline int Texture::get_simple_y_size(void) const;
2527 20 has_simple_ram_image 0 4 3001 29 Texture::has_simple_ram_image 0 1 1103 326
////////////////////////////////////////////////////////////////////
// Function: Texture::has_simple_ram_image
// Access: Published, Virtual
// Description: Returns true if the Texture has a "simple" image
// available in main RAM.
////////////////////////////////////////////////////////////////////
54
inline bool Texture::has_simple_ram_image(void) const;
2528 25 get_simple_ram_image_size 0 4 3001 34 Texture::get_simple_ram_image_size 0 1 1104 340
////////////////////////////////////////////////////////////////////
// Function: Texture::get_simple_ram_image_size
// Access: Published
// Description: Returns the number of bytes used by the "simple"
// image, or 0 if there is no simple image.
////////////////////////////////////////////////////////////////////
67
inline unsigned int Texture::get_simple_ram_image_size(void) const;
2529 20 get_simple_ram_image 0 4 3001 29 Texture::get_simple_ram_image 0 1 1105 879
////////////////////////////////////////////////////////////////////
// Function: Texture::get_simple_ram_image
// Access: Published
// Description: Returns the image data associated with the "simple"
// texture image. This is provided for some textures as
// an option to display while the main texture image is
// being loaded from disk.
//
// Unlike get_ram_image(), this function will always
// return immediately. Either the simple image is
// available, or it is not.
//
// The "simple" image is always 4 components, 1 byte
// each, regardless of the parameters of the full
// texture. The simple image is only supported for
// ordinary 2-d textures.
////////////////////////////////////////////////////////////////////
86
inline ConstPointerToArray< unsigned char > Texture::get_simple_ram_image(void) const;
2530 20 set_simple_ram_image 0 4 3001 29 Texture::set_simple_ram_image 0 1 1106 1051
////////////////////////////////////////////////////////////////////
// Function: Texture::set_simple_ram_image
// Access: Published
// Description: Replaces the internal "simple" texture image. This
// can be used as an option to display while the main
// texture image is being loaded from disk. It is
// normally a very small image, 16x16 or smaller (and
// maybe even 1x1), that is designed to give just enough
// sense of color to serve as a placeholder until the
// full texture is available.
//
// The "simple" image is always 4 components, 1 byte
// each, regardless of the parameters of the full
// texture. The simple image is only supported for
// ordinary 2-d textures.
//
// Also see generate_simple_ram_image(),
// modify_simple_ram_image(), and
// new_simple_ram_image().
////////////////////////////////////////////////////////////////////
110
inline void Texture::set_simple_ram_image(ConstPointerToArray< unsigned char > image, int x_size, int y_size);
2531 23 modify_simple_ram_image 0 4 3001 32 Texture::modify_simple_ram_image 0 1 1107 346
////////////////////////////////////////////////////////////////////
// Function: Texture::modify_simple_ram_image
// Access: Published
// Description: Returns a modifiable pointer to the internal "simple"
// texture image. See set_simple_ram_image().
////////////////////////////////////////////////////////////////////
71
PointerToArray< unsigned char > Texture::modify_simple_ram_image(void);
2532 20 new_simple_ram_image 0 4 3001 29 Texture::new_simple_ram_image 0 1 1108 413
////////////////////////////////////////////////////////////////////
// Function: Texture::new_simple_ram_image
// Access: Published
// Description: Creates an empty array for the simple ram image of
// the indicated size, and returns a modifiable pointer
// to the new array. See set_simple_ram_image().
////////////////////////////////////////////////////////////////////
86
PointerToArray< unsigned char > Texture::new_simple_ram_image(int x_size, int y_size);
2533 25 generate_simple_ram_image 0 4 3001 34 Texture::generate_simple_ram_image 0 1 1109 453
////////////////////////////////////////////////////////////////////
// Function: Texture::generate_simple_ram_image
// Access: Published
// Description: Computes the "simple" ram image by loading the main
// RAM image, if it is not already available, and
// reducing it to 16x16 or smaller. This may be an
// expensive operation.
////////////////////////////////////////////////////////////////////
46
void Texture::generate_simple_ram_image(void);
2534 22 clear_simple_ram_image 0 4 3001 31 Texture::clear_simple_ram_image 0 1 1110 267
////////////////////////////////////////////////////////////////////
// Function: Texture::clear_simple_ram_image
// Access: Published
// Description: Discards the current "simple" image.
////////////////////////////////////////////////////////////////////
50
inline void Texture::clear_simple_ram_image(void);
2535 4 peek 0 4 3001 13 Texture::peek 0 1 1111 826
////////////////////////////////////////////////////////////////////
// Function: Texture::peek
// Access: Published
// Description: Returns a TexturePeeker object that can be used to
// examine the individual texels stored within this
// Texture by (u, v) coordinate.
//
// If the texture has a ram image resident, that image
// is used. If it does not have a full ram image but
// does have a simple_ram_image resident, that image is
// used instead. If neither image is resident the full
// image is reloaded.
//
// Returns NULL if the texture cannot find an image to
// load, or the texture format is incompatible.
////////////////////////////////////////////////////////////////////
47
PointerTo< TexturePeeker > Texture::peek(void);
2536 23 get_properties_modified 0 4 3001 32 Texture::get_properties_modified 0 1 1112 403
////////////////////////////////////////////////////////////////////
// Function: Texture::get_properties_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the texture properties
// (unrelated to the image) are modified.
////////////////////////////////////////////////////////////////////
62
inline UpdateSeq Texture::get_properties_modified(void) const;
2537 18 get_image_modified 0 4 3001 27 Texture::get_image_modified 0 1 1113 399
////////////////////////////////////////////////////////////////////
// Function: Texture::get_image_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the texture image data
// (including mipmap levels) are modified.
////////////////////////////////////////////////////////////////////
57
inline UpdateSeq Texture::get_image_modified(void) const;
2538 25 get_simple_image_modified 0 4 3001 34 Texture::get_simple_image_modified 0 1 1114 390
////////////////////////////////////////////////////////////////////
// Function: Texture::get_simple_image_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the texture's "simple"
// image data is modified.
////////////////////////////////////////////////////////////////////
64
inline UpdateSeq Texture::get_simple_image_modified(void) const;
2539 22 set_auto_texture_scale 0 4 3001 31 Texture::set_auto_texture_scale 0 1 1115 421
////////////////////////////////////////////////////////////////////
// Function: Texture::set_auto_texture_scale
// Access: Published
// Description: Specifies the power-of-2 texture-scaling mode that
// will be applied to this particular texture when it is
// next loaded from disk. See set_textures_power_2().
////////////////////////////////////////////////////////////////////
68
inline void Texture::set_auto_texture_scale(AutoTextureScale scale);
2540 22 get_auto_texture_scale 0 4 3001 31 Texture::get_auto_texture_scale 0 1 1116 419
////////////////////////////////////////////////////////////////////
// Function: Texture::get_auto_texture_scale
// Access: Published
// Description: Returns the power-of-2 texture-scaling mode that will
// be applied to this particular texture when it is next
// loaded from disk. See set_textures_power_2().
////////////////////////////////////////////////////////////////////
68
inline AutoTextureScale Texture::get_auto_texture_scale(void) const;
2541 22 has_auto_texture_scale 0 4 3001 31 Texture::has_auto_texture_scale 0 1 1117 387
////////////////////////////////////////////////////////////////////
// Function: Texture::has_auto_texture_scale
// Access: Published
// Description: Returns true if set_auto_texture_scale() has been set
// to something other than ATS_unspecified for this
// particular texture.
////////////////////////////////////////////////////////////////////
56
inline bool Texture::has_auto_texture_scale(void) const;
2542 7 prepare 0 4 3001 16 Texture::prepare 0 1 1118 655
////////////////////////////////////////////////////////////////////
// Function: Texture::prepare
// Access: Published
// Description: Indicates that the texture should be enqueued to be
// prepared in the indicated prepared_objects at the
// beginning of the next frame. This will ensure the
// texture is already loaded into texture memory if it
// is expected to be rendered soon.
//
// Use this function instead of prepare_now() to preload
// textures from a user interface standpoint.
////////////////////////////////////////////////////////////////////
65
void Texture::prepare(PreparedGraphicsObjects *prepared_objects);
2543 11 is_prepared 0 4 3001 20 Texture::is_prepared 0 1 1119 374
////////////////////////////////////////////////////////////////////
// Function: Texture::is_prepared
// Access: Published
// Description: Returns true if the texture has already been prepared
// or enqueued for preparation on the indicated GSG,
// false otherwise.
////////////////////////////////////////////////////////////////////
75
bool Texture::is_prepared(PreparedGraphicsObjects *prepared_objects) const;
2544 18 was_image_modified 0 4 3001 27 Texture::was_image_modified 0 1 1120 437
////////////////////////////////////////////////////////////////////
// Function: Texture::was_image_modified
// Access: Published
// Description: Returns true if the texture needs to be re-loaded
// onto the indicated GSG, either because its image data
// is out-of-date, or because it's not fully prepared
// now.
////////////////////////////////////////////////////////////////////
82
bool Texture::was_image_modified(PreparedGraphicsObjects *prepared_objects) const;
2545 19 get_data_size_bytes 0 4 3001 28 Texture::get_data_size_bytes 0 1 1121 639
////////////////////////////////////////////////////////////////////
// Function: Texture::get_data_size_bytes
// Access: Public
// Description: Returns the number of bytes which the texture is
// reported to consume within graphics memory, for the
// indicated GSG. This may return a nonzero value even
// if the texture is not currently resident; you should
// also check get_resident() if you want to know how
// much space the texture is actually consuming right
// now.
////////////////////////////////////////////////////////////////////
91
unsigned int Texture::get_data_size_bytes(PreparedGraphicsObjects *prepared_objects) const;
2546 10 get_active 0 4 3001 19 Texture::get_active 0 1 1122 325
////////////////////////////////////////////////////////////////////
// Function: Texture::get_active
// Access: Public
// Description: Returns true if this Texture was rendered in the most
// recent frame within the indicated GSG.
////////////////////////////////////////////////////////////////////
74
bool Texture::get_active(PreparedGraphicsObjects *prepared_objects) const;
2547 12 get_resident 0 4 3001 21 Texture::get_resident 0 1 1123 353
////////////////////////////////////////////////////////////////////
// Function: Texture::get_resident
// Access: Public
// Description: Returns true if this Texture is reported to be
// resident within graphics memory for the indicated
// GSG.
////////////////////////////////////////////////////////////////////
76
bool Texture::get_resident(PreparedGraphicsObjects *prepared_objects) const;
2548 7 release 0 4 3001 16 Texture::release 0 1 1124 394
////////////////////////////////////////////////////////////////////
// Function: Texture::release
// Access: Published
// Description: Frees the texture context only on the indicated object,
// if it exists there. Returns true if it was released,
// false if it had not been prepared.
////////////////////////////////////////////////////////////////////
65
bool Texture::release(PreparedGraphicsObjects *prepared_objects);
2549 11 release_all 0 4 3001 20 Texture::release_all 0 1 1125 392
////////////////////////////////////////////////////////////////////
// Function: Texture::release_all
// Access: Published
// Description: Frees the context allocated on all objects for which
// the texture has been declared. Returns the number of
// contexts which have been freed.
////////////////////////////////////////////////////////////////////
31
int Texture::release_all(void);
2550 23 estimate_texture_memory 0 4 3001 32 Texture::estimate_texture_memory 0 1 1126 775
////////////////////////////////////////////////////////////////////
// Function: Texture::estimate_texture_memory
// Access: Published
// Description: Estimates the amount of texture memory that will be
// consumed by loading this texture. This returns a
// value that is not specific to any particular graphics
// card or driver; it tries to make a reasonable
// assumption about how a driver will load the texture.
// It does not account for texture compression or
// anything fancy. This is mainly useful for debugging
// and reporting purposes.
//
// Returns a value in bytes.
////////////////////////////////////////////////////////////////////
58
unsigned int Texture::estimate_texture_memory(void) const;
2551 12 set_aux_data 0 4 3001 21 Texture::set_aux_data 0 1 1127 523
////////////////////////////////////////////////////////////////////
// Function: Texture::set_aux_data
// Access: Published
// Description: Records an arbitrary object in the Texture,
// associated with a specified key. The object may
// later be retrieved by calling get_aux_data() with the
// same key.
//
// These data objects are not recorded to a bam or txo
// file.
////////////////////////////////////////////////////////////////////
91
void Texture::set_aux_data(basic_string< char > const &key, TypedReferenceCount *aux_data);
2552 14 clear_aux_data 0 4 3001 23 Texture::clear_aux_data 0 1 1128 296
////////////////////////////////////////////////////////////////////
// Function: Texture::clear_aux_data
// Access: Published
// Description: Removes a record previously recorded via
// set_aux_data().
////////////////////////////////////////////////////////////////////
62
void Texture::clear_aux_data(basic_string< char > const &key);
2553 12 get_aux_data 0 4 3001 21 Texture::get_aux_data 0 1 1129 383
////////////////////////////////////////////////////////////////////
// Function: Texture::get_aux_data
// Access: Published
// Description: Returns a record previously recorded via
// set_aux_data(). Returns NULL if there was no record
// associated with the indicated key.
////////////////////////////////////////////////////////////////////
82
TypedReferenceCount *Texture::get_aux_data(basic_string< char > const &key) const;
2554 20 set_textures_power_2 0 4 3001 29 Texture::set_textures_power_2 0 1 1130 520
////////////////////////////////////////////////////////////////////
// Function: Texture::set_textures_power_2
// Access: Published, Static
// Description: Set this flag to ATS_none, ATS_up, ATS_down, or
// ATS_pad to control the scaling of textures in
// general, if a particular texture does not override
// this. See also set_auto_texture_scale() for the
// per-texture override.
////////////////////////////////////////////////////////////////////
73
static inline void Texture::set_textures_power_2(AutoTextureScale scale);
2555 20 get_textures_power_2 0 4 3001 29 Texture::get_textures_power_2 0 1 1131 536
////////////////////////////////////////////////////////////////////
// Function: Texture::get_textures_power_2
// Access: Published, Static
// Description: This flag returns ATS_none, ATS_up, or ATS_down
// and controls the scaling of textures in general. It
// is initialized from the config variable of the same
// name, but it can be subsequently adjusted. See also
// get_auto_texture_scale().
////////////////////////////////////////////////////////////////////
67
static inline AutoTextureScale Texture::get_textures_power_2(void);
2556 20 has_textures_power_2 0 4 3001 29 Texture::has_textures_power_2 0 1 1132 452
////////////////////////////////////////////////////////////////////
// Function: Texture::has_textures_power_2
// Access: Published, Static
// Description: If true, then get_textures_power_2 has been
// set using set_textures_power_2.
// If false, then get_textures_power_2 simply
// returns the config variable of the same name.
////////////////////////////////////////////////////////////////////
55
static inline bool Texture::has_textures_power_2(void);
2557 12 set_filename 0 4 3001 21 Texture::set_filename 0 1 1133 834
// These are published, but in general, you shouldn't be mucking
// with these values; they are set automatically when a texture is
// loaded.
////////////////////////////////////////////////////////////////////
// Function: Texture::set_filename
// Access: Published
// Description: Sets the name of the file that contains the image's
// contents. Normally, this is set automatically when
// the image is loaded, for instance via
// Texture::read().
//
// The Texture's get_name() function used to return
// the filename, but now returns just the basename
// (without the extension), which is a more useful name
// for identifying an image in show code.
////////////////////////////////////////////////////////////////////
60
inline void Texture::set_filename(Filename const &filename);
2558 14 clear_filename 0 4 3001 23 Texture::clear_filename 0 1 1134 457
// These are published, but in general, you shouldn't be mucking
// with these values; they are set automatically when a texture is
// loaded.
////////////////////////////////////////////////////////////////////
// Function: Texture::clear_filename
// Access: Published
// Description: Removes the alpha filename, if it was previously set.
// See set_filename().
////////////////////////////////////////////////////////////////////
42
inline void Texture::clear_filename(void);
2559 18 set_alpha_filename 0 4 3001 27 Texture::set_alpha_filename 0 1 1135 915
////////////////////////////////////////////////////////////////////
// Function: Texture::set_alpha_filename
// Access: Published
// Description: Sets the name of the file that contains the image's
// alpha channel contents. Normally, this is set
// automatically when the image is loaded, for instance
// via Texture::read().
//
// The Texture's get_filename() function returns the
// name of the image file that was loaded into the
// buffer. In the case where a texture specified two
// separate files to load, a 1- or 3-channel color image
// and a 1-channel alpha image, this Filename is update
// to contain the name of the image file that was loaded
// into the buffer's alpha channel.
////////////////////////////////////////////////////////////////////
72
inline void Texture::set_alpha_filename(Filename const &alpha_filename);
2560 20 clear_alpha_filename 0 4 3001 29 Texture::clear_alpha_filename 0 1 1136 325
////////////////////////////////////////////////////////////////////
// Function: Texture::clear_alpha_filename
// Access: Published
// Description: Removes the alpha filename, if it was previously set.
// See set_alpha_filename().
////////////////////////////////////////////////////////////////////
48
inline void Texture::clear_alpha_filename(void);
2561 12 set_fullpath 0 4 3001 21 Texture::set_fullpath 0 1 1137 470
////////////////////////////////////////////////////////////////////
// Function: Texture::set_fullpath
// Access: Published
// Description: Sets the full pathname to the file that contains the
// image's contents, as found along the search path.
// Normally, this is set automatically when the image is
// loaded, for instance via Texture::read().
////////////////////////////////////////////////////////////////////
60
inline void Texture::set_fullpath(Filename const &fullpath);
2562 14 clear_fullpath 0 4 3001 23 Texture::clear_fullpath 0 1 1138 313
////////////////////////////////////////////////////////////////////
// Function: Texture::clear_fullpath
// Access: Published
// Description: Removes the alpha fullpath, if it was previously set.
// See set_fullpath().
////////////////////////////////////////////////////////////////////
42
inline void Texture::clear_fullpath(void);
2563 18 set_alpha_fullpath 0 4 3001 27 Texture::set_alpha_fullpath 0 1 1139 508
////////////////////////////////////////////////////////////////////
// Function: Texture::set_alpha_fullpath
// Access: Published
// Description: Sets the full pathname to the file that contains the
// image's alpha channel contents, as found along the
// search path. Normally, this is set automatically
// when the image is loaded, for instance via
// Texture::read().
////////////////////////////////////////////////////////////////////
72
inline void Texture::set_alpha_fullpath(Filename const &alpha_fullpath);
2564 20 clear_alpha_fullpath 0 4 3001 29 Texture::clear_alpha_fullpath 0 1 1140 325
////////////////////////////////////////////////////////////////////
// Function: Texture::clear_alpha_fullpath
// Access: Published
// Description: Removes the alpha fullpath, if it was previously set.
// See set_alpha_fullpath().
////////////////////////////////////////////////////////////////////
48
inline void Texture::clear_alpha_fullpath(void);
2565 10 set_x_size 0 4 3001 19 Texture::set_x_size 0 1 1141 371
////////////////////////////////////////////////////////////////////
// Function: Texture::set_x_size
// Access: Published
// Description: Changes the x size indicated for the texture. This
// also implicitly unloads the texture if it has already
// been loaded.
////////////////////////////////////////////////////////////////////
44
inline void Texture::set_x_size(int x_size);
2566 10 set_y_size 0 4 3001 19 Texture::set_y_size 0 1 1142 371
////////////////////////////////////////////////////////////////////
// Function: Texture::set_y_size
// Access: Published
// Description: Changes the y size indicated for the texture. This
// also implicitly unloads the texture if it has already
// been loaded.
////////////////////////////////////////////////////////////////////
44
inline void Texture::set_y_size(int y_size);
2567 10 set_z_size 0 4 3001 19 Texture::set_z_size 0 1 1143 371
////////////////////////////////////////////////////////////////////
// Function: Texture::set_z_size
// Access: Published
// Description: Changes the z size indicated for the texture. This
// also implicitly unloads the texture if it has already
// been loaded.
////////////////////////////////////////////////////////////////////
44
inline void Texture::set_z_size(int z_size);
2568 13 set_num_views 0 4 3001 22 Texture::set_num_views 0 1 1144 866
////////////////////////////////////////////////////////////////////
// Function: Texture::set_num_views
// Access: Published
// Description: Sets the number of "views" within a texture. A view
// is a completely separate image stored within the
// Texture object. Most textures have only one view,
// but a stereo texture, for instance, may have two
// views, a left and a right image. Other uses for
// multiple views are not yet defined.
//
// If this value is greater than one, the additional
// views are accessed as additional pages beyond
// get_z_size().
//
// This also implicitly unloads the texture if it has
// already been loaded.
////////////////////////////////////////////////////////////////////
50
inline void Texture::set_num_views(int num_views);
2569 14 get_pad_x_size 0 4 3001 23 Texture::get_pad_x_size 0 1 1145 273
////////////////////////////////////////////////////////////////////
// Function: Texture::get_pad_x_size
// Access: Published
// Description: Returns size of the pad region. See set_pad_size.
////////////////////////////////////////////////////////////////////
47
inline int Texture::get_pad_x_size(void) const;
2570 14 get_pad_y_size 0 4 3001 23 Texture::get_pad_y_size 0 1 1146 273
////////////////////////////////////////////////////////////////////
// Function: Texture::get_pad_y_size
// Access: Published
// Description: Returns size of the pad region. See set_pad_size.
////////////////////////////////////////////////////////////////////
47
inline int Texture::get_pad_y_size(void) const;
2571 14 get_pad_z_size 0 4 3001 23 Texture::get_pad_z_size 0 1 1147 273
////////////////////////////////////////////////////////////////////
// Function: Texture::get_pad_z_size
// Access: Published
// Description: Returns size of the pad region. See set_pad_size.
////////////////////////////////////////////////////////////////////
47
inline int Texture::get_pad_z_size(void) const;
2572 13 get_tex_scale 0 4 3001 22 Texture::get_tex_scale 0 1 1148 866
////////////////////////////////////////////////////////////////////
// Function: Texture::get_tex_scale
// Access: Published
// Description: Returns a scale pair that is suitable for applying to
// geometry via NodePath::set_tex_scale(), which will
// convert texture coordinates on the geometry from the
// range 0..1 into the appropriate range to render the
// video part of the texture.
//
// This is necessary only if a padding size has been set
// via set_pad_size() (or implicitly via something like
// "textures-power-2 pad" in the config.prc file). In
// this case, this is a convenient way to generate UV's
// that reflect the built-in padding size.
////////////////////////////////////////////////////////////////////
53
inline LVecBase2f Texture::get_tex_scale(void) const;
2573 12 set_pad_size 0 4 3001 21 Texture::set_pad_size 0 4 1149 1150 1151 1152 813
////////////////////////////////////////////////////////////////////
// Function: Texture::set_pad_size
// Access: Published
// Description: Sets the size of the pad region.
//
// Sometimes, when a video card demands power-of-two
// textures, it is necessary to create a big texture
// and then only use a portion of it. The pad region
// indicates which portion of the texture is not
// really in use. All operations use the texture
// as a whole, including the pad region, unless they
// explicitly state that they use only the non-pad
// region.
//
// Changing the texture's size clears the pad region.
////////////////////////////////////////////////////////////////////
73
inline void Texture::set_pad_size(int x = (0), int y = (0), int z = (0));
2574 15 set_size_padded 0 4 3001 24 Texture::set_size_padded 0 4 1153 1154 1155 1156 348
////////////////////////////////////////////////////////////////////
// Function: Texture::set_size_padded
// Access: Published
// Description: Changes the size of the texture, padding
// if necessary, and setting the pad region
// as well.
////////////////////////////////////////////////////////////////////
69
void Texture::set_size_padded(int x = (1), int y = (1), int z = (1));
2575 20 get_orig_file_x_size 0 4 3001 29 Texture::get_orig_file_x_size 0 1 1157 414
////////////////////////////////////////////////////////////////////
// Function: Texture::get_orig_file_x_size
// Access: Published
// Description: Returns the X size of the original disk image that
// this Texture was loaded from (if it came from a disk
// file), before any automatic rescaling by Panda.
////////////////////////////////////////////////////////////////////
53
inline int Texture::get_orig_file_x_size(void) const;
2576 20 get_orig_file_y_size 0 4 3001 29 Texture::get_orig_file_y_size 0 1 1158 414
////////////////////////////////////////////////////////////////////
// Function: Texture::get_orig_file_y_size
// Access: Published
// Description: Returns the Y size of the original disk image that
// this Texture was loaded from (if it came from a disk
// file), before any automatic rescaling by Panda.
////////////////////////////////////////////////////////////////////
53
inline int Texture::get_orig_file_y_size(void) const;
2577 20 get_orig_file_z_size 0 4 3001 29 Texture::get_orig_file_z_size 0 1 1159 414
////////////////////////////////////////////////////////////////////
// Function: Texture::get_orig_file_z_size
// Access: Published
// Description: Returns the Z size of the original disk image that
// this Texture was loaded from (if it came from a disk
// file), before any automatic rescaling by Panda.
////////////////////////////////////////////////////////////////////
53
inline int Texture::get_orig_file_z_size(void) const;
2578 18 set_orig_file_size 0 4 3001 27 Texture::set_orig_file_size 0 2 1160 1161 343
////////////////////////////////////////////////////////////////////
// Function: Texture::set_orig_file_size
// Access: Published
// Description: Specifies the size of the texture as it exists in its
// original disk file, before any Panda scaling.
////////////////////////////////////////////////////////////////////
60
void Texture::set_orig_file_size(int x, int y, int z = (1));
2579 10 set_format 0 4 3001 19 Texture::set_format 0 1 1162 333
////////////////////////////////////////////////////////////////////
// Function: Texture::set_format
// Access: Published
// Description: Changes the format value for the texture components.
// This implicitly sets num_components as well.
////////////////////////////////////////////////////////////////////
56
inline void Texture::set_format(Texture::Format format);
2580 18 set_component_type 0 4 3001 27 Texture::set_component_type 0 1 1163 340
////////////////////////////////////////////////////////////////////
// Function: Texture::set_component_type
// Access: Published
// Description: Changes the data value for the texture components.
// This implicitly sets component_width as well.
////////////////////////////////////////////////////////////////////
79
inline void Texture::set_component_type(Texture::ComponentType component_type);
2581 21 set_loaded_from_image 0 4 3001 30 Texture::set_loaded_from_image 0 1 1164 553
////////////////////////////////////////////////////////////////////
// Function: Texture::set_loaded_from_image
// Access: Published
// Description: Sets the flag that indicates the texture has been
// loaded from a disk file or PNMImage. You should also
// ensure the filename has been set correctly. When
// this flag is true, the texture may be automatically
// reloaded when its ram image needs to be replaced.
////////////////////////////////////////////////////////////////////
49
inline void Texture::set_loaded_from_image(void);
2582 21 get_loaded_from_image 0 4 3001 30 Texture::get_loaded_from_image 0 1 1165 383
////////////////////////////////////////////////////////////////////
// Function: Texture::get_loaded_from_image
// Access: Published
// Description: Returns the flag that indicates the texture has been
// loaded from a disk file or PNMImage. See
// set_loaded_from_image().
////////////////////////////////////////////////////////////////////
55
inline bool Texture::get_loaded_from_image(void) const;
2583 19 set_loaded_from_txo 0 4 3001 28 Texture::set_loaded_from_txo 0 1 1166 452
////////////////////////////////////////////////////////////////////
// Function: Texture::set_loaded_from_txo
// Access: Published
// Description: Sets the flag that indicates the texture has been
// loaded from a txo file. You probably shouldn't be
// setting this directly; it is set automatically when a
// Texture is loaded.
////////////////////////////////////////////////////////////////////
47
inline void Texture::set_loaded_from_txo(void);
2584 19 get_loaded_from_txo 0 4 3001 28 Texture::get_loaded_from_txo 0 1 1167 321
////////////////////////////////////////////////////////////////////
// Function: Texture::get_loaded_from_txo
// Access: Published
// Description: Returns the flag that indicates the texture has been
// loaded from a txo file.
////////////////////////////////////////////////////////////////////
53
inline bool Texture::get_loaded_from_txo(void) const;
2585 9 is_mipmap 0 4 3001 18 Texture::is_mipmap 0 1 1168 338
////////////////////////////////////////////////////////////////////
// Function: Texture::is_mipmap
// Access: Published, Static
// Description: Returns true if the indicated filter type requires
// the use of mipmaps, or false if it does not.
////////////////////////////////////////////////////////////////////
57
static bool Texture::is_mipmap(Texture::FilterType type);
2586 28 get_match_framebuffer_format 0 4 3001 37 Texture::get_match_framebuffer_format 0 1 1169 588
////////////////////////////////////////////////////////////////////
// Function: Texture::get_match_framebuffer_format
// Access: Public
// Description: Returns true if the special flag was set that
// indicates to the GSG that the Texture's format should
// be chosen to exactly match the framebuffer's format,
// presumably because the application intends to copy
// image data from the framebuffer into the Texture (or
// vice-versa).
////////////////////////////////////////////////////////////////////
62
inline bool Texture::get_match_framebuffer_format(void) const;
2587 28 set_match_framebuffer_format 0 4 3001 37 Texture::set_match_framebuffer_format 0 1 1170 743
////////////////////////////////////////////////////////////////////
// Function: Texture::set_match_framebuffer_format
// Access: Public
// Description: Sets the special flag that, if true, indicates to the
// GSG that the Texture's format should be chosen to
// exactly match the framebuffer's format, presumably
// because the application intends to copy image data
// from the framebuffer into the Texture (or
// vice-versa).
//
// This sets only the graphics card's idea of the
// texture format; it is not related to the
// system-memory format.
////////////////////////////////////////////////////////////////////
61
inline void Texture::set_match_framebuffer_format(bool flag);
2588 25 get_post_load_store_cache 0 4 3001 34 Texture::get_post_load_store_cache 0 1 1171 336
////////////////////////////////////////////////////////////////////
// Function: Texture::get_post_load_store_cache
// Access: Public
// Description: Returns the setting of the post_load_store_cache
// flag. See set_post_load_store_cache().
////////////////////////////////////////////////////////////////////
59
inline bool Texture::get_post_load_store_cache(void) const;
2589 25 set_post_load_store_cache 0 4 3001 34 Texture::set_post_load_store_cache 0 1 1172 742
////////////////////////////////////////////////////////////////////
// Function: Texture::set_post_load_store_cache
// Access: Public
// Description: Sets the post_load_store_cache flag. When this is
// set, the next time the texture is loaded on a GSG, it
// will automatically extract its RAM image from the GSG
// and save it to the global BamCache.
//
// This is used to store compressed RAM images in the
// BamCache. This flag should not be set explicitly; it
// is set automatically by the TexturePool when
// model-cache-compressed-textures is set true.
////////////////////////////////////////////////////////////////////
58
inline void Texture::set_post_load_store_cache(bool flag);
2590 11 prepare_now 0 4 3001 20 Texture::prepare_now 0 1 1173 889
////////////////////////////////////////////////////////////////////
// Function: Texture::prepare_now
// Access: Published
// Description: Creates a context for the texture on the particular
// GSG, if it does not already exist. Returns the new
// (or old) TextureContext. This assumes that the
// GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// textures. If this is not necessarily the case, you
// should use prepare() instead.
//
// Normally, this is not called directly except by the
// GraphicsStateGuardian; a texture does not need to be
// explicitly prepared by the user before it may be
// rendered.
////////////////////////////////////////////////////////////////////
122
TextureContext *Texture::prepare_now(int view, PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg);
2591 13 up_to_power_2 0 4 3001 22 Texture::up_to_power_2 0 1 1174 310
////////////////////////////////////////////////////////////////////
// Function: Texture::up_to_power_2
// Access: Published, Static
// Description: Returns the smallest power of 2 greater than or equal
// to value.
////////////////////////////////////////////////////////////////////
45
static int Texture::up_to_power_2(int value);
2592 15 down_to_power_2 0 4 3001 24 Texture::down_to_power_2 0 1 1175 308
////////////////////////////////////////////////////////////////////
// Function: Texture::down_to_power_2
// Access: Published, Static
// Description: Returns the largest power of 2 less than or equal
// to value.
////////////////////////////////////////////////////////////////////
47
static int Texture::down_to_power_2(int value);
2593 16 consider_rescale 0 4 3001 25 Texture::consider_rescale 0 3 1176 1177 1178 1574
////////////////////////////////////////////////////////////////////
// Function: Texture::consider_rescale
// Access: Published
// Description: Asks the PNMImage to change its scale when it reads
// the image, according to the whims of the Config.prc
// file.
//
// For most efficient results, this method should be
// called after pnmimage.read_header() has been called,
// but before pnmimage.read(). This method may also be
// called after pnmimage.read(), i.e. when the pnmimage
// is already loaded; in this case it will rescale the
// image on the spot. Also see rescale_texture().
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::consider_rescale
// Access: Published, Static
// Description: Asks the PNMImage to change its scale when it reads
// the image, according to the whims of the Config.prc
// file.
//
// For most efficient results, this method should be
// called after pnmimage.read_header() has been called,
// but before pnmimage.read(). This method may also be
// called after pnmimage.read(), i.e. when the pnmimage
// is already loaded; in this case it will rescale the
// image on the spot. Also see rescale_texture().
////////////////////////////////////////////////////////////////////
201
void Texture::consider_rescale(PNMImage &pnmimage);
static void Texture::consider_rescale(PNMImage &pnmimage, basic_string< char > const &name, AutoTextureScale auto_texture_scale = (ATS_unspecified));
2594 15 rescale_texture 0 4 3001 24 Texture::rescale_texture 0 1 1179 711
////////////////////////////////////////////////////////////////////
// Function: Texture::rescale_texture
// Access: Published
// Description: This method is similar to consider_rescale(), but
// instead of scaling a separate PNMImage, it will ask
// the Texture to rescale its own internal image to a
// power of 2, according to the config file
// requirements. This may be useful after loading a
// Texture image by hand, instead of reading it from a
// disk file. Returns true if the texture is changed,
// false if it was not.
////////////////////////////////////////////////////////////////////
43
inline bool Texture::rescale_texture(void);
2595 19 format_texture_type 0 4 3001 28 Texture::format_texture_type 0 1 1180 314
////////////////////////////////////////////////////////////////////
// Function: Texture::format_texture_type
// Access: Published, Static
// Description: Returns the indicated TextureType converted to a
// string word.
////////////////////////////////////////////////////////////////////
82
static basic_string< char > Texture::format_texture_type(Texture::TextureType tt);
2596 19 string_texture_type 0 4 3001 28 Texture::string_texture_type 0 1 1181 320
////////////////////////////////////////////////////////////////////
// Function: Texture::string_texture_type
// Access: Published, Static
// Description: Returns the TextureType corresponding to the
// indicated string word.
////////////////////////////////////////////////////////////////////
90
static Texture::TextureType Texture::string_texture_type(basic_string< char > const &str);
2597 21 format_component_type 0 4 3001 30 Texture::format_component_type 0 1 1182 318
////////////////////////////////////////////////////////////////////
// Function: Texture::format_component_type
// Access: Published, Static
// Description: Returns the indicated ComponentType converted to a
// string word.
////////////////////////////////////////////////////////////////////
86
static basic_string< char > Texture::format_component_type(Texture::ComponentType ct);
2598 21 string_component_type 0 4 3001 30 Texture::string_component_type 0 1 1183 324
////////////////////////////////////////////////////////////////////
// Function: Texture::string_component_type
// Access: Published, Static
// Description: Returns the ComponentType corresponding to the
// indicated string word.
////////////////////////////////////////////////////////////////////
94
static Texture::ComponentType Texture::string_component_type(basic_string< char > const &str);
2599 13 format_format 0 4 3001 22 Texture::format_format 0 1 1184 303
////////////////////////////////////////////////////////////////////
// Function: Texture::format_format
// Access: Published, Static
// Description: Returns the indicated Format converted to a
// string word.
////////////////////////////////////////////////////////////////////
70
static basic_string< char > Texture::format_format(Texture::Format f);
2600 13 string_format 0 4 3001 22 Texture::string_format 0 1 1185 309
////////////////////////////////////////////////////////////////////
// Function: Texture::string_format
// Access: Published, Static
// Description: Returns the Format corresponding to the
// indicated string word.
////////////////////////////////////////////////////////////////////
79
static Texture::Format Texture::string_format(basic_string< char > const &str);
2601 18 format_filter_type 0 4 3001 27 Texture::format_filter_type 0 1 1186 312
////////////////////////////////////////////////////////////////////
// Function: Texture::format_filter_type
// Access: Published, Static
// Description: Returns the indicated FilterType converted to a
// string word.
////////////////////////////////////////////////////////////////////
80
static basic_string< char > Texture::format_filter_type(Texture::FilterType ft);
2602 18 string_filter_type 0 4 3001 27 Texture::string_filter_type 0 1 1187 406
////////////////////////////////////////////////////////////////////
// Function: Texture::string_filter_type
// Access: Public
// Description: Returns the FilterType value associated with the given
// string representation, or FT_invalid if the string
// does not match any known FilterType value.
////////////////////////////////////////////////////////////////////
88
static Texture::FilterType Texture::string_filter_type(basic_string< char > const &str);
2603 16 format_wrap_mode 0 4 3001 25 Texture::format_wrap_mode 0 1 1188 308
////////////////////////////////////////////////////////////////////
// Function: Texture::format_wrap_mode
// Access: Published, Static
// Description: Returns the indicated WrapMode converted to a
// string word.
////////////////////////////////////////////////////////////////////
76
static basic_string< char > Texture::format_wrap_mode(Texture::WrapMode wm);
2604 16 string_wrap_mode 0 4 3001 25 Texture::string_wrap_mode 0 1 1189 400
////////////////////////////////////////////////////////////////////
// Function: Texture::string_wrap_mode
// Access: Public
// Description: Returns the WrapMode value associated with the given
// string representation, or WM_invalid if the string
// does not match any known WrapMode value.
////////////////////////////////////////////////////////////////////
84
static Texture::WrapMode Texture::string_wrap_mode(basic_string< char > const &str);
2605 23 format_compression_mode 0 4 3001 32 Texture::format_compression_mode 0 1 1190 322
////////////////////////////////////////////////////////////////////
// Function: Texture::format_compression_mode
// Access: Published, Static
// Description: Returns the indicated CompressionMode converted to a
// string word.
////////////////////////////////////////////////////////////////////
90
static basic_string< char > Texture::format_compression_mode(Texture::CompressionMode cm);
2606 23 string_compression_mode 0 4 3001 32 Texture::string_compression_mode 0 1 1191 328
////////////////////////////////////////////////////////////////////
// Function: Texture::string_compression_mode
// Access: Public
// Description: Returns the CompressionMode value associated with the
// given string representation.
////////////////////////////////////////////////////////////////////
98
static Texture::CompressionMode Texture::string_compression_mode(basic_string< char > const &str);
2607 20 format_quality_level 0 4 3001 29 Texture::format_quality_level 0 1 1192 316
////////////////////////////////////////////////////////////////////
// Function: Texture::format_quality_level
// Access: Published, Static
// Description: Returns the indicated QualityLevel converted to a
// string word.
////////////////////////////////////////////////////////////////////
85
static basic_string< char > Texture::format_quality_level(Texture::QualityLevel tql);
2608 20 string_quality_level 0 4 3001 29 Texture::string_quality_level 0 1 1193 322
////////////////////////////////////////////////////////////////////
// Function: Texture::string_quality_level
// Access: Public
// Description: Returns the QualityLevel value associated with the
// given string representation.
////////////////////////////////////////////////////////////////////
92
static Texture::QualityLevel Texture::string_quality_level(basic_string< char > const &str);
2609 14 get_class_type 0 4 3001 23 Texture::get_class_type 0 1 1194 0
48
static TypeHandle Texture::get_class_type(void);
2610 4 load 0 4 3009 12 Shader::load 0 6 1199 1200 1201 1202 1203 1204 566
////////////////////////////////////////////////////////////////////
// Function: Shader::load
// Access: Published, Static
// Description: Loads the shader with the given filename.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Shader::load
// Access: Published, Static
// Description: This variant of Shader::load loads all shader
// programs separately.
////////////////////////////////////////////////////////////////////
347
static PointerTo< Shader > Shader::load(Filename const &file, Shader::ShaderLanguage const &lang = (SL_none));
static PointerTo< Shader > Shader::load(Shader::ShaderLanguage const &lang, Filename const &vertex, Filename const &fragment, Filename const &geometry = (""), Filename const &tess_control = (""), Filename const &tess_evaluation = (""));
2611 4 make 0 4 3009 12 Shader::make 0 6 1205 1206 1207 1208 1209 1210 553
//////////////////////////////////////////////////////////////////////
// Function: Shader::make
// Access: Published, Static
// Description: Loads the shader, using the string as shader body.
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Function: Shader::make
// Access: Published, Static
// Description: Loads the shader, using the strings as shader bodies.
//////////////////////////////////////////////////////////////////////
419
static PointerTo< Shader > Shader::make(basic_string< char > const &body, Shader::ShaderLanguage const &lang = (SL_none));
static PointerTo< Shader > Shader::make(Shader::ShaderLanguage const &lang, basic_string< char > const &vertex, basic_string< char > const &fragment, basic_string< char > const &geometry = (""), basic_string< char > const &tess_control = (""), basic_string< char > const &tess_evaluation = (""));
2612 12 load_compute 0 4 3009 20 Shader::load_compute 0 1 1211 251
////////////////////////////////////////////////////////////////////
// Function: Shader::load_compute
// Access: Published, Static
// Description: Loads a compute shader.
////////////////////////////////////////////////////////////////////
104
static PointerTo< Shader > Shader::load_compute(Shader::ShaderLanguage const &lang, Filename const &fn);
2613 12 make_compute 0 4 3009 20 Shader::make_compute 0 1 1212 279
//////////////////////////////////////////////////////////////////////
// Function: Shader::make_compute
// Access: Published, Static
// Description: Loads the compute shader from the given string.
//////////////////////////////////////////////////////////////////////
118
static PointerTo< Shader > Shader::make_compute(Shader::ShaderLanguage const &lang, basic_string< char > const &body);
2614 12 get_filename 0 4 3009 20 Shader::get_filename 0 2 1213 1214 815
// Filename: shader.I
// Heavily Modified: jyelon (Sep05)
// Updated by: fperazzi, PandaSE(06Apr10)
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Shader::get_filename
// Access: Public
// Description: Return the Shader's filename for the given shader
// type.
////////////////////////////////////////////////////////////////////
93
inline Filename const Shader::get_filename(Shader::ShaderType const &type = (ST_none)) const;
2615 8 get_text 0 4 3009 16 Shader::get_text 0 2 1215 1216 264
////////////////////////////////////////////////////////////////////
// Function: Shader::get_text
// Access: Public
// Description: Return the Shader's text for the given shader type.
////////////////////////////////////////////////////////////////////
102
inline basic_string< char > const &Shader::get_text(Shader::ShaderType const &type = (ST_none)) const;
2616 14 get_error_flag 0 4 3009 22 Shader::get_error_flag 0 1 1217 399
////////////////////////////////////////////////////////////////////
// Function: Shader::get_error_flag
// Access: Public
// Description: Returns true if the shader contains a compile-time
// error. This doesn't tell you whether or not the
// shader is supported on the current video card.
////////////////////////////////////////////////////////////////////
53
inline bool const Shader::get_error_flag(void) const;
2617 12 get_language 0 4 3009 20 Shader::get_language 0 1 1218 298
////////////////////////////////////////////////////////////////////
// Function: Shader::get_language
// Access: Published
// Description: Returns the shader language in which this shader
// was written.
////////////////////////////////////////////////////////////////////
69
inline Shader::ShaderLanguage const Shader::get_language(void) const;
2618 22 get_shader_utilization 0 4 3009 30 Shader::get_shader_utilization 0 1 1219 510
////////////////////////////////////////////////////////////////////
// Function: Shader::get_shader_utilization
// Access: Published, Static
// Description: This flag returns SUT_none, SUT_basic, or
// SUT_advanced and controls the automatic generation
// of shaders. It is initialized from the config
// variable of the same name, but it can be
// subsequently adjusted.
////////////////////////////////////////////////////////////////////
69
static inline ShaderUtilization Shader::get_shader_utilization(void);
2619 22 set_shader_utilization 0 4 3009 30 Shader::set_shader_utilization 0 1 1220 382
////////////////////////////////////////////////////////////////////
// Function: Shader::set_shader_utilization
// Access: Published, Static
// Description: Set this flag to SUT_none, SUT_basic, or
// SUT_advanced to limit panda's automatic shader
// generation facilities.
////////////////////////////////////////////////////////////////////
73
static inline void Shader::set_shader_utilization(ShaderUtilization utl);
2620 23 have_shader_utilization 0 4 3009 31 Shader::have_shader_utilization 0 1 1221 460
////////////////////////////////////////////////////////////////////
// Function: Shader::have_shader_utilization
// Access: Published, Static
// Description: If true, then get_shader_utilization has been
// set using set_shader_utilization.
// If false, then get_shader_utilization simply
// returns the config variable of the same name.
////////////////////////////////////////////////////////////////////
57
static inline bool Shader::have_shader_utilization(void);
2621 7 prepare 0 4 3009 15 Shader::prepare 0 1 1222 653
////////////////////////////////////////////////////////////////////
// Function: Shader::prepare
// Access: Published
// Description: Indicates that the shader should be enqueued to be
// prepared in the indicated prepared_objects at the
// beginning of the next frame. This will ensure the
// texture is already loaded into texture memory if it
// is expected to be rendered soon.
//
// Use this function instead of prepare_now() to preload
// textures from a user interface standpoint.
////////////////////////////////////////////////////////////////////
64
void Shader::prepare(PreparedGraphicsObjects *prepared_objects);
2622 11 is_prepared 0 4 3009 19 Shader::is_prepared 0 1 1223 372
////////////////////////////////////////////////////////////////////
// Function: Shader::is_prepared
// Access: Published
// Description: Returns true if the shader has already been prepared
// or enqueued for preparation on the indicated GSG,
// false otherwise.
////////////////////////////////////////////////////////////////////
74
bool Shader::is_prepared(PreparedGraphicsObjects *prepared_objects) const;
2623 7 release 0 4 3009 15 Shader::release 0 1 1224 393
////////////////////////////////////////////////////////////////////
// Function: Shader::release
// Access: Published
// Description: Frees the texture context only on the indicated object,
// if it exists there. Returns true if it was released,
// false if it had not been prepared.
////////////////////////////////////////////////////////////////////
64
bool Shader::release(PreparedGraphicsObjects *prepared_objects);
2624 11 release_all 0 4 3009 19 Shader::release_all 0 1 1225 391
////////////////////////////////////////////////////////////////////
// Function: Shader::release_all
// Access: Published
// Description: Frees the context allocated on all objects for which
// the texture has been declared. Returns the number of
// contexts which have been freed.
////////////////////////////////////////////////////////////////////
30
int Shader::release_all(void);
2625 11 prepare_now 0 4 3009 19 Shader::prepare_now 0 1 1226 885
////////////////////////////////////////////////////////////////////
// Function: Shader::prepare_now
// Access: Published
// Description: Creates a context for the shader on the particular
// GSG, if it does not already exist. Returns the new
// (or old) ShaderContext. This assumes that the
// GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// textures. If this is not necessarily the case, you
// should use prepare() instead.
//
// Normally, this is not called directly except by the
// GraphicsStateGuardian; a shader does not need to be
// explicitly prepared by the user before it may be
// rendered.
////////////////////////////////////////////////////////////////////
110
ShaderContext *Shader::prepare_now(PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg);
2626 14 get_class_type 0 4 3009 22 Shader::get_class_type 0 1 1227 0
47
static TypeHandle Shader::get_class_type(void);
2627 8 get_name 0 4 3014 33 PreparedGraphicsObjects::get_name 0 1 1228 913
// Filename: preparedGraphicsObjects.I
// Created by: drose (23Feb04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_name
// Access: Public
// Description: Returns the name of the PreparedGraphicsObjects
// structure. This is an arbitrary name that serves
// mainly to uniquify the context for PStats reporting.
////////////////////////////////////////////////////////////////////
81
inline basic_string< char > const &PreparedGraphicsObjects::get_name(void) const;
2628 25 set_graphics_memory_limit 0 4 3014 50 PreparedGraphicsObjects::set_graphics_memory_limit 0 1 1229 873
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::set_graphics_memory_limit
// Access: Public
// Description: Sets an artificial cap on graphics memory that
// will be imposed on this GSG.
//
// This limits the total amount of graphics memory,
// including texture memory and vertex buffer memory,
// that will be consumed by the GSG, regardless of
// whether the hardware claims to provide more graphics
// memory than this. It is useful to put a ceiling on
// graphics memory consumed, since some drivers seem to
// allow the application to consume more memory than the
// hardware can realistically support.
////////////////////////////////////////////////////////////////////
76
void PreparedGraphicsObjects::set_graphics_memory_limit(unsigned int limit);
2629 25 get_graphics_memory_limit 0 4 3014 50 PreparedGraphicsObjects::get_graphics_memory_limit 0 1 1230 394
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_graphics_memory_limit
// Access: Public
// Description: Returns the artificial cap on graphics memory that
// will be imposed on this GSG. See
// set_graphics_memory_limit().
////////////////////////////////////////////////////////////////////
83
inline unsigned int PreparedGraphicsObjects::get_graphics_memory_limit(void) const;
2630 24 show_graphics_memory_lru 0 4 3014 49 PreparedGraphicsObjects::show_graphics_memory_lru 0 1 1231 393
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::show_graphics_memory_lru
// Access: Public
// Description: Writes to the indicated ostream a report of how the
// various textures and vertex buffers are allocated in
// the LRU.
////////////////////////////////////////////////////////////////////
75
void PreparedGraphicsObjects::show_graphics_memory_lru(ostream &out) const;
2631 23 show_residency_trackers 0 4 3014 48 PreparedGraphicsObjects::show_residency_trackers 0 1 1232 392
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::show_residency_trackers
// Access: Public
// Description: Writes to the indicated ostream a report of how the
// various textures and vertex buffers are allocated in
// the LRU.
////////////////////////////////////////////////////////////////////
74
void PreparedGraphicsObjects::show_residency_trackers(ostream &out) const;
2632 11 release_all 0 4 3014 36 PreparedGraphicsObjects::release_all 0 1 1233 284
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_all
// Access: Public
// Description: Releases all prepared objects of all kinds at once.
////////////////////////////////////////////////////////////////////
55
inline void PreparedGraphicsObjects::release_all(void);
2633 14 get_num_queued 0 4 3014 39 PreparedGraphicsObjects::get_num_queued 0 1 1234 346
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_queued
// Access: Public
// Description: Returns the number of objects of any kind that have
// been enqueued to be prepared on this GSG.
////////////////////////////////////////////////////////////////////
63
inline int PreparedGraphicsObjects::get_num_queued(void) const;
2634 16 get_num_prepared 0 4 3014 41 PreparedGraphicsObjects::get_num_prepared 0 1 1235 341
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_prepared
// Access: Public
// Description: Returns the number of objects of any kind that have
// already been prepared on this GSG.
////////////////////////////////////////////////////////////////////
65
inline int PreparedGraphicsObjects::get_num_prepared(void) const;
2635 15 enqueue_texture 0 4 3014 40 PreparedGraphicsObjects::enqueue_texture 0 1 1236 413
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::enqueue_texture
// Access: Public
// Description: Indicates that a texture would like to be put on the
// list to be prepared when the GSG is next ready to
// do this (presumably at the next frame).
////////////////////////////////////////////////////////////////////
60
void PreparedGraphicsObjects::enqueue_texture(Texture *tex);
2636 17 is_texture_queued 0 4 3014 42 PreparedGraphicsObjects::is_texture_queued 0 1 1237 329
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_texture_queued
// Access: Public
// Description: Returns true if the texture has been queued on this
// GSG, false otherwise.
////////////////////////////////////////////////////////////////////
74
bool PreparedGraphicsObjects::is_texture_queued(Texture const *tex) const;
2637 15 dequeue_texture 0 4 3014 40 PreparedGraphicsObjects::dequeue_texture 0 1 1238 733
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::dequeue_texture
// Access: Public
// Description: Removes a texture from the queued list of textures to
// be prepared. Normally it is not necessary to call
// this, unless you change your mind about preparing it
// at the last minute, since the texture will
// automatically be dequeued and prepared at the next
// frame.
//
// The return value is true if the texture is
// successfully dequeued, false if it had not been
// queued.
////////////////////////////////////////////////////////////////////
60
bool PreparedGraphicsObjects::dequeue_texture(Texture *tex);
2638 19 is_texture_prepared 0 4 3014 44 PreparedGraphicsObjects::is_texture_prepared 0 1 1239 333
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_texture_prepared
// Access: Public
// Description: Returns true if the texture has been prepared on
// this GSG, false otherwise.
////////////////////////////////////////////////////////////////////
76
bool PreparedGraphicsObjects::is_texture_prepared(Texture const *tex) const;
2639 15 release_texture 0 4 3014 40 PreparedGraphicsObjects::release_texture 0 2 1240 1241 1171
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_texture
// Access: Public
// Description: Indicates that a texture context, created by a
// previous call to prepare_texture(), is no longer
// needed. The driver resources will not be freed until
// some GSG calls update(), indicating it is at a
// stage where it is ready to release textures--this
// prevents conflicts from threading or multiple GSG's
// sharing textures (we have no way of knowing which
// graphics context is currently active, or what state
// it's in, at the time release_texture is called).
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_texture
// Access: Public
// Description: Releases a texture if it has already been prepared,
// or removes it from the preparation queue.
////////////////////////////////////////////////////////////////////
127
void PreparedGraphicsObjects::release_texture(TextureContext *tc);
void PreparedGraphicsObjects::release_texture(Texture *tex);
2640 20 release_all_textures 0 4 3014 45 PreparedGraphicsObjects::release_all_textures 0 1 1242 460
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_all_textures
// Access: Public
// Description: Releases all textures at once. This will force them
// to be reloaded into texture memory for all GSG's that
// share this object. Returns the number of textures
// released.
////////////////////////////////////////////////////////////////////
56
int PreparedGraphicsObjects::release_all_textures(void);
2641 23 get_num_queued_textures 0 4 3014 48 PreparedGraphicsObjects::get_num_queued_textures 0 1 1243 344
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_queued_textures
// Access: Public
// Description: Returns the number of textures that have been
// enqueued to be prepared on this GSG.
////////////////////////////////////////////////////////////////////
65
int PreparedGraphicsObjects::get_num_queued_textures(void) const;
2642 25 get_num_prepared_textures 0 4 3014 50 PreparedGraphicsObjects::get_num_prepared_textures 0 1 1244 339
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_prepared_textures
// Access: Public
// Description: Returns the number of textures that have already been
// prepared on this GSG.
////////////////////////////////////////////////////////////////////
67
int PreparedGraphicsObjects::get_num_prepared_textures(void) const;
2643 19 prepare_texture_now 0 4 3014 44 PreparedGraphicsObjects::prepare_texture_now 0 1 1245 1165
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::prepare_texture_now
// Access: Public
// Description: Immediately creates a new TextureContext for the
// indicated texture and returns it. This assumes that
// the GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// textures. If this is not necessarily the case, you
// should use enqueue_texture() instead.
//
// Normally, this function is not called directly. Call
// Texture::prepare_now() instead.
//
// The TextureContext contains all of the pertinent
// information needed by the GSG to keep track of this
// one particular texture, and will exist as long as the
// texture is ready to be rendered.
//
// When either the Texture or the
// PreparedGraphicsObjects object destructs, the
// TextureContext will be deleted.
////////////////////////////////////////////////////////////////////
117
TextureContext *PreparedGraphicsObjects::prepare_texture_now(Texture *tex, int view, GraphicsStateGuardianBase *gsg);
2644 12 enqueue_geom 0 4 3014 37 PreparedGraphicsObjects::enqueue_geom 0 1 1246 407
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::enqueue_geom
// Access: Public
// Description: Indicates that a geom would like to be put on the
// list to be prepared when the GSG is next ready to
// do this (presumably at the next frame).
////////////////////////////////////////////////////////////////////
55
void PreparedGraphicsObjects::enqueue_geom(Geom *geom);
2645 14 is_geom_queued 0 4 3014 39 PreparedGraphicsObjects::is_geom_queued 0 1 1247 323
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_geom_queued
// Access: Public
// Description: Returns true if the geom has been queued on this
// GSG, false otherwise.
////////////////////////////////////////////////////////////////////
69
bool PreparedGraphicsObjects::is_geom_queued(Geom const *geom) const;
2646 12 dequeue_geom 0 4 3014 37 PreparedGraphicsObjects::dequeue_geom 0 1 1248 718
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::dequeue_geom
// Access: Public
// Description: Removes a geom from the queued list of geoms to
// be prepared. Normally it is not necessary to call
// this, unless you change your mind about preparing it
// at the last minute, since the geom will
// automatically be dequeued and prepared at the next
// frame.
//
// The return value is true if the geom is
// successfully dequeued, false if it had not been
// queued.
////////////////////////////////////////////////////////////////////
55
bool PreparedGraphicsObjects::dequeue_geom(Geom *geom);
2647 16 is_geom_prepared 0 4 3014 41 PreparedGraphicsObjects::is_geom_prepared 0 1 1249 336
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_geom_prepared
// Access: Public
// Description: Returns true if the vertex buffer has been prepared on
// this GSG, false otherwise.
////////////////////////////////////////////////////////////////////
71
bool PreparedGraphicsObjects::is_geom_prepared(Geom const *geom) const;
2648 12 release_geom 0 4 3014 37 PreparedGraphicsObjects::release_geom 0 1 1250 804
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_geom
// Access: Public
// Description: Indicates that a geom context, created by a
// previous call to prepare_geom(), is no longer
// needed. The driver resources will not be freed until
// some GSG calls update(), indicating it is at a
// stage where it is ready to release geoms--this
// prevents conflicts from threading or multiple GSG's
// sharing geoms (we have no way of knowing which
// graphics context is currently active, or what state
// it's in, at the time release_geom is called).
////////////////////////////////////////////////////////////////////
60
void PreparedGraphicsObjects::release_geom(GeomContext *gc);
2649 17 release_all_geoms 0 4 3014 42 PreparedGraphicsObjects::release_all_geoms 0 1 1251 448
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_all_geoms
// Access: Public
// Description: Releases all geoms at once. This will force them
// to be reloaded into geom memory for all GSG's that
// share this object. Returns the number of geoms
// released.
////////////////////////////////////////////////////////////////////
53
int PreparedGraphicsObjects::release_all_geoms(void);
2650 20 get_num_queued_geoms 0 4 3014 45 PreparedGraphicsObjects::get_num_queued_geoms 0 1 1252 338
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_queued_geoms
// Access: Public
// Description: Returns the number of geoms that have been
// enqueued to be prepared on this GSG.
////////////////////////////////////////////////////////////////////
62
int PreparedGraphicsObjects::get_num_queued_geoms(void) const;
2651 22 get_num_prepared_geoms 0 4 3014 47 PreparedGraphicsObjects::get_num_prepared_geoms 0 1 1253 333
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_prepared_geoms
// Access: Public
// Description: Returns the number of geoms that have already been
// prepared on this GSG.
////////////////////////////////////////////////////////////////////
64
int PreparedGraphicsObjects::get_num_prepared_geoms(void) const;
2652 16 prepare_geom_now 0 4 3014 41 PreparedGraphicsObjects::prepare_geom_now 0 1 1254 1132
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::prepare_geom_now
// Access: Public
// Description: Immediately creates a new GeomContext for the
// indicated geom and returns it. This assumes that
// the GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// geoms. If this is not necessarily the case, you
// should use enqueue_geom() instead.
//
// Normally, this function is not called directly. Call
// Geom::prepare_now() instead.
//
// The GeomContext contains all of the pertinent
// information needed by the GSG to keep track of this
// one particular geom, and will exist as long as the
// geom is ready to be rendered.
//
// When either the Geom or the
// PreparedGraphicsObjects object destructs, the
// GeomContext will be deleted.
////////////////////////////////////////////////////////////////////
99
GeomContext *PreparedGraphicsObjects::prepare_geom_now(Geom *geom, GraphicsStateGuardianBase *gsg);
2653 14 enqueue_shader 0 4 3014 39 PreparedGraphicsObjects::enqueue_shader 0 1 1255 411
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::enqueue_shader
// Access: Public
// Description: Indicates that a shader would like to be put on the
// list to be prepared when the GSG is next ready to
// do this (presumably at the next frame).
////////////////////////////////////////////////////////////////////
61
void PreparedGraphicsObjects::enqueue_shader(Shader *shader);
2654 16 is_shader_queued 0 4 3014 41 PreparedGraphicsObjects::is_shader_queued 0 1 1256 327
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_shader_queued
// Access: Public
// Description: Returns true if the shader has been queued on this
// GSG, false otherwise.
////////////////////////////////////////////////////////////////////
75
bool PreparedGraphicsObjects::is_shader_queued(Shader const *shader) const;
2655 14 dequeue_shader 0 4 3014 39 PreparedGraphicsObjects::dequeue_shader 0 1 1257 728
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::dequeue_shader
// Access: Public
// Description: Removes a shader from the queued list of shaders to
// be prepared. Normally it is not necessary to call
// this, unless you change your mind about preparing it
// at the last minute, since the shader will
// automatically be dequeued and prepared at the next
// frame.
//
// The return value is true if the shader is
// successfully dequeued, false if it had not been
// queued.
////////////////////////////////////////////////////////////////////
61
bool PreparedGraphicsObjects::dequeue_shader(Shader *shader);
2656 18 is_shader_prepared 0 4 3014 43 PreparedGraphicsObjects::is_shader_prepared 0 1 1258 331
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_shader_prepared
// Access: Public
// Description: Returns true if the shader has been prepared on
// this GSG, false otherwise.
////////////////////////////////////////////////////////////////////
77
bool PreparedGraphicsObjects::is_shader_prepared(Shader const *shader) const;
2657 14 release_shader 0 4 3014 39 PreparedGraphicsObjects::release_shader 0 1 1259 816
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_shader
// Access: Public
// Description: Indicates that a shader context, created by a
// previous call to prepare_shader(), is no longer
// needed. The driver resources will not be freed until
// some GSG calls update(), indicating it is at a
// stage where it is ready to release shaders--this
// prevents conflicts from threading or multiple GSG's
// sharing shaders (we have no way of knowing which
// graphics context is currently active, or what state
// it's in, at the time release_shader is called).
////////////////////////////////////////////////////////////////////
64
void PreparedGraphicsObjects::release_shader(ShaderContext *sc);
2658 19 release_all_shaders 0 4 3014 44 PreparedGraphicsObjects::release_all_shaders 0 1 1260 456
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_all_shaders
// Access: Public
// Description: Releases all shaders at once. This will force them
// to be reloaded into shader memory for all GSG's that
// share this object. Returns the number of shaders
// released.
////////////////////////////////////////////////////////////////////
55
int PreparedGraphicsObjects::release_all_shaders(void);
2659 22 get_num_queued_shaders 0 4 3014 47 PreparedGraphicsObjects::get_num_queued_shaders 0 1 1261 342
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_queued_shaders
// Access: Public
// Description: Returns the number of shaders that have been
// enqueued to be prepared on this GSG.
////////////////////////////////////////////////////////////////////
64
int PreparedGraphicsObjects::get_num_queued_shaders(void) const;
2660 24 get_num_prepared_shaders 0 4 3014 49 PreparedGraphicsObjects::get_num_prepared_shaders 0 1 1262 337
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_prepared_shaders
// Access: Public
// Description: Returns the number of shaders that have already been
// prepared on this GSG.
////////////////////////////////////////////////////////////////////
66
int PreparedGraphicsObjects::get_num_prepared_shaders(void) const;
2661 18 prepare_shader_now 0 4 3014 43 PreparedGraphicsObjects::prepare_shader_now 0 1 1263 1154
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::prepare_shader_now
// Access: Public
// Description: Immediately creates a new ShaderContext for the
// indicated shader and returns it. This assumes that
// the GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// shaders. If this is not necessarily the case, you
// should use enqueue_shader() instead.
//
// Normally, this function is not called directly. Call
// Shader::prepare_now() instead.
//
// The ShaderContext contains all of the pertinent
// information needed by the GSG to keep track of this
// one particular shader, and will exist as long as the
// shader is ready to be rendered.
//
// When either the Shader or the
// PreparedGraphicsObjects object destructs, the
// ShaderContext will be deleted.
////////////////////////////////////////////////////////////////////
107
ShaderContext *PreparedGraphicsObjects::prepare_shader_now(Shader *shader, GraphicsStateGuardianBase *gsg);
2662 21 enqueue_vertex_buffer 0 4 3014 46 PreparedGraphicsObjects::enqueue_vertex_buffer 0 1 1264 418
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::enqueue_vertex_buffer
// Access: Public
// Description: Indicates that a buffer would like to be put on the
// list to be prepared when the GSG is next ready to
// do this (presumably at the next frame).
////////////////////////////////////////////////////////////////////
79
void PreparedGraphicsObjects::enqueue_vertex_buffer(GeomVertexArrayData *data);
2663 23 is_vertex_buffer_queued 0 4 3014 48 PreparedGraphicsObjects::is_vertex_buffer_queued 0 1 1265 341
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_vertex_buffer_queued
// Access: Public
// Description: Returns true if the vertex buffer has been queued on
// this GSG, false otherwise.
////////////////////////////////////////////////////////////////////
93
bool PreparedGraphicsObjects::is_vertex_buffer_queued(GeomVertexArrayData const *data) const;
2664 21 dequeue_vertex_buffer 0 4 3014 46 PreparedGraphicsObjects::dequeue_vertex_buffer 0 1 1266 737
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::dequeue_vertex_buffer
// Access: Public
// Description: Removes a buffer from the queued list of data
// arrays to be prepared. Normally it is not necessary
// to call this, unless you change your mind about
// preparing it at the last minute, since the data will
// automatically be dequeued and prepared at the next
// frame.
//
// The return value is true if the buffer is
// successfully dequeued, false if it had not been
// queued.
////////////////////////////////////////////////////////////////////
79
bool PreparedGraphicsObjects::dequeue_vertex_buffer(GeomVertexArrayData *data);
2665 25 is_vertex_buffer_prepared 0 4 3014 50 PreparedGraphicsObjects::is_vertex_buffer_prepared 0 1 1267 345
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_vertex_buffer_prepared
// Access: Public
// Description: Returns true if the vertex buffer has been prepared on
// this GSG, false otherwise.
////////////////////////////////////////////////////////////////////
95
bool PreparedGraphicsObjects::is_vertex_buffer_prepared(GeomVertexArrayData const *data) const;
2666 21 release_vertex_buffer 0 4 3014 46 PreparedGraphicsObjects::release_vertex_buffer 0 1 1268 831
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_vertex_buffer
// Access: Public
// Description: Indicates that a data context, created by a
// previous call to prepare_vertex_buffer(), is no longer
// needed. The driver resources will not be freed until
// some GSG calls update(), indicating it is at a
// stage where it is ready to release datas--this
// prevents conflicts from threading or multiple GSG's
// sharing datas (we have no way of knowing which
// graphics context is currently active, or what state
// it's in, at the time release_vertex_buffer is called).
////////////////////////////////////////////////////////////////////
78
void PreparedGraphicsObjects::release_vertex_buffer(VertexBufferContext *vbc);
2667 26 release_all_vertex_buffers 0 4 3014 51 PreparedGraphicsObjects::release_all_vertex_buffers 0 1 1269 457
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_all_vertex_buffers
// Access: Public
// Description: Releases all datas at once. This will force them
// to be reloaded into data memory for all GSG's that
// share this object. Returns the number of datas
// released.
////////////////////////////////////////////////////////////////////
62
int PreparedGraphicsObjects::release_all_vertex_buffers(void);
2668 29 get_num_queued_vertex_buffers 0 4 3014 54 PreparedGraphicsObjects::get_num_queued_vertex_buffers 0 1 1270 356
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_queued_vertex_buffers
// Access: Public
// Description: Returns the number of vertex buffers that have been
// enqueued to be prepared on this GSG.
////////////////////////////////////////////////////////////////////
71
int PreparedGraphicsObjects::get_num_queued_vertex_buffers(void) const;
2669 31 get_num_prepared_vertex_buffers 0 4 3014 56 PreparedGraphicsObjects::get_num_prepared_vertex_buffers 0 1 1271 351
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_prepared_vertex_buffers
// Access: Public
// Description: Returns the number of vertex buffers that have
// already been prepared on this GSG.
////////////////////////////////////////////////////////////////////
73
int PreparedGraphicsObjects::get_num_prepared_vertex_buffers(void) const;
2670 25 prepare_vertex_buffer_now 0 4 3014 50 PreparedGraphicsObjects::prepare_vertex_buffer_now 0 1 1272 1174
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::prepare_vertex_buffer_now
// Access: Public
// Description: Immediately creates a new VertexBufferContext for the
// indicated data and returns it. This assumes that
// the GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// datas. If this is not necessarily the case, you
// should use enqueue_vertex_buffer() instead.
//
// Normally, this function is not called directly. Call
// Data::prepare_now() instead.
//
// The VertexBufferContext contains all of the pertinent
// information needed by the GSG to keep track of this
// one particular data, and will exist as long as the
// data is ready to be rendered.
//
// When either the Data or the
// PreparedGraphicsObjects object destructs, the
// VertexBufferContext will be deleted.
////////////////////////////////////////////////////////////////////
131
VertexBufferContext *PreparedGraphicsObjects::prepare_vertex_buffer_now(GeomVertexArrayData *data, GraphicsStateGuardianBase *gsg);
2671 20 enqueue_index_buffer 0 4 3014 45 PreparedGraphicsObjects::enqueue_index_buffer 0 1 1273 417
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::enqueue_index_buffer
// Access: Public
// Description: Indicates that a buffer would like to be put on the
// list to be prepared when the GSG is next ready to
// do this (presumably at the next frame).
////////////////////////////////////////////////////////////////////
72
void PreparedGraphicsObjects::enqueue_index_buffer(GeomPrimitive *data);
2672 22 is_index_buffer_queued 0 4 3014 47 PreparedGraphicsObjects::is_index_buffer_queued 0 1 1274 339
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_index_buffer_queued
// Access: Public
// Description: Returns true if the index buffer has been queued on
// this GSG, false otherwise.
////////////////////////////////////////////////////////////////////
86
bool PreparedGraphicsObjects::is_index_buffer_queued(GeomPrimitive const *data) const;
2673 20 dequeue_index_buffer 0 4 3014 45 PreparedGraphicsObjects::dequeue_index_buffer 0 1 1275 736
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::dequeue_index_buffer
// Access: Public
// Description: Removes a buffer from the queued list of data
// arrays to be prepared. Normally it is not necessary
// to call this, unless you change your mind about
// preparing it at the last minute, since the data will
// automatically be dequeued and prepared at the next
// frame.
//
// The return value is true if the buffer is
// successfully dequeued, false if it had not been
// queued.
////////////////////////////////////////////////////////////////////
72
bool PreparedGraphicsObjects::dequeue_index_buffer(GeomPrimitive *data);
2674 24 is_index_buffer_prepared 0 4 3014 49 PreparedGraphicsObjects::is_index_buffer_prepared 0 1 1276 343
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_index_buffer_prepared
// Access: Public
// Description: Returns true if the index buffer has been prepared on
// this GSG, false otherwise.
////////////////////////////////////////////////////////////////////
88
bool PreparedGraphicsObjects::is_index_buffer_prepared(GeomPrimitive const *data) const;
2675 20 release_index_buffer 0 4 3014 45 PreparedGraphicsObjects::release_index_buffer 0 1 1277 828
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_index_buffer
// Access: Public
// Description: Indicates that a data context, created by a
// previous call to prepare_index_buffer(), is no longer
// needed. The driver resources will not be freed until
// some GSG calls update(), indicating it is at a
// stage where it is ready to release datas--this
// prevents conflicts from threading or multiple GSG's
// sharing datas (we have no way of knowing which
// graphics context is currently active, or what state
// it's in, at the time release_index_buffer is called).
////////////////////////////////////////////////////////////////////
76
void PreparedGraphicsObjects::release_index_buffer(IndexBufferContext *ibc);
2676 25 release_all_index_buffers 0 4 3014 50 PreparedGraphicsObjects::release_all_index_buffers 0 1 1278 456
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_all_index_buffers
// Access: Public
// Description: Releases all datas at once. This will force them
// to be reloaded into data memory for all GSG's that
// share this object. Returns the number of datas
// released.
////////////////////////////////////////////////////////////////////
61
int PreparedGraphicsObjects::release_all_index_buffers(void);
2677 28 get_num_queued_index_buffers 0 4 3014 53 PreparedGraphicsObjects::get_num_queued_index_buffers 0 1 1279 354
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_queued_index_buffers
// Access: Public
// Description: Returns the number of index buffers that have been
// enqueued to be prepared on this GSG.
////////////////////////////////////////////////////////////////////
70
int PreparedGraphicsObjects::get_num_queued_index_buffers(void) const;
2678 30 get_num_prepared_index_buffers 0 4 3014 55 PreparedGraphicsObjects::get_num_prepared_index_buffers 0 1 1280 349
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_prepared_index_buffers
// Access: Public
// Description: Returns the number of index buffers that have
// already been prepared on this GSG.
////////////////////////////////////////////////////////////////////
72
int PreparedGraphicsObjects::get_num_prepared_index_buffers(void) const;
2679 24 prepare_index_buffer_now 0 4 3014 49 PreparedGraphicsObjects::prepare_index_buffer_now 0 1 1281 1169
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::prepare_index_buffer_now
// Access: Public
// Description: Immediately creates a new IndexBufferContext for the
// indicated data and returns it. This assumes that
// the GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// datas. If this is not necessarily the case, you
// should use enqueue_index_buffer() instead.
//
// Normally, this function is not called directly. Call
// Data::prepare_now() instead.
//
// The IndexBufferContext contains all of the pertinent
// information needed by the GSG to keep track of this
// one particular data, and will exist as long as the
// data is ready to be rendered.
//
// When either the Data or the
// PreparedGraphicsObjects object destructs, the
// IndexBufferContext will be deleted.
////////////////////////////////////////////////////////////////////
123
IndexBufferContext *PreparedGraphicsObjects::prepare_index_buffer_now(GeomPrimitive *data, GraphicsStateGuardianBase *gsg);
2680 23 upcast_to_BufferContext 0 12 3015 43 IndexBufferContext::upcast_to_BufferContext 0 1 1287 47
upcast from IndexBufferContext to BufferContext
65
BufferContext *IndexBufferContext::upcast_to_BufferContext(void);
2681 30 downcast_to_IndexBufferContext 0 12 2982 45 BufferContext::downcast_to_IndexBufferContext 0 1 1288 49
downcast from BufferContext to IndexBufferContext
72
IndexBufferContext *BufferContext::downcast_to_IndexBufferContext(void);
2682 25 upcast_to_AdaptiveLruPage 0 12 3015 45 IndexBufferContext::upcast_to_AdaptiveLruPage 0 1 1289 49
upcast from IndexBufferContext to AdaptiveLruPage
69
AdaptiveLruPage *IndexBufferContext::upcast_to_AdaptiveLruPage(void);
2683 30 downcast_to_IndexBufferContext 0 12 2938 47 AdaptiveLruPage::downcast_to_IndexBufferContext 0 1 1290 51
downcast from AdaptiveLruPage to IndexBufferContext
74
IndexBufferContext *AdaptiveLruPage::downcast_to_IndexBufferContext(void);
2684 8 get_data 0 4 3015 28 IndexBufferContext::get_data 0 1 1282 299
////////////////////////////////////////////////////////////////////
// Function: IndexBufferContext::get_data
// Access: Public
// Description: Returns the pointer to the client-side array data
// object.
////////////////////////////////////////////////////////////////////
63
inline GeomPrimitive *IndexBufferContext::get_data(void) const;
2685 12 changed_size 0 4 3015 32 IndexBufferContext::changed_size 0 1 1283 333
////////////////////////////////////////////////////////////////////
// Function: IndexBufferContext::changed_size
// Access: Public
// Description: Returns true if the data has changed size since the
// last time mark_loaded() was called.
////////////////////////////////////////////////////////////////////
94
inline bool IndexBufferContext::changed_size(GeomPrimitivePipelineReader const *reader) const;
2686 18 changed_usage_hint 0 4 3015 38 IndexBufferContext::changed_usage_hint 0 1 1284 349
////////////////////////////////////////////////////////////////////
// Function: IndexBufferContext::changed_usage_hint
// Access: Public
// Description: Returns true if the data has changed its usage hint
// since the last time mark_loaded() was called.
////////////////////////////////////////////////////////////////////
100
inline bool IndexBufferContext::changed_usage_hint(GeomPrimitivePipelineReader const *reader) const;
2687 12 was_modified 0 4 3015 32 IndexBufferContext::was_modified 0 1 1285 334
////////////////////////////////////////////////////////////////////
// Function: IndexBufferContext::was_modified
// Access: Public
// Description: Returns true if the data has been modified since the
// last time mark_loaded() was called.
////////////////////////////////////////////////////////////////////
94
inline bool IndexBufferContext::was_modified(GeomPrimitivePipelineReader const *reader) const;
2688 14 get_class_type 0 4 3015 34 IndexBufferContext::get_class_type 0 1 1286 0
59
static TypeHandle IndexBufferContext::get_class_type(void);
2689 19 ~IndexBufferContext 0 4 3015 39 IndexBufferContext::~IndexBufferContext 0 0 0
46
IndexBufferContext::~IndexBufferContext(void);
2690 9 make_copy 0 6 3016 15 Lens::make_copy 0 1 1291 0
58
virtual PointerTo< Lens > Lens::make_copy(void) const = 0;
2691 7 extrude 0 4 3016 13 Lens::extrude 0 2 1292 1293 2120
// Filename: lens.I
// Created by: drose (29Nov01)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Lens::extrude
// Access: Published
// Description: Given a 2-d point in the range (-1,1) in both
// dimensions, where (0,0) is the center of the
// lens and (-1,-1) is the lower-left corner,
// compute the corresponding vector in space that maps
// to this point, if such a vector can be determined.
// The vector is returned by indicating the points on
// the near plane and far plane that both map to the
// indicated 2-d point.
//
// Returns true if the vector is defined, or false
// otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Lens::extrude
// Access: Published
// Description: Given a 2-d point in the range (-1,1) in both
// dimensions, where (0,0) is the center of the
// lens and (-1,-1) is the lower-left corner,
// compute the corresponding vector in space that maps
// to this point, if such a vector can be determined.
// The vector is returned by indicating the points on
// the near plane and far plane that both map to the
// indicated 2-d point.
//
// The z coordinate of the 2-d point is ignored.
//
// Returns true if the vector is defined, or false
// otherwise.
////////////////////////////////////////////////////////////////////
201
inline bool Lens::extrude(LPoint2f const &point2d, LPoint3f &near_point, LPoint3f &far_point) const;
inline bool Lens::extrude(LPoint3f const &point2d, LPoint3f &near_point, LPoint3f &far_point) const;
2692 13 extrude_depth 0 4 3016 19 Lens::extrude_depth 0 1 1294 528
////////////////////////////////////////////////////////////////////
// Function: Lens::extrude_depth
// Access: Published
// Description: Uses the depth component of the 3-d result from
// project() to compute the original point in 3-d space
// corresponding to a particular point on the lens.
// This exactly reverses project(), assuming the point
// does fall legitimately within the lens.
////////////////////////////////////////////////////////////////////
82
inline bool Lens::extrude_depth(LPoint3f const &point2d, LPoint3f &point3d) const;
2693 11 extrude_vec 0 4 3016 17 Lens::extrude_vec 0 2 1295 1296 1838
////////////////////////////////////////////////////////////////////
// Function: Lens::extrude_vec
// Access: Published
// Description: Given a 2-d point in the range (-1,1) in both
// dimensions, where (0,0) is the center of the
// lens and (-1,-1) is the lower-left corner,
// compute the vector that corresponds to the view
// direction. This will be parallel to the normal on
// the surface (the far plane) corresponding to the lens
// shape at this point.
//
// See the comment block on Lens::extrude_vec_impl() for
// a more in-depth comment on the meaning of this
// vector.
//
// Returns true if the vector is defined, or false
// otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Lens::extrude_vec
// Access: Published
// Description: Given a 2-d point in the range (-1,1) in both
// dimensions, where (0,0) is the center of the
// lens and (-1,-1) is the lower-left corner,
// compute the vector that corresponds to the view
// direction. This will be parallel to the normal on
// the surface (the far plane) corresponding to the lens
// shape at this point.
//
// See the comment block on Lens::extrude_vec_impl() for
// a more in-depth comment on the meaning of this
// vector.
//
// The z coordinate of the 2-d point is ignored.
//
// Returns true if the vector is defined, or false
// otherwise.
////////////////////////////////////////////////////////////////////
159
inline bool Lens::extrude_vec(LPoint2f const &point2d, LVector3f &vec3d) const;
inline bool Lens::extrude_vec(LPoint3f const &point2d, LVector3f &vec3d) const;
2694 7 project 0 4 3016 13 Lens::project 0 2 1297 1298 1751
////////////////////////////////////////////////////////////////////
// Function: Lens::project
// Access: Published
// Description: Given a 3-d point in space, determine the 2-d point
// this maps to, in the range (-1,1) in both dimensions,
// where (0,0) is the center of the lens and
// (-1,-1) is the lower-left corner.
//
// Returns true if the 3-d point is in front of the lens
// and within the viewing frustum (in which case point2d
// is filled in), or false otherwise (in which case
// point2d will be filled in with something, which may
// or may not be meaningful).
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Lens::project
// Access: Published
// Description: Given a 3-d point in space, determine the 2-d point
// this maps to, in the range (-1,1) in both dimensions,
// where (0,0) is the center of the lens and
// (-1,-1) is the lower-left corner.
//
// The z coordinate will also be set to a value in the
// range (-1, 1), where 1 represents a point on the near
// plane, and -1 represents a point on the far plane.
//
// Returns true if the 3-d point is in front of the lens
// and within the viewing frustum (in which case point2d
// is filled in), or false otherwise (in which case
// point2d will be filled in with something, which may
// or may not be meaningful).
////////////////////////////////////////////////////////////////////
153
inline bool Lens::project(LPoint3f const &point3d, LPoint3f &point2d) const;
inline bool Lens::project(LPoint3f const &point3d, LPoint2f &point2d) const;
2695 16 set_change_event 0 4 3016 22 Lens::set_change_event 0 1 1299 643
////////////////////////////////////////////////////////////////////
// Function: Lens::set_change_event
// Access: Published
// Description: Sets the name of the event that will be generated
// whenever any properties of the Lens have
// changed. If this is not set for a particular lens,
// no event will be generated.
//
// The event is thrown with one parameter, the lens
// itself. This can be used to automatically track
// changes to camera fov, etc. in the application.
////////////////////////////////////////////////////////////////////
70
inline void Lens::set_change_event(basic_string< char > const &event);
2696 16 get_change_event 0 4 3016 22 Lens::get_change_event 0 1 1300 370
////////////////////////////////////////////////////////////////////
// Function: Lens::get_change_event
// Access: Published
// Description: Returns the name of the event that will be generated
// whenever any properties of this particular Lens have
// changed.
////////////////////////////////////////////////////////////////////
70
inline basic_string< char > const &Lens::get_change_event(void) const;
2697 21 set_coordinate_system 0 4 3016 27 Lens::set_coordinate_system 0 1 1301 385
////////////////////////////////////////////////////////////////////
// Function: Lens::set_coordinate_system
// Access: Published
// Description: Specifies the coordinate system that all 3-d
// computations are performed within for this
// Lens. Normally, this is CS_default.
////////////////////////////////////////////////////////////////////
54
void Lens::set_coordinate_system(CoordinateSystem cs);
2698 21 get_coordinate_system 0 4 3016 27 Lens::get_coordinate_system 0 1 1302 383
////////////////////////////////////////////////////////////////////
// Function: Lens::get_coordinate_system
// Access: Published
// Description: Returns the coordinate system that all 3-d
// computations are performed within for this
// Lens. Normally, this is CS_default.
////////////////////////////////////////////////////////////////////
64
inline CoordinateSystem Lens::get_coordinate_system(void) const;
2699 5 clear 0 4 3016 11 Lens::clear 0 1 1303 289
////////////////////////////////////////////////////////////////////
// Function: Lens::clear
// Access: Published
// Description: Resets all lens parameters to their initial default
// settings.
////////////////////////////////////////////////////////////////////
23
void Lens::clear(void);
2700 13 set_film_size 0 4 3016 19 Lens::set_film_size 0 3 1304 1305 1306 2825
////////////////////////////////////////////////////////////////////
// Function: Lens::set_film_size
// Access: Published
// Description: Sets the horizontal size of the film without changing
// its shape. The aspect ratio remains unchanged; this
// computes the vertical size of the film to
// automatically maintain the aspect ratio.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Lens::set_film_size
// Access: Published
// Description: Sets the size and shape of the "film" within the
// lens. This both establishes the units used by
// calls like set_focal_length(), and establishes the
// aspect ratio of the frame.
//
// In a physical camera, the field of view of a lens is
// determined by the lens' focal length and by the size
// of the film area exposed by the lens. For instance,
// a 35mm camera exposes a rectangle on the film about
// 24mm x 36mm, which means a 50mm lens gives about a
// 40-degree horizontal field of view.
//
// In the virtual camera, you may set the film size to
// any units here, and specify a focal length in the
// same units to simulate the same effect. Or, you may
// ignore this parameter, and specify the field of view
// and aspect ratio of the lens directly.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Lens::set_film_size
// Access: Published
// Description: Sets the size and shape of the "film" within the
// lens. This both establishes the units used by
// calls like set_focal_length(), and establishes the
// aspect ratio of the frame.
//
// In a physical camera, the field of view of a lens is
// determined by the lens' focal length and by the size
// of the film area exposed by the lens. For instance,
// a 35mm camera exposes a rectangle on the film about
// 24mm x 36mm, which means a 50mm lens gives about a
// 40-degree horizontal field of view.
//
// In the virtual camera, you may set the film size to
// any units here, and specify a focal length in the
// same units to simulate the same effect. Or, you may
// ignore this parameter, and specify the field of view
// and aspect ratio of the lens directly.
////////////////////////////////////////////////////////////////////
167
inline void Lens::set_film_size(float width);
inline void Lens::set_film_size(float width, float height);
inline void Lens::set_film_size(LVecBase2f const &film_size);
2701 13 get_film_size 0 4 3016 19 Lens::get_film_size 0 1 1307 324
////////////////////////////////////////////////////////////////////
// Function: Lens::get_film_size
// Access: Published
// Description: Returns the horizontal and vertical film size of
// the virtual film. See set_film_size().
////////////////////////////////////////////////////////////////////
57
inline LVecBase2f const &Lens::get_film_size(void) const;
2702 15 set_film_offset 0 4 3016 21 Lens::set_film_offset 0 2 1308 1309 898
////////////////////////////////////////////////////////////////////
// Function: Lens::set_film_offset
// Access: Published
// Description: Sets the horizontal and vertical offset amounts of
// this Lens. These are both in the same units
// specified in set_film_size().
//
// This can be used to establish an off-axis lens.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Lens::set_film_offset
// Access: Published
// Description: Sets the horizontal and vertical offset amounts of
// this Lens. These are both in the same units
// specified in set_film_size().
//
// This can be used to establish an off-axis lens.
////////////////////////////////////////////////////////////////////
118
inline void Lens::set_film_offset(float x, float y);
inline void Lens::set_film_offset(LVecBase2f const &film_offset);
2703 15 get_film_offset 0 4 3016 21 Lens::get_film_offset 0 1 1310 326
////////////////////////////////////////////////////////////////////
// Function: Lens::get_film_offset
// Access: Published
// Description: Returns the horizontal and vertical offset amounts of
// this Lens. See set_film_offset().
////////////////////////////////////////////////////////////////////
58
inline LVector2f const &Lens::get_film_offset(void) const;
2704 16 set_focal_length 0 4 3016 22 Lens::set_focal_length 0 1 1311 515
////////////////////////////////////////////////////////////////////
// Function: Lens::set_focal_length
// Access: Published
// Description: Sets the focal length of the lens. This may adjust
// the field-of-view correspondingly, and is an
// alternate way to specify field of view.
//
// For certain kinds of lenses (e.g. OrthographicLens),
// the focal length has no meaning.
////////////////////////////////////////////////////////////////////
55
inline void Lens::set_focal_length(float focal_length);
2705 16 get_focal_length 0 4 3016 22 Lens::get_focal_length 0 1 1312 527
////////////////////////////////////////////////////////////////////
// Function: Lens::get_focal_length
// Access: Published
// Description: Returns the focal length of the lens. This may have
// been set explicitly by a previous call to
// set_focal_length(), or it may be computed based on
// the lens' fov and film_size. For certain kinds of
// lenses, the focal length has no meaning.
////////////////////////////////////////////////////////////////////
48
inline float Lens::get_focal_length(void) const;
2706 11 set_min_fov 0 4 3016 17 Lens::set_min_fov 0 1 1313 836
////////////////////////////////////////////////////////////////////
// Function: Lens::set_min_fov
// Access: Published
// Description: Sets the field of view of the smallest dimension of
// the window. If the window is wider than it is tall,
// this specifies the vertical field of view; if it is
// taller than it is wide, this specifies the horizontal
// field of view.
//
// In many cases, this is preferable to setting either
// the horizontal or vertical field of view explicitly.
// Setting this parameter means that pulling the window
// wider will widen the field of view, which is usually
// what you expect to happen.
////////////////////////////////////////////////////////////////////
38
void Lens::set_min_fov(float min_fov);
2707 7 set_fov 0 4 3016 13 Lens::set_fov 0 3 1314 1315 1316 1651
////////////////////////////////////////////////////////////////////
// Function: Lens::set_fov
// Access: Published
// Description: Sets the horizontal field of view of the lens without
// changing the aspect ratio. The vertical field of
// view is adjusted to maintain the same aspect ratio.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Lens::set_fov
// Access: Published
// Description: Sets the field of view of the lens in both
// dimensions. This establishes both the field of view
// and the aspect ratio of the lens. This is one way to
// specify the field of view of a lens;
// set_focal_length() is another way.
//
// For certain kinds of lenses (like OrthoLens),
// the field of view has no meaning.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Lens::set_fov
// Access: Published
// Description: Sets the field of view of the lens in both
// dimensions. This establishes both the field of view
// and the aspect ratio of the lens. This is one way to
// specify the field of view of a lens;
// set_focal_length() is another way.
//
// For certain kinds of lenses (like OrthographicLens),
// the field of view has no meaning.
////////////////////////////////////////////////////////////////////
138
inline void Lens::set_fov(float fov);
inline void Lens::set_fov(float hfov, float vfov);
inline void Lens::set_fov(LVecBase2f const &fov);
2708 7 get_fov 0 4 3016 13 Lens::get_fov 0 1 1317 312
////////////////////////////////////////////////////////////////////
// Function: Lens::get_fov
// Access: Published
// Description: Returns the horizontal and vertical film size of
// the virtual film. See set_fov().
////////////////////////////////////////////////////////////////////
51
inline LVecBase2f const &Lens::get_fov(void) const;
2709 8 get_hfov 0 4 3016 14 Lens::get_hfov 0 1 1318 292
////////////////////////////////////////////////////////////////////
// Function: Lens::get_hfov
// Access: Published
// Description: Returns the horizontal component of fov only. See
// get_fov().
////////////////////////////////////////////////////////////////////
40
inline float Lens::get_hfov(void) const;
2710 8 get_vfov 0 4 3016 14 Lens::get_vfov 0 1 1319 290
////////////////////////////////////////////////////////////////////
// Function: Lens::get_vfov
// Access: Published
// Description: Returns the vertical component of fov only. See
// get_fov().
////////////////////////////////////////////////////////////////////
40
inline float Lens::get_vfov(void) const;
2711 11 get_min_fov 0 4 3016 17 Lens::get_min_fov 0 1 1320 321
////////////////////////////////////////////////////////////////////
// Function: Lens::get_min_fov
// Access: Published
// Description: Returns the field of view of the narrowest dimension
// of the window. See set_min_fov().
////////////////////////////////////////////////////////////////////
36
float Lens::get_min_fov(void) const;
2712 16 set_aspect_ratio 0 4 3016 22 Lens::set_aspect_ratio 0 1 1321 444
////////////////////////////////////////////////////////////////////
// Function: Lens::set_aspect_ratio
// Access: Published
// Description: Sets the aspect ratio of the lens. This is the ratio
// of the height to the width of the generated image.
// Setting this overrides the two-parameter fov or film
// size setting.
////////////////////////////////////////////////////////////////////
55
inline void Lens::set_aspect_ratio(float aspect_ratio);
2713 16 get_aspect_ratio 0 4 3016 22 Lens::get_aspect_ratio 0 1 1322 368
////////////////////////////////////////////////////////////////////
// Function: Lens::get_aspect_ratio
// Access: Published
// Description: Returns the aspect ratio of the Lens. This is
// determined based on the indicated film size; see
// set_film_size().
////////////////////////////////////////////////////////////////////
48
inline float Lens::get_aspect_ratio(void) const;
2714 8 set_near 0 4 3016 14 Lens::set_near 0 1 1323 377
////////////////////////////////////////////////////////////////////
// Function: Lens::set_near
// Access: Published
// Description: Defines the position of the near plane (or cylinder,
// sphere, whatever). Points closer to the lens than
// this may not be rendered.
////////////////////////////////////////////////////////////////////
48
inline void Lens::set_near(float near_distance);
2715 8 get_near 0 4 3016 14 Lens::get_near 0 1 1324 302
////////////////////////////////////////////////////////////////////
// Function: Lens::get_near
// Access: Published
// Description: Returns the position of the near plane (or cylinder,
// sphere, whatever).
////////////////////////////////////////////////////////////////////
40
inline float Lens::get_near(void) const;
2716 7 set_far 0 4 3016 13 Lens::set_far 0 1 1325 378
////////////////////////////////////////////////////////////////////
// Function: Lens::set_far
// Access: Published
// Description: Defines the position of the far plane (or cylinder,
// sphere, whatever). Points farther from the lens than
// this may not be rendered.
////////////////////////////////////////////////////////////////////
46
inline void Lens::set_far(float far_distance);
2717 7 get_far 0 4 3016 13 Lens::get_far 0 1 1326 300
////////////////////////////////////////////////////////////////////
// Function: Lens::get_far
// Access: Published
// Description: Returns the position of the far plane (or cylinder,
// sphere, whatever).
////////////////////////////////////////////////////////////////////
39
inline float Lens::get_far(void) const;
2718 12 set_near_far 0 4 3016 18 Lens::set_near_far 0 1 1327 265
////////////////////////////////////////////////////////////////////
// Function: Lens::set_near_far
// Access: Published
// Description: Simultaneously changes the near and far planes.
////////////////////////////////////////////////////////////////////
72
inline void Lens::set_near_far(float near_distance, float far_distance);
2719 16 get_default_near 0 4 3016 22 Lens::get_default_near 0 1 1328 391
////////////////////////////////////////////////////////////////////
// Function: Lens::get_default_near
// Access: Published, Static
// Description: Returns the default near plane distance that will be
// assigned to each newly-created lens. This is read
// from the Configrc file.
////////////////////////////////////////////////////////////////////
42
static float Lens::get_default_near(void);
2720 15 get_default_far 0 4 3016 21 Lens::get_default_far 0 1 1329 389
////////////////////////////////////////////////////////////////////
// Function: Lens::get_default_far
// Access: Published, Static
// Description: Returns the default far plane distance that will be
// assigned to each newly-created lens. This is read
// from the Configrc file.
////////////////////////////////////////////////////////////////////
41
static float Lens::get_default_far(void);
2721 12 set_view_hpr 0 4 3016 18 Lens::set_view_hpr 0 2 1330 1331 1188
////////////////////////////////////////////////////////////////////
// Function: Lens::set_view_hpr
// Access: Published
// Description: Sets the direction in which the lens is facing.
// Normally, this is down the forward axis (usually the
// Y axis), but it may be rotated. This is only one way
// of specifying the rotation; you may also specify an
// explicit vector in which to look, or you may give a
// complete transformation matrix.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Lens::set_view_hpr
// Access: Published
// Description: Sets the direction in which the lens is facing.
// Normally, this is down the forward axis (usually the
// Y axis), but it may be rotated. This is only one way
// of specifying the rotation; you may also specify an
// explicit vector in which to look, or you may give a
// complete transformation matrix.
////////////////////////////////////////////////////////////////////
111
inline void Lens::set_view_hpr(float h, float p, float r);
void Lens::set_view_hpr(LVecBase3f const &view_hpr);
2722 12 get_view_hpr 0 4 3016 18 Lens::get_view_hpr 0 1 1332 268
////////////////////////////////////////////////////////////////////
// Function: Lens::get_view_hpr
// Access: Published
// Description: Returns the direction in which the lens is facing.
////////////////////////////////////////////////////////////////////
49
LVecBase3f const &Lens::get_view_hpr(void) const;
2723 15 set_view_vector 0 4 3016 21 Lens::set_view_vector 0 2 1333 1334 882
////////////////////////////////////////////////////////////////////
// Function: Lens::set_view_vector
// Access: Published
// Description: Specifies the direction in which the lens is facing
// by giving an axis to look along, and a perpendicular
// (or at least non-parallel) up axis.
//
// See also set_view_hpr().
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Lens::set_view_vector
// Access: Published
// Description: Specifies the direction in which the lens is facing
// by giving an axis to look along, and a perpendicular
// (or at least non-parallel) up axis.
//
// See also set_view_hpr().
////////////////////////////////////////////////////////////////////
174
inline void Lens::set_view_vector(float x, float y, float z, float i, float j, float k);
void Lens::set_view_vector(LVector3f const &view_vector, LVector3f const &up_vector);
2724 15 get_view_vector 0 4 3016 21 Lens::get_view_vector 0 1 1335 269
////////////////////////////////////////////////////////////////////
// Function: Lens::get_view_vector
// Access: Published
// Description: Returns the axis along which the lens is facing.
////////////////////////////////////////////////////////////////////
51
LVector3f const &Lens::get_view_vector(void) const;
2725 13 get_up_vector 0 4 3016 19 Lens::get_up_vector 0 1 1336 329
////////////////////////////////////////////////////////////////////
// Function: Lens::get_up_vector
// Access: Published
// Description: Returns the axis perpendicular to the camera's view
// vector that indicates the "up" direction.
////////////////////////////////////////////////////////////////////
49
LVector3f const &Lens::get_up_vector(void) const;
2726 15 get_nodal_point 0 4 3016 21 Lens::get_nodal_point 0 1 1337 317
////////////////////////////////////////////////////////////////////
// Function: Lens::get_nodal_point
// Access: Published
// Description: Returns the center point of the lens: the point from
// which the lens is viewing.
////////////////////////////////////////////////////////////////////
43
LPoint3f Lens::get_nodal_point(void) const;
2727 24 set_interocular_distance 0 4 3016 30 Lens::set_interocular_distance 0 1 1338 796
////////////////////////////////////////////////////////////////////
// Function: Lens::set_interocular_distance
// Access: Published
// Description: Sets the distance between the left and right eyes of
// a stereo camera. This distance is used to apply a
// stereo effect when the lens is rendered on a stereo
// display region. It only has an effect on a
// PerspectiveLens.
//
// The left eye and the right eye are each offset along
// the X axis by half of this distance, so that this
// parameter specifies the total distance between them.
//
// Also see set_convergence_distance(), which relates.
////////////////////////////////////////////////////////////////////
71
inline void Lens::set_interocular_distance(float interocular_distance);
2728 24 get_interocular_distance 0 4 3016 30 Lens::get_interocular_distance 0 1 1339 261
////////////////////////////////////////////////////////////////////
// Function: Lens::get_interocular_distance
// Access: Published
// Description: See set_interocular_distance().
////////////////////////////////////////////////////////////////////
56
inline float Lens::get_interocular_distance(void) const;
2729 24 set_convergence_distance 0 4 3016 30 Lens::set_convergence_distance 0 1 1340 1237
////////////////////////////////////////////////////////////////////
// Function: Lens::set_convergence_distance
// Access: Published
// Description: Sets the distance between between the camera plane
// and the point in the distance that the left and right
// eyes are both looking at. This distance is used to
// apply a stereo effect when the lens is rendered on a
// stereo display region. It only has an effect on a
// PerspectiveLens.
//
// This parameter must be greater than 0, but may be as
// large as you like. It controls the amount to which
// the two eyes are directed inwards towards each other,
// which is a normal property of stereo vision. It is a
// distance, not an angle; normally this should be set
// to the distance from the camera to the area of
// interest in your scene. If you want to simulate
// parallel stereo, set this value to a very large
// number.
//
// Also see set_interocular_distance(), which relates.
////////////////////////////////////////////////////////////////////
71
inline void Lens::set_convergence_distance(float convergence_distance);
2730 24 get_convergence_distance 0 4 3016 30 Lens::get_convergence_distance 0 1 1341 261
////////////////////////////////////////////////////////////////////
// Function: Lens::get_convergence_distance
// Access: Published
// Description: See set_convergence_distance().
////////////////////////////////////////////////////////////////////
56
inline float Lens::get_convergence_distance(void) const;
2731 12 set_view_mat 0 4 3016 18 Lens::set_view_mat 0 1 1342 831
////////////////////////////////////////////////////////////////////
// Function: Lens::set_view_mat
// Access: Published
// Description: Sets an arbitrary transformation on the lens. This
// replaces the individual transformation components
// like set_view_hpr().
//
// Setting a transformation here will have a slightly
// different effect than putting one on the LensNode
// that contains this lens. In particular, lighting and
// other effects computations will still be performed on
// the lens in its untransformed (facing forward)
// position, but the actual projection matrix will be
// transformed by this matrix.
////////////////////////////////////////////////////////////////////
58
inline void Lens::set_view_mat(LMatrix4f const &view_mat);
2732 12 get_view_mat 0 4 3016 18 Lens::get_view_mat 0 1 1343 268
////////////////////////////////////////////////////////////////////
// Function: Lens::get_view_mat
// Access: Published
// Description: Returns the direction in which the lens is facing.
////////////////////////////////////////////////////////////////////
55
inline LMatrix4f const &Lens::get_view_mat(void) const;
2733 14 clear_view_mat 0 4 3016 20 Lens::clear_view_mat 0 1 1344 258
////////////////////////////////////////////////////////////////////
// Function: Lens::clear_view_mat
// Access: Published
// Description: Resets the lens transform to identity.
////////////////////////////////////////////////////////////////////
32
void Lens::clear_view_mat(void);
2734 12 set_keystone 0 4 3016 18 Lens::set_keystone 0 1 1345 989
////////////////////////////////////////////////////////////////////
// Function: Lens::set_keystone
// Access: Published
// Description: Indicates the ratio of keystone correction to perform
// on the lens, in each of three axes. This will build
// a special non-affine scale factor into the projection
// matrix that will compensate for keystoning of a
// projected image; this can be used to compensate for a
// projector that for physical reasons cannot be aimed
// directly at its screen.
//
// The default value is taken from the default-keystone
// Config variable. 0, 0 indicates no keystone
// correction; specify a small value (usually in the
// range -1 .. 1) in either the x or y position to
// generate a keystone correction in that axis.
////////////////////////////////////////////////////////////////////
52
void Lens::set_keystone(LVecBase2f const &keystone);
2735 12 get_keystone 0 4 3016 18 Lens::get_keystone 0 1 1346 290
////////////////////////////////////////////////////////////////////
// Function: Lens::get_keystone
// Access: Published
// Description: Returns the keystone correction specified for the
// lens.
////////////////////////////////////////////////////////////////////
56
inline LVecBase2f const &Lens::get_keystone(void) const;
2736 14 clear_keystone 0 4 3016 20 Lens::clear_keystone 0 1 1347 258
////////////////////////////////////////////////////////////////////
// Function: Lens::clear_keystone
// Access: Published
// Description: Disables the lens keystone correction.
////////////////////////////////////////////////////////////////////
32
void Lens::clear_keystone(void);
2737 19 set_custom_film_mat 0 4 3016 25 Lens::set_custom_film_mat 0 1 1348 743
////////////////////////////////////////////////////////////////////
// Function: Lens::set_custom_film_mat
// Access: Published
// Description: Specifies a custom matrix to transform the points on
// the film after they have been converted into nominal
// film space (-1 .. 1 in U and V). This can be used to
// introduce arbitrary scales, rotations, or other
// linear transforms to the media plane. This is
// normally a 2-d matrix, but a full 4x4 matrix may be
// specified. This is applied on top of any film size,
// lens shift, and/or keystone correction.
////////////////////////////////////////////////////////////////////
65
void Lens::set_custom_film_mat(LMatrix4f const &custom_film_mat);
2738 19 get_custom_film_mat 0 4 3016 25 Lens::get_custom_film_mat 0 1 1349 293
////////////////////////////////////////////////////////////////////
// Function: Lens::get_custom_film_mat
// Access: Published
// Description: Returns the custom_film_mat specified for the
// lens.
////////////////////////////////////////////////////////////////////
62
inline LMatrix4f const &Lens::get_custom_film_mat(void) const;
2739 21 clear_custom_film_mat 0 4 3016 27 Lens::clear_custom_film_mat 0 1 1350 272
////////////////////////////////////////////////////////////////////
// Function: Lens::clear_custom_film_mat
// Access: Published
// Description: Disables the lens custom_film_mat correction.
////////////////////////////////////////////////////////////////////
39
void Lens::clear_custom_film_mat(void);
2740 24 set_frustum_from_corners 0 4 3016 30 Lens::set_frustum_from_corners 0 1 1351 3080
////////////////////////////////////////////////////////////////////
// Function: Lens::set_frustum_from_corners
// Access: Published
// Description: Sets up the lens to use the frustum defined by the
// four indicated points. This is most useful for a
// PerspectiveLens, but it may be called for other kinds
// of lenses as well.
//
// The frustum will be rooted at the origin (or by
// whatever translation might have been specified in a
// previous call to set_view_mat).
//
// It is legal for the four points not to be arranged in
// a rectangle; if this is the case, the frustum will be
// fitted as tightly as possible to cover all four
// points.
//
// The flags parameter contains the union of one or more
// of the following bits to control the behavior of this
// function:
//
// FC_roll - If this is included, the camera may be
// rotated so that its up vector is perpendicular to the
// top line. Otherwise, the standard up vector is used.
//
// FC_camera_plane - This allows the camera plane to be
// adjusted to be as nearly perpendicular to the center
// of the frustum as possible. Without this bit, the
// orientation camera plane is defined by position of
// the four points (which should all be coplanar). With
// this bit, the camera plane is arbitarary, and may be
// chosen so that the four points do not themselves lie
// in the camera plane (but the points will still be
// within the frustum).
//
// FC_off_axis - This allows the resulting frustum to be
// off-axis to get the tightest possible fit. Without
// this bit, the viewing axis will be centered within
// the frustum, but there may be more wasted space along
// the edges.
//
// FC_aspect_ratio - This allows the frustum to be
// scaled non-proportionately in the vertical and
// horizontal dimensions, if necessary, to get a tighter
// fit. Without this bit, the current aspect ratio will
// be preserved.
//
// FC_shear - This allows the frustum to be sheared, if
// necessary, to get the tightest possible fit. This
// may result in a parallelogram-based frustum, which
// will give a slanted appearance to the rendered image.
// Without this bit, the frustum will be
// rectangle-based.
//
// In general, if 0 is passed in as the value for flags,
// the generated frustum will be a loose fit but sane;
// if -1 is passed in, it will be a tighter fit and
// possibly screwy.
////////////////////////////////////////////////////////////////////
135
void Lens::set_frustum_from_corners(LVecBase3f const &ul, LVecBase3f const &ur, LVecBase3f const &ll, LVecBase3f const &lr, int flags);
2741 13 recompute_all 0 4 3016 19 Lens::recompute_all 0 1 1352 405
////////////////////////////////////////////////////////////////////
// Function: Lens::recompute_all
// Access: Published
// Description: Forces all internal parameters of the Lens to be
// recomputed. Normally, this should never need to be
// called; it is provided only to assist in debugging.
////////////////////////////////////////////////////////////////////
31
void Lens::recompute_all(void);
2742 9 is_linear 0 6 3016 15 Lens::is_linear 0 1 1353 464
////////////////////////////////////////////////////////////////////
// Function: Lens::is_linear
// Access: Published, Virtual
// Description: Returns true if the lens represents a linear
// projection (e.g. PerspectiveLens, OrthographicLens),
// and therefore there is a valid matrix returned by
// get_projection_mat(), or false otherwise.
////////////////////////////////////////////////////////////////////
41
virtual bool Lens::is_linear(void) const;
2743 14 is_perspective 0 6 3016 20 Lens::is_perspective 0 1 1354 372
////////////////////////////////////////////////////////////////////
// Function: Lens::is_perspective
// Access: Published, Virtual
// Description: Returns true if the lens represents a perspective
// projection (i.e. it is a PerspectiveLens), false
// otherwise.
////////////////////////////////////////////////////////////////////
46
virtual bool Lens::is_perspective(void) const;
2744 15 is_orthographic 0 6 3016 21 Lens::is_orthographic 0 1 1355 375
////////////////////////////////////////////////////////////////////
// Function: Lens::is_orthographic
// Access: Published, Virtual
// Description: Returns true if the lens represents a orthographic
// projection (i.e. it is a OrthographicLens), false
// otherwise.
////////////////////////////////////////////////////////////////////
47
virtual bool Lens::is_orthographic(void) const;
2745 13 make_geometry 0 6 3016 19 Lens::make_geometry 0 1 1356 515
////////////////////////////////////////////////////////////////////
// Function: Lens::make_geometry
// Access: Published, Virtual
// Description: Allocates and returns a new Geom that can be rendered
// to show a visible representation of the frustum used
// for this kind of lens, if it makes sense to do
// so. If a visible representation cannot be created,
// returns NULL.
////////////////////////////////////////////////////////////////////
52
virtual PointerTo< Geom > Lens::make_geometry(void);
2746 11 make_bounds 0 6 3016 17 Lens::make_bounds 0 1 1357 450
////////////////////////////////////////////////////////////////////
// Function: Lens::make_bounds
// Access: Published, Virtual
// Description: Allocates and returns a new BoundingVolume that
// encloses the frustum used for this kind of
// lens, if possible. If a suitable bounding
// volume cannot be created, returns NULL.
////////////////////////////////////////////////////////////////////
66
virtual PointerTo< BoundingVolume > Lens::make_bounds(void) const;
2747 18 get_projection_mat 0 4 3016 24 Lens::get_projection_mat 0 2 1358 1359 441
////////////////////////////////////////////////////////////////////
// Function: Lens::get_projection_mat
// Access: Published
// Description: Returns the complete transformation matrix from a 3-d
// point in space to a point on the film, if such a
// matrix exists, or the identity matrix if the lens is
// nonlinear.
////////////////////////////////////////////////////////////////////
96
inline LMatrix4f const &Lens::get_projection_mat(Lens::StereoChannel channel = (SC_mono)) const;
2748 22 get_projection_mat_inv 0 4 3016 28 Lens::get_projection_mat_inv 0 2 1360 1361 376
////////////////////////////////////////////////////////////////////
// Function: Lens::get_projection_mat_inv
// Access: Published
// Description: Returns the matrix that transforms from a 2-d point
// on the film to a 3-d vector in space, if such a
// matrix exists.
////////////////////////////////////////////////////////////////////
100
inline LMatrix4f const &Lens::get_projection_mat_inv(Lens::StereoChannel channel = (SC_mono)) const;
2749 12 get_film_mat 0 4 3016 18 Lens::get_film_mat 0 1 1362 322
////////////////////////////////////////////////////////////////////
// Function: Lens::get_film_mat
// Access: Published
// Description: Returns the matrix that transforms from a point
// behind the lens to a point on the film.
////////////////////////////////////////////////////////////////////
55
inline LMatrix4f const &Lens::get_film_mat(void) const;
2750 16 get_film_mat_inv 0 4 3016 22 Lens::get_film_mat_inv 0 1 1363 326
////////////////////////////////////////////////////////////////////
// Function: Lens::get_film_mat_inv
// Access: Published
// Description: Returns the matrix that transforms from a point on
// the film to a point behind the lens.
////////////////////////////////////////////////////////////////////
59
inline LMatrix4f const &Lens::get_film_mat_inv(void) const;
2751 12 get_lens_mat 0 4 3016 18 Lens::get_lens_mat 0 1 1364 324
////////////////////////////////////////////////////////////////////
// Function: Lens::get_lens_mat
// Access: Published
// Description: Returns the matrix that transforms from a point
// in front of the lens to a point in space.
////////////////////////////////////////////////////////////////////
55
inline LMatrix4f const &Lens::get_lens_mat(void) const;
2752 16 get_lens_mat_inv 0 4 3016 22 Lens::get_lens_mat_inv 0 1 1365 328
////////////////////////////////////////////////////////////////////
// Function: Lens::get_lens_mat_inv
// Access: Published
// Description: Returns the matrix that transforms from a point in
// space to a point in front of the lens.
////////////////////////////////////////////////////////////////////
59
inline LMatrix4f const &Lens::get_lens_mat_inv(void) const;
2753 6 output 0 6 3016 12 Lens::output 0 1 1366 221
////////////////////////////////////////////////////////////////////
// Function: Lens::output
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
46
virtual void Lens::output(ostream &out) const;
2754 5 write 0 6 3016 11 Lens::write 0 2 1367 1368 220
////////////////////////////////////////////////////////////////////
// Function: Lens::write
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
69
virtual void Lens::write(ostream &out, int indent_level = (0)) const;
2755 15 get_last_change 0 4 3016 21 Lens::get_last_change 0 1 1369 447
////////////////////////////////////////////////////////////////////
// Function: Lens::get_last_change
// Access: Published
// Description: Returns the UpdateSeq that is incremented whenever
// the lens properties are changed. As long as this
// number remains the same, you may assume the lens
// properties are unchanged.
////////////////////////////////////////////////////////////////////
51
inline UpdateSeq Lens::get_last_change(void) const;
2756 14 get_class_type 0 4 3016 20 Lens::get_class_type 0 1 1370 0
45
static TypeHandle Lens::get_class_type(void);
2757 5 ~Lens 0 4 3016 11 Lens::~Lens 0 0 0
18
Lens::~Lens(void);
2758 37 upcast_to_TypedWritableReferenceCount 0 12 3019 47 Material::upcast_to_TypedWritableReferenceCount 0 1 1407 51
upcast from Material to TypedWritableReferenceCount
83
TypedWritableReferenceCount *Material::upcast_to_TypedWritableReferenceCount(void);
2759 20 downcast_to_Material 0 12 2951 49 TypedWritableReferenceCount::downcast_to_Material 0 1 1408 53
downcast from TypedWritableReferenceCount to Material
66
Material *TypedWritableReferenceCount::downcast_to_Material(void);
2760 17 upcast_to_Namable 0 12 3019 27 Material::upcast_to_Namable 0 1 1409 31
upcast from Material to Namable
43
Namable *Material::upcast_to_Namable(void);
2761 20 downcast_to_Material 0 12 2937 29 Namable::downcast_to_Material 0 1 1410 33
downcast from Namable to Material
46
Material *Namable::downcast_to_Material(void);
2762 8 Material 0 4 3019 18 Material::Material 0 3 1371 1372 1373 930
// Filename: material.I
// Created by: mike (05Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Material::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Material::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
116
inline Material::Material(basic_string< char > const &name = (""));
inline Material::Material(Material const &copy);
2763 10 operator = 0 4 3019 20 Material::operator = 0 1 1374 233
////////////////////////////////////////////////////////////////////
// Function: Material::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
48
void Material::operator =(Material const &copy);
2764 9 ~Material 0 6 3019 19 Material::~Material 0 0 219
////////////////////////////////////////////////////////////////////
// Function: Material::Destructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
41
virtual inline Material::~Material(void);
2765 11 get_default 0 4 3019 21 Material::get_default 0 1 1375 258
////////////////////////////////////////////////////////////////////
// Function: Material::get_default
// Access: Published, Static
// Description: Returns the default material.
////////////////////////////////////////////////////////////////////
52
static inline Material *Material::get_default(void);
2766 11 has_ambient 0 4 3019 21 Material::has_ambient 0 1 1376 331
////////////////////////////////////////////////////////////////////
// Function: Material::has_ambient
// Access: Published
// Description: Returns true if the ambient color has been explicitly
// set for this material, false otherwise.
////////////////////////////////////////////////////////////////////
46
inline bool Material::has_ambient(void) const;
2767 11 get_ambient 0 4 3019 21 Material::get_ambient 0 1 1377 367
////////////////////////////////////////////////////////////////////
// Function: Material::get_ambient
// Access: Published
// Description: Returns the ambient color setting, if it has been
// set. Returns (0,0,0,0) if the ambient color has not
// been set.
////////////////////////////////////////////////////////////////////
59
inline LVecBase4f const &Material::get_ambient(void) const;
2768 11 set_ambient 0 4 3019 21 Material::set_ambient 0 1 1378 592
////////////////////////////////////////////////////////////////////
// Function: Material::set_ambient
// Access: Published
// Description: Specifies the ambient color setting of the material.
// This will be the multiplied by any ambient lights in
// effect on the material to set its base color.
//
// This is the color of the object as it appears in the
// absence of direct light.
//
// If this is not set, the object color will be used.
////////////////////////////////////////////////////////////////////
52
void Material::set_ambient(LVecBase4f const &color);
2769 13 clear_ambient 0 4 3019 23 Material::clear_ambient 0 1 1379 276
////////////////////////////////////////////////////////////////////
// Function: Material::clear_ambient
// Access: Published
// Description: Removes the explicit ambient color from the material.
////////////////////////////////////////////////////////////////////
42
inline void Material::clear_ambient(void);
2770 11 has_diffuse 0 4 3019 21 Material::has_diffuse 0 1 1380 331
////////////////////////////////////////////////////////////////////
// Function: Material::has_diffuse
// Access: Published
// Description: Returns true if the diffuse color has been explicitly
// set for this material, false otherwise.
////////////////////////////////////////////////////////////////////
46
inline bool Material::has_diffuse(void) const;
2771 11 get_diffuse 0 4 3019 21 Material::get_diffuse 0 1 1381 367
////////////////////////////////////////////////////////////////////
// Function: Material::get_diffuse
// Access: Published
// Description: Returns the diffuse color setting, if it has been
// set. Returns (1,1,1,1) if the diffuse color has not
// been set.
////////////////////////////////////////////////////////////////////
59
inline LVecBase4f const &Material::get_diffuse(void) const;
2772 11 set_diffuse 0 4 3019 21 Material::set_diffuse 0 1 1382 709
////////////////////////////////////////////////////////////////////
// Function: Material::set_diffuse
// Access: Published
// Description: Specifies the diffuse color setting of the material.
// This will be multiplied by any lights in effect on
// the material to get the color in the parts of the
// object illuminated by the lights.
//
// This is the primary color of an object; the color of
// the object as it appears in direct light, in the
// absence of highlights.
//
// If this is not set, the object color will be used.
////////////////////////////////////////////////////////////////////
52
void Material::set_diffuse(LVecBase4f const &color);
2773 13 clear_diffuse 0 4 3019 23 Material::clear_diffuse 0 1 1383 276
////////////////////////////////////////////////////////////////////
// Function: Material::clear_diffuse
// Access: Published
// Description: Removes the explicit diffuse color from the material.
////////////////////////////////////////////////////////////////////
42
inline void Material::clear_diffuse(void);
2774 12 has_specular 0 4 3019 22 Material::has_specular 0 1 1384 333
////////////////////////////////////////////////////////////////////
// Function: Material::has_specular
// Access: Published
// Description: Returns true if the specular color has been explicitly
// set for this material, false otherwise.
////////////////////////////////////////////////////////////////////
47
inline bool Material::has_specular(void) const;
2775 12 get_specular 0 4 3019 22 Material::get_specular 0 1 1385 370
////////////////////////////////////////////////////////////////////
// Function: Material::get_specular
// Access: Published
// Description: Returns the specular color setting, if it has been
// set. Returns (0,0,0,0) if the specular color has not
// been set.
////////////////////////////////////////////////////////////////////
60
inline LVecBase4f const &Material::get_specular(void) const;
2776 12 set_specular 0 4 3019 22 Material::set_specular 0 1 1386 637
////////////////////////////////////////////////////////////////////
// Function: Material::set_specular
// Access: Published
// Description: Specifies the diffuse color setting of the material.
// This will be multiplied by any lights in effect on
// the material to compute the color of specular
// highlights on the object.
//
// This is the highlight color of an object: the color
// of small highlight reflections.
//
// If this is not set, highlights will not appear.
////////////////////////////////////////////////////////////////////
53
void Material::set_specular(LVecBase4f const &color);
2777 14 clear_specular 0 4 3019 24 Material::clear_specular 0 1 1387 278
////////////////////////////////////////////////////////////////////
// Function: Material::clear_specular
// Access: Published
// Description: Removes the explicit specular color from the material.
////////////////////////////////////////////////////////////////////
43
inline void Material::clear_specular(void);
2778 12 has_emission 0 4 3019 22 Material::has_emission 0 1 1388 333
////////////////////////////////////////////////////////////////////
// Function: Material::has_emission
// Access: Published
// Description: Returns true if the emission color has been explicitly
// set for this material, false otherwise.
////////////////////////////////////////////////////////////////////
47
inline bool Material::has_emission(void) const;
2779 12 get_emission 0 4 3019 22 Material::get_emission 0 1 1389 370
////////////////////////////////////////////////////////////////////
// Function: Material::get_emission
// Access: Published
// Description: Returns the emission color setting, if it has been
// set. Returns (0,0,0,0) if the emission color has not
// been set.
////////////////////////////////////////////////////////////////////
60
inline LVecBase4f const &Material::get_emission(void) const;
2780 12 set_emission 0 4 3019 22 Material::set_emission 0 1 1390 768
////////////////////////////////////////////////////////////////////
// Function: Material::set_emission
// Access: Published
// Description: Specifies the emission color setting of the material.
// This is the color of the object as it appears in the
// absence of any light whatsover, including ambient
// light. It is as if the object is glowing by this
// color (although of course it will not illuminate
// neighboring objects).
//
// If this is not set, the object will not glow by its
// own light and will only appear visible in the
// presence of one or more lights.
////////////////////////////////////////////////////////////////////
53
void Material::set_emission(LVecBase4f const &color);
2781 14 clear_emission 0 4 3019 24 Material::clear_emission 0 1 1391 278
////////////////////////////////////////////////////////////////////
// Function: Material::clear_emission
// Access: Published
// Description: Removes the explicit emission color from the material.
////////////////////////////////////////////////////////////////////
43
inline void Material::clear_emission(void);
2782 13 get_shininess 0 4 3019 23 Material::get_shininess 0 1 1392 270
////////////////////////////////////////////////////////////////////
// Function: Material::get_shininess
// Access: Published
// Description: Returns the shininess exponent of the material.
////////////////////////////////////////////////////////////////////
49
inline float Material::get_shininess(void) const;
2783 13 set_shininess 0 4 3019 23 Material::set_shininess 0 1 1393 598
////////////////////////////////////////////////////////////////////
// Function: Material::set_shininess
// Access: Published
// Description: Sets the shininess exponent of the material. This
// controls the size of the specular highlight spot. In
// general, larger number produce a smaller specular
// highlight, which makes the object appear shinier.
// Smaller numbers produce a larger highlight, which
// makes the object appear less shiny.
////////////////////////////////////////////////////////////////////
53
inline void Material::set_shininess(float shininess);
2784 9 get_local 0 4 3019 19 Material::get_local 0 1 1394 267
////////////////////////////////////////////////////////////////////
// Function: Material::get_local
// Access: Published
// Description: Returns the local viewer flag. Set set_local().
////////////////////////////////////////////////////////////////////
44
inline bool Material::get_local(void) const;
2785 9 set_local 0 4 3019 19 Material::set_local 0 1 1395 519
////////////////////////////////////////////////////////////////////
// Function: Material::set_local
// Access: Published
// Description: Sets the local viewer flag. Set this true to enable
// camera-relative specular highlights, or false to use
// orthogonal specular highlights. The default value is
// true. Applications that use orthogonal projection
// should specify false.
////////////////////////////////////////////////////////////////////
44
inline void Material::set_local(bool local);
2786 11 get_twoside 0 4 3019 21 Material::get_twoside 0 1 1396 306
////////////////////////////////////////////////////////////////////
// Function: Material::get_twoside
// Access: Published
// Description: Returns the state of the two-sided lighting flag.
// See set_twoside().
////////////////////////////////////////////////////////////////////
46
inline bool Material::get_twoside(void) const;
2787 11 set_twoside 0 4 3019 21 Material::set_twoside 0 1 1397 513
////////////////////////////////////////////////////////////////////
// Function: Material::set_twoside
// Access: Published
// Description: Set this true to enable two-sided lighting. When
// two-sided lighting is on, both sides of a polygon
// will be lit by this material. The default is for
// two-sided lighting to be off, in which case only the
// front surface is lit.
////////////////////////////////////////////////////////////////////
48
inline void Material::set_twoside(bool twoside);
2788 11 operator == 0 4 3019 21 Material::operator == 0 1 1398 220
////////////////////////////////////////////////////////////////////
// Function: Material::operator ==
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
63
inline bool Material::operator ==(Material const &other) const;
2789 11 operator != 0 4 3019 21 Material::operator != 0 1 1399 220
////////////////////////////////////////////////////////////////////
// Function: Material::operator !=
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
63
inline bool Material::operator !=(Material const &other) const;
2790 10 operator < 0 4 3019 20 Material::operator < 0 1 1400 219
////////////////////////////////////////////////////////////////////
// Function: Material::operator <
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
62
inline bool Material::operator <(Material const &other) const;
2791 10 compare_to 0 4 3019 20 Material::compare_to 0 1 1401 535
////////////////////////////////////////////////////////////////////
// Function: Material::compare_to
// Access: Published
// Description: Returns a number less than zero if this material
// sorts before the other one, greater than zero if it
// sorts after, or zero if they are equivalent. The
// sorting order is arbitrary and largely meaningless,
// except to differentiate different materials.
////////////////////////////////////////////////////////////////////
54
int Material::compare_to(Material const &other) const;
2792 6 output 0 4 3019 16 Material::output 0 1 1402 215
////////////////////////////////////////////////////////////////////
// Function: Material::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
42
void Material::output(ostream &out) const;
2793 5 write 0 4 3019 15 Material::write 0 1 1403 214
////////////////////////////////////////////////////////////////////
// Function: Material::write
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
53
void Material::write(ostream &out, int indent) const;
2794 16 is_attrib_locked 0 4 3019 26 Material::is_attrib_locked 0 1 1404 225
////////////////////////////////////////////////////////////////////
// Function: Material::is_attrib_locked
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
51
inline bool Material::is_attrib_locked(void) const;
2795 15 set_attrib_lock 0 4 3019 25 Material::set_attrib_lock 0 1 1405 224
////////////////////////////////////////////////////////////////////
// Function: Material::set_attrib_lock
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
44
inline void Material::set_attrib_lock(void);
2796 14 get_class_type 0 4 3019 24 Material::get_class_type 0 1 1406 0
49
static TypeHandle Material::get_class_type(void);
2797 12 get_material 0 4 3020 26 MaterialPool::get_material 0 1 1411 1538
// Filename: materialPool.I
// Created by: drose (30Apr01)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MaterialPool::get_material
// Access: Public, Static
// Description: Returns a Material pointer that represents the
// same material described by temp, except that it is a
// shared pointer.
//
// Each call to get_material() passing an equivalent
// Material pointer will return the same shared pointer.
//
// If you modify the shared pointer, it will
// automatically disassociate it from the pool.
//
// Also, the return value may be a different pointer
// than that passed in, or it may be the same pointer.
// In either case, the passed in pointer has now been
// sacrificed to the greater good and should not be used
// again (like any other PointerTo, it will be freed
// when the last reference count is removed).
////////////////////////////////////////////////////////////////////
67
static inline Material *MaterialPool::get_material(Material *temp);
2798 16 release_material 0 4 3020 30 MaterialPool::release_material 0 1 1412 283
////////////////////////////////////////////////////////////////////
// Function: MaterialPool::release_material
// Access: Published, Static
// Description: Removes the indicated material from the pool.
////////////////////////////////////////////////////////////////////
66
static inline void MaterialPool::release_material(Material *temp);
2799 21 release_all_materials 0 4 3020 35 MaterialPool::release_all_materials 0 1 1413 336
////////////////////////////////////////////////////////////////////
// Function: MaterialPool::release_all_materials
// Access: Published, Static
// Description: Releases all materials in the pool and restores the
// pool to the empty state.
////////////////////////////////////////////////////////////////////
61
static inline void MaterialPool::release_all_materials(void);
2800 15 garbage_collect 0 4 3020 29 MaterialPool::garbage_collect 0 1 1414 481
////////////////////////////////////////////////////////////////////
// Function: MaterialPool::garbage_collect
// Access: Public, Static
// Description: Releases only those materials in the pool that have a
// reference count of exactly 1; i.e. only those
// materials that are not being used outside of the pool.
// Returns the number of materials released.
////////////////////////////////////////////////////////////////////
54
static inline int MaterialPool::garbage_collect(void);
2801 13 list_contents 0 4 3020 27 MaterialPool::list_contents 0 1 1415 320
////////////////////////////////////////////////////////////////////
// Function: MaterialPool::list_contents
// Access: Public, Static
// Description: Lists the contents of the material pool to the
// indicated output stream.
////////////////////////////////////////////////////////////////////
61
static inline void MaterialPool::list_contents(ostream &out);
2802 5 write 0 4 3020 19 MaterialPool::write 0 1 1416 315
////////////////////////////////////////////////////////////////////
// Function: MaterialPool::write
// Access: Published, Static
// Description: Lists the contents of the material pool to the
// indicated output stream.
////////////////////////////////////////////////////////////////////
46
static void MaterialPool::write(ostream &out);
2803 13 ~MaterialPool 0 4 3020 27 MaterialPool::~MaterialPool 0 0 0
34
MaterialPool::~MaterialPool(void);
2804 10 MatrixLens 0 4 3021 22 MatrixLens::MatrixLens 0 1 1417 931
// Filename: matrixLens.I
// Created by: drose (12Dec01)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::Constructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::Copy Constructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
36
inline MatrixLens::MatrixLens(void);
2805 12 set_user_mat 0 4 3021 24 MatrixLens::set_user_mat 0 1 1418 938
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::set_user_mat
// Access: Published
// Description: Explicitly specifies the projection matrix. This
// matrix should convert X and Y to the range
// [-film_size/2, film_size/2], where (-fs/2,-fs/2) is
// the lower left corner of the screen and (fs/2, fs/2)
// is the upper right. Z should go to the range [-1,
// 1], where -1 is the far plane and 1 is the near
// plane. Note that this is a left-handed Y-up
// coordinate system.
//
// The default film_size for a MatrixLens is 2, so the
// default range is [-1, 1] for both X and Y. This is
// consistent with the GL conventions for projection
// matrices.
////////////////////////////////////////////////////////////////////
64
inline void MatrixLens::set_user_mat(LMatrix4f const &user_mat);
2806 12 get_user_mat 0 4 3021 24 MatrixLens::get_user_mat 0 1 1419 404
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::get_user_mat
// Access: Published
// Description: Returns the explicit projection matrix as set by the
// user. This does not include transforms on the lens
// or film (e.g. a film offset or view hpr).
////////////////////////////////////////////////////////////////////
61
inline LMatrix4f const &MatrixLens::get_user_mat(void) const;
2807 16 set_left_eye_mat 0 4 3021 28 MatrixLens::set_left_eye_mat 0 1 1420 761
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::set_left_eye_mat
// Access: Published
// Description: Sets a custom projection matrix for the left eye.
// This is only used if the lens is attached to a stereo
// camera, in which case the left eye matrix will be
// used to draw the scene in the left eye (but the
// center matrix--the user_mat--will still be used to
// cull the scene).
//
// This matrix should not be too different from the
// center matrix (set by set_user_mat()) or culling
// errors may become obvious.
////////////////////////////////////////////////////////////////////
68
inline void MatrixLens::set_left_eye_mat(LMatrix4f const &user_mat);
2808 18 clear_left_eye_mat 0 4 3021 30 MatrixLens::clear_left_eye_mat 0 1 1421 380
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::clear_left_eye_mat
// Access: Published
// Description: Removes the custom projection matrix set for the left
// eye, and uses the center matrix (set by set_user_mat)
// instead.
////////////////////////////////////////////////////////////////////
49
inline void MatrixLens::clear_left_eye_mat(void);
2809 16 has_left_eye_mat 0 4 3021 28 MatrixLens::has_left_eye_mat 0 1 1422 441
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::has_left_eye_mat
// Access: Published
// Description: Returns true if the camera has a custom projection
// matrix set for the left eye, or false if the center
// matrix (set by set_user_mat) will be used for the
// left eye.
////////////////////////////////////////////////////////////////////
53
inline bool MatrixLens::has_left_eye_mat(void) const;
2810 16 get_left_eye_mat 0 4 3021 28 MatrixLens::get_left_eye_mat 0 1 1423 396
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::get_left_eye_mat
// Access: Published
// Description: Returns the custom projection matrix for the left
// eye, if any, or the center matrix if there is no
// custom matrix set for the left eye.
////////////////////////////////////////////////////////////////////
65
inline LMatrix4f const &MatrixLens::get_left_eye_mat(void) const;
2811 17 set_right_eye_mat 0 4 3021 29 MatrixLens::set_right_eye_mat 0 1 1424 765
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::set_right_eye_mat
// Access: Published
// Description: Sets a custom projection matrix for the right eye.
// This is only used if the lens is attached to a stereo
// camera, in which case the right eye matrix will be
// used to draw the scene in the right eye (but the
// center matrix--the user_mat--will still be used to
// cull the scene).
//
// This matrix should not be too different from the
// center matrix (set by set_user_mat()) or culling
// errors may become obvious.
////////////////////////////////////////////////////////////////////
69
inline void MatrixLens::set_right_eye_mat(LMatrix4f const &user_mat);
2812 19 clear_right_eye_mat 0 4 3021 31 MatrixLens::clear_right_eye_mat 0 1 1425 382
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::clear_right_eye_mat
// Access: Published
// Description: Removes the custom projection matrix set for the right
// eye, and uses the center matrix (set by set_user_mat)
// instead.
////////////////////////////////////////////////////////////////////
50
inline void MatrixLens::clear_right_eye_mat(void);
2813 17 has_right_eye_mat 0 4 3021 29 MatrixLens::has_right_eye_mat 0 1 1426 444
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::has_right_eye_mat
// Access: Published
// Description: Returns true if the camera has a custom projection
// matrix set for the right eye, or false if the center
// matrix (set by set_user_mat) will be used for the
// right eye.
////////////////////////////////////////////////////////////////////
54
inline bool MatrixLens::has_right_eye_mat(void) const;
2814 17 get_right_eye_mat 0 4 3021 29 MatrixLens::get_right_eye_mat 0 1 1427 399
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::get_right_eye_mat
// Access: Published
// Description: Returns the custom projection matrix for the right
// eye, if any, or the center matrix if there is no
// custom matrix set for the right eye.
////////////////////////////////////////////////////////////////////
66
inline LMatrix4f const &MatrixLens::get_right_eye_mat(void) const;
2815 14 get_class_type 0 4 3021 26 MatrixLens::get_class_type 0 1 1428 0
51
static TypeHandle MatrixLens::get_class_type(void);
2816 11 ~MatrixLens 0 4 3021 23 MatrixLens::~MatrixLens 0 0 0
30
MatrixLens::~MatrixLens(void);
2817 16 OrthographicLens 0 4 3022 34 OrthographicLens::OrthographicLens 0 1 1429 948
// Filename: orthographicLens.I
// Created by: mike (18Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: OrthographicLens::Constructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: OrthographicLens::Copy Constructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
48
inline OrthographicLens::OrthographicLens(void);
2818 14 get_class_type 0 4 3022 32 OrthographicLens::get_class_type 0 1 1430 0
57
static TypeHandle OrthographicLens::get_class_type(void);
2819 17 ~OrthographicLens 0 4 3022 35 OrthographicLens::~OrthographicLens 0 0 0
42
OrthographicLens::~OrthographicLens(void);
2820 15 PerspectiveLens 0 4 3023 32 PerspectiveLens::PerspectiveLens 0 2 1431 1432 1172
// Filename: perspectiveLens.I
// Created by: drose (18Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PerspectiveLens::Constructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PerspectiveLens::Constructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PerspectiveLens::Copy Constructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
111
inline PerspectiveLens::PerspectiveLens(void);
inline PerspectiveLens::PerspectiveLens(float hfov, float vfov);
2821 14 get_class_type 0 4 3023 31 PerspectiveLens::get_class_type 0 1 1433 0
56
static TypeHandle PerspectiveLens::get_class_type(void);
2822 16 ~PerspectiveLens 0 4 3023 33 PerspectiveLens::~PerspectiveLens 0 0 0
40
PerspectiveLens::~PerspectiveLens(void);
2823 20 TextureReloadRequest 0 4 3024 42 TextureReloadRequest::TextureReloadRequest 0 1 1434 854
// Filename: textureReloadRequest.I
// Created by: drose (12Aug08)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureReloadRequest::Constructor
// Access: Published
// Description: Create a new TextureReloadRequest, and add it to the loader
// via load_async(), to begin an asynchronous load.
////////////////////////////////////////////////////////////////////
155
inline TextureReloadRequest::TextureReloadRequest(basic_string< char > const &name, PreparedGraphicsObjects *pgo, Texture *texture, bool allow_compressed);
2824 29 get_prepared_graphics_objects 0 4 3024 51 TextureReloadRequest::get_prepared_graphics_objects 0 1 1435 366
////////////////////////////////////////////////////////////////////
// Function: TextureReloadRequest::get_prepared_graphics_objects
// Access: Published
// Description: Returns the PreparedGraphicsObjects object associated with
// this asynchronous TextureReloadRequest.
////////////////////////////////////////////////////////////////////
96
inline PreparedGraphicsObjects *TextureReloadRequest::get_prepared_graphics_objects(void) const;
2825 11 get_texture 0 4 3024 33 TextureReloadRequest::get_texture 0 1 1436 332
////////////////////////////////////////////////////////////////////
// Function: TextureReloadRequest::get_texture
// Access: Published
// Description: Returns the Texture object associated with
// this asynchronous TextureReloadRequest.
////////////////////////////////////////////////////////////////////
62
inline Texture *TextureReloadRequest::get_texture(void) const;
2826 20 get_allow_compressed 0 4 3024 42 TextureReloadRequest::get_allow_compressed 0 1 1437 350
////////////////////////////////////////////////////////////////////
// Function: TextureReloadRequest::get_allow_compressed
// Access: Published
// Description: Returns the "allow compressed" flag associated with
// this asynchronous TextureReloadRequest.
////////////////////////////////////////////////////////////////////
67
inline bool TextureReloadRequest::get_allow_compressed(void) const;
2827 8 is_ready 0 4 3024 30 TextureReloadRequest::is_ready 0 1 1438 320
////////////////////////////////////////////////////////////////////
// Function: TextureReloadRequest::is_ready
// Access: Published
// Description: Returns true if this request has completed, false if
// it is still pending.
////////////////////////////////////////////////////////////////////
55
inline bool TextureReloadRequest::is_ready(void) const;
2828 14 get_class_type 0 4 3024 36 TextureReloadRequest::get_class_type 0 1 1439 0
61
static TypeHandle TextureReloadRequest::get_class_type(void);
2829 21 ~TextureReloadRequest 0 4 3024 43 TextureReloadRequest::~TextureReloadRequest 0 0 0
50
TextureReloadRequest::~TextureReloadRequest(void);
2830 23 upcast_to_BufferContext 0 12 3025 39 TextureContext::upcast_to_BufferContext 0 1 1450 43
upcast from TextureContext to BufferContext
61
BufferContext *TextureContext::upcast_to_BufferContext(void);
2831 26 downcast_to_TextureContext 0 12 2982 41 BufferContext::downcast_to_TextureContext 0 1 1451 45
downcast from BufferContext to TextureContext
64
TextureContext *BufferContext::downcast_to_TextureContext(void);
2832 25 upcast_to_AdaptiveLruPage 0 12 3025 41 TextureContext::upcast_to_AdaptiveLruPage 0 1 1452 45
upcast from TextureContext to AdaptiveLruPage
65
AdaptiveLruPage *TextureContext::upcast_to_AdaptiveLruPage(void);
2833 26 downcast_to_TextureContext 0 12 2938 43 AdaptiveLruPage::downcast_to_TextureContext 0 1 1453 47
downcast from AdaptiveLruPage to TextureContext
66
TextureContext *AdaptiveLruPage::downcast_to_TextureContext(void);
2834 11 get_texture 0 4 3025 27 TextureContext::get_texture 0 1 1440 294
////////////////////////////////////////////////////////////////////
// Function: TextureContext::get_texture
// Access: Public
// Description: Returns the pointer to the associated Texture
// object.
////////////////////////////////////////////////////////////////////
56
inline Texture *TextureContext::get_texture(void) const;
2835 8 get_view 0 4 3025 24 TextureContext::get_view 0 1 1441 394
////////////////////////////////////////////////////////////////////
// Function: TextureContext::get_view
// Access: Public
// Description: Returns the specific view of a multiview texture this
// context represents. In the usual case, with a
// non-multiview texture, this will be 0.
////////////////////////////////////////////////////////////////////
48
inline int TextureContext::get_view(void) const;
2836 12 was_modified 0 4 3025 28 TextureContext::was_modified 0 1 1442 371
////////////////////////////////////////////////////////////////////
// Function: TextureContext::was_modified
// Access: Public
// Description: Returns true if the texture properties or image have
// been modified since the last time mark_loaded() was
// called.
////////////////////////////////////////////////////////////////////
53
inline bool TextureContext::was_modified(void) const;
2837 23 was_properties_modified 0 4 3025 39 TextureContext::was_properties_modified 0 1 1443 398
////////////////////////////////////////////////////////////////////
// Function: TextureContext::was_properties_modified
// Access: Public
// Description: Returns true if the texture properties (unrelated to
// the image) have been modified since the last time
// mark_loaded() was called.
////////////////////////////////////////////////////////////////////
64
inline bool TextureContext::was_properties_modified(void) const;
2838 18 was_image_modified 0 4 3025 34 TextureContext::was_image_modified 0 1 1444 345
////////////////////////////////////////////////////////////////////
// Function: TextureContext::was_image_modified
// Access: Public
// Description: Returns true if the texture image has been modified
// since the last time mark_loaded() was called.
////////////////////////////////////////////////////////////////////
59
inline bool TextureContext::was_image_modified(void) const;
2839 25 was_simple_image_modified 0 4 3025 41 TextureContext::was_simple_image_modified 0 1 1445 387
////////////////////////////////////////////////////////////////////
// Function: TextureContext::was_simple_image_modified
// Access: Public
// Description: Returns true if the texture's "simple" image has been
// modified since the last time mark_simple_loaded() was
// called.
////////////////////////////////////////////////////////////////////
66
inline bool TextureContext::was_simple_image_modified(void) const;
2840 23 get_properties_modified 0 4 3025 39 TextureContext::get_properties_modified 0 1 1446 410
////////////////////////////////////////////////////////////////////
// Function: TextureContext::get_properties_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the texture properties
// (unrelated to the image) are modified.
////////////////////////////////////////////////////////////////////
69
inline UpdateSeq TextureContext::get_properties_modified(void) const;
2841 18 get_image_modified 0 4 3025 34 TextureContext::get_image_modified 0 1 1447 406
////////////////////////////////////////////////////////////////////
// Function: TextureContext::get_image_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the texture image data
// (including mipmap levels) are modified.
////////////////////////////////////////////////////////////////////
64
inline UpdateSeq TextureContext::get_image_modified(void) const;
2842 25 get_simple_image_modified 0 4 3025 41 TextureContext::get_simple_image_modified 0 1 1448 397
////////////////////////////////////////////////////////////////////
// Function: TextureContext::get_simple_image_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the texture's "simple"
// image data is modified.
////////////////////////////////////////////////////////////////////
71
inline UpdateSeq TextureContext::get_simple_image_modified(void) const;
2843 14 get_class_type 0 4 3025 30 TextureContext::get_class_type 0 1 1449 0
55
static TypeHandle TextureContext::get_class_type(void);
2844 15 ~TextureContext 0 4 3025 31 TextureContext::~TextureContext 0 0 0
38
TextureContext::~TextureContext(void);
2845 10 get_shader 0 4 3026 25 ShaderContext::get_shader 0 1 1454 227
////////////////////////////////////////////////////////////////////
// Function: ShaderContext::get_expansion
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
53
inline Shader *ShaderContext::get_shader(void) const;
2846 14 get_class_type 0 4 3026 29 ShaderContext::get_class_type 0 1 1455 0
54
static TypeHandle ShaderContext::get_class_type(void);
2847 14 ~ShaderContext 0 4 3026 29 ShaderContext::~ShaderContext 0 0 0
36
ShaderContext::~ShaderContext(void);
2848 16 UserVertexSlider 0 4 3027 34 UserVertexSlider::UserVertexSlider 0 2 1456 1457 460
////////////////////////////////////////////////////////////////////
// Function: UserVertexSlider::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: UserVertexSlider::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
131
UserVertexSlider::UserVertexSlider(basic_string< char > const &name);
UserVertexSlider::UserVertexSlider(InternalName const *name);
2849 10 set_slider 0 4 3027 28 UserVertexSlider::set_slider 0 1 1458 754
// Filename: userVertexSlider.I
// Created by: drose (28Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: UserVertexSlider::set_slider
// Access: Published
// Description: Stores the indicated slider value.
////////////////////////////////////////////////////////////////////
55
inline void UserVertexSlider::set_slider(float slider);
2850 14 get_class_type 0 4 3027 32 UserVertexSlider::get_class_type 0 1 1459 0
57
static TypeHandle UserVertexSlider::get_class_type(void);
2851 17 ~UserVertexSlider 0 4 3027 35 UserVertexSlider::~UserVertexSlider 0 0 0
42
UserVertexSlider::~UserVertexSlider(void);
2852 19 UserVertexTransform 0 4 3028 40 UserVertexTransform::UserVertexTransform 0 1 1460 232
////////////////////////////////////////////////////////////////////
// Function: UserVertexTransform::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
75
UserVertexTransform::UserVertexTransform(basic_string< char > const &name);
2853 8 get_name 0 4 3028 29 UserVertexTransform::get_name 0 1 1461 806
// Filename: userVertexTransform.I
// Created by: drose (24Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: UserVertexTransform::get_name
// Access: Published
// Description: Returns the name passed to the constructor.
// Completely arbitrary.
////////////////////////////////////////////////////////////////////
77
inline basic_string< char > const &UserVertexTransform::get_name(void) const;
2854 10 set_matrix 0 4 3028 31 UserVertexTransform::set_matrix 0 1 1462 259
////////////////////////////////////////////////////////////////////
// Function: UserVertexTransform::set_matrix
// Access: Published
// Description: Stores the indicated matrix.
////////////////////////////////////////////////////////////////////
69
inline void UserVertexTransform::set_matrix(LMatrix4f const &matrix);
2855 14 get_class_type 0 4 3028 35 UserVertexTransform::get_class_type 0 1 1463 0
60
static TypeHandle UserVertexTransform::get_class_type(void);
2856 20 ~UserVertexTransform 0 4 3028 41 UserVertexTransform::~UserVertexTransform 0 0 0
48
UserVertexTransform::~UserVertexTransform(void);
2857 17 upcast_to_Texture 0 12 3029 31 VideoTexture::upcast_to_Texture 0 1 1468 35
upcast from VideoTexture to Texture
47
Texture *VideoTexture::upcast_to_Texture(void);
2858 24 downcast_to_VideoTexture 0 12 3001 33 Texture::downcast_to_VideoTexture 0 1 1469 37
downcast from Texture to VideoTexture
54
VideoTexture *Texture::downcast_to_VideoTexture(void);
2859 23 upcast_to_AnimInterface 0 12 3029 37 VideoTexture::upcast_to_AnimInterface 0 1 1470 41
upcast from VideoTexture to AnimInterface
59
AnimInterface *VideoTexture::upcast_to_AnimInterface(void);
2860 24 downcast_to_VideoTexture 0 12 3030 39 AnimInterface::downcast_to_VideoTexture 0 1 1471 43
downcast from AnimInterface to VideoTexture
60
VideoTexture *AnimInterface::downcast_to_VideoTexture(void);
2861 18 get_keep_ram_image 0 6 3029 32 VideoTexture::get_keep_ram_image 0 1 1464 482
////////////////////////////////////////////////////////////////////
// Function: VideoTexture::get_keep_ram_image
// Access: Published, Virtual
// Description: Returns the flag that indicates whether this Texture
// is eligible to have its main RAM copy of the texture
// memory dumped when the texture is prepared for
// rendering. See set_keep_ram_image().
////////////////////////////////////////////////////////////////////
58
virtual bool VideoTexture::get_keep_ram_image(void) const;
2862 15 get_video_width 0 4 3029 29 VideoTexture::get_video_width 0 1 1465 951
// Filename: videoTexture.I
// Created by: drose (21Sep05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VideoTexture::get_video_width
// Access: Published
// Description: Returns the width in texels of the source video
// stream. This is not necessarily the width of the
// actual texture, since the texture may have been
// expanded to raise it to a power of 2.
////////////////////////////////////////////////////////////////////
53
inline int VideoTexture::get_video_width(void) const;
2863 16 get_video_height 0 4 3029 30 VideoTexture::get_video_height 0 1 1466 466
////////////////////////////////////////////////////////////////////
// Function: VideoTexture::get_video_height
// Access: Published
// Description: Returns the height in texels of the source video
// stream. This is not necessarily the height of the
// actual texture, since the texture may have been
// expanded to raise it to a power of 2.
////////////////////////////////////////////////////////////////////
54
inline int VideoTexture::get_video_height(void) const;
2864 14 get_class_type 0 4 3029 28 VideoTexture::get_class_type 0 1 1467 0
53
static TypeHandle VideoTexture::get_class_type(void);
2865 13 ~VideoTexture 0 4 3029 27 VideoTexture::~VideoTexture 0 0 0
34
VideoTexture::~VideoTexture(void);
2866 23 upcast_to_BufferContext 0 12 3031 44 VertexBufferContext::upcast_to_BufferContext 0 1 1477 48
upcast from VertexBufferContext to BufferContext
66
BufferContext *VertexBufferContext::upcast_to_BufferContext(void);
2867 31 downcast_to_VertexBufferContext 0 12 2982 46 BufferContext::downcast_to_VertexBufferContext 0 1 1478 50
downcast from BufferContext to VertexBufferContext
74
VertexBufferContext *BufferContext::downcast_to_VertexBufferContext(void);
2868 25 upcast_to_AdaptiveLruPage 0 12 3031 46 VertexBufferContext::upcast_to_AdaptiveLruPage 0 1 1479 50
upcast from VertexBufferContext to AdaptiveLruPage
70
AdaptiveLruPage *VertexBufferContext::upcast_to_AdaptiveLruPage(void);
2869 31 downcast_to_VertexBufferContext 0 12 2938 48 AdaptiveLruPage::downcast_to_VertexBufferContext 0 1 1480 52
downcast from AdaptiveLruPage to VertexBufferContext
76
VertexBufferContext *AdaptiveLruPage::downcast_to_VertexBufferContext(void);
2870 8 get_data 0 4 3031 29 VertexBufferContext::get_data 0 1 1472 300
////////////////////////////////////////////////////////////////////
// Function: VertexBufferContext::get_data
// Access: Public
// Description: Returns the pointer to the client-side array data
// object.
////////////////////////////////////////////////////////////////////
70
inline GeomVertexArrayData *VertexBufferContext::get_data(void) const;
2871 12 changed_size 0 4 3031 33 VertexBufferContext::changed_size 0 1 1473 334
////////////////////////////////////////////////////////////////////
// Function: VertexBufferContext::changed_size
// Access: Public
// Description: Returns true if the data has changed size since the
// last time mark_loaded() was called.
////////////////////////////////////////////////////////////////////
93
inline bool VertexBufferContext::changed_size(GeomVertexArrayDataHandle const *reader) const;
2872 18 changed_usage_hint 0 4 3031 39 VertexBufferContext::changed_usage_hint 0 1 1474 350
////////////////////////////////////////////////////////////////////
// Function: VertexBufferContext::changed_usage_hint
// Access: Public
// Description: Returns true if the data has changed its usage hint
// since the last time mark_loaded() was called.
////////////////////////////////////////////////////////////////////
99
inline bool VertexBufferContext::changed_usage_hint(GeomVertexArrayDataHandle const *reader) const;
2873 12 was_modified 0 4 3031 33 VertexBufferContext::was_modified 0 1 1475 335
////////////////////////////////////////////////////////////////////
// Function: VertexBufferContext::was_modified
// Access: Public
// Description: Returns true if the data has been modified since the
// last time mark_loaded() was called.
////////////////////////////////////////////////////////////////////
93
inline bool VertexBufferContext::was_modified(GeomVertexArrayDataHandle const *reader) const;
2874 14 get_class_type 0 4 3031 35 VertexBufferContext::get_class_type 0 1 1476 0
60
static TypeHandle VertexBufferContext::get_class_type(void);
2875 20 ~VertexBufferContext 0 4 3031 41 VertexBufferContext::~VertexBufferContext 0 0 0
48
VertexBufferContext::~VertexBufferContext(void);
2876 17 TextureCollection 0 4 3032 36 TextureCollection::TextureCollection 0 3 1481 1482 1483 923
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::Constructor
// Access: Published
// Description: This special constructor accepts a Python list of
// Textures. Since this constructor accepts a generic
// PyObject *, it should be the last constructor listed
// in the class record.
////////////////////////////////////////////////////////////////////
186
TextureCollection::TextureCollection(void);
TextureCollection::TextureCollection(TextureCollection const &copy);
TextureCollection::TextureCollection(PyObject *self, PyObject *sequence);
2877 10 operator = 0 4 3032 29 TextureCollection::operator = 0 1 1484 242
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
66
void TextureCollection::operator =(TextureCollection const &copy);
2878 18 ~TextureCollection 0 4 3032 37 TextureCollection::~TextureCollection 0 0 721
// Filename: textureCollection.I
// Created by: drose (16Mar02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::Destructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
51
inline TextureCollection::~TextureCollection(void);
2879 10 __reduce__ 0 4 3032 29 TextureCollection::__reduce__ 0 1 1485 327
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::__reduce__
// Access: Published
// Description: This special Python method is implement to provide
// support for the pickle module.
////////////////////////////////////////////////////////////////////
62
PyObject *TextureCollection::__reduce__(PyObject *self) const;
2880 11 add_texture 0 4 3032 30 TextureCollection::add_texture 0 1 1486 282
// HAVE_PYTHON
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::add_texture
// Access: Published
// Description: Adds a new Texture to the collection.
////////////////////////////////////////////////////////////////////
54
void TextureCollection::add_texture(Texture *texture);
2881 14 remove_texture 0 4 3032 33 TextureCollection::remove_texture 0 1 1487 406
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::remove_texture
// Access: Published
// Description: Removes the indicated Texture from the collection.
// Returns true if the texture was removed, false if it was
// not a member of the collection.
////////////////////////////////////////////////////////////////////
57
bool TextureCollection::remove_texture(Texture *texture);
2882 17 add_textures_from 0 4 3032 36 TextureCollection::add_textures_from 0 1 1488 482
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::add_textures_from
// Access: Published
// Description: Adds all the Textures indicated in the other
// collection to this texture. The other textures are simply
// appended to the end of the textures in this list;
// duplicates are not automatically removed.
////////////////////////////////////////////////////////////////////
74
void TextureCollection::add_textures_from(TextureCollection const &other);
2883 20 remove_textures_from 0 4 3032 39 TextureCollection::remove_textures_from 0 1 1489 336
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::remove_textures_from
// Access: Published
// Description: Removes from this collection all of the Textures
// listed in the other collection.
////////////////////////////////////////////////////////////////////
77
void TextureCollection::remove_textures_from(TextureCollection const &other);
2884 25 remove_duplicate_textures 0 4 3032 44 TextureCollection::remove_duplicate_textures 0 1 1490 473
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::remove_duplicate_textures
// Access: Published
// Description: Removes any duplicate entries of the same Textures
// on this collection. If a Texture appears multiple
// times, the first appearance is retained; subsequent
// appearances are removed.
////////////////////////////////////////////////////////////////////
56
void TextureCollection::remove_duplicate_textures(void);
2885 11 has_texture 0 4 3032 30 TextureCollection::has_texture 0 1 1491 329
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::has_texture
// Access: Published
// Description: Returns true if the indicated Texture appears in
// this collection, false otherwise.
////////////////////////////////////////////////////////////////////
60
bool TextureCollection::has_texture(Texture *texture) const;
2886 5 clear 0 4 3032 24 TextureCollection::clear 0 1 1492 265
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::clear
// Access: Published
// Description: Removes all Textures from the collection.
////////////////////////////////////////////////////////////////////
36
void TextureCollection::clear(void);
2887 12 find_texture 0 4 3032 31 TextureCollection::find_texture 0 1 1493 372
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::find_texture
// Access: Published
// Description: Returns the texture in the collection with the
// indicated name, if any, or NULL if no texture has
// that name.
////////////////////////////////////////////////////////////////////
81
Texture *TextureCollection::find_texture(basic_string< char > const &name) const;
2888 16 get_num_textures 0 4 3032 35 TextureCollection::get_num_textures 0 1 1494 284
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::get_num_textures
// Access: Published
// Description: Returns the number of Textures in the collection.
////////////////////////////////////////////////////////////////////
52
int TextureCollection::get_num_textures(void) const;
2889 11 get_texture 0 4 3032 30 TextureCollection::get_texture 0 1 1495 272
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::get_texture
// Access: Published
// Description: Returns the nth Texture in the collection.
////////////////////////////////////////////////////////////////////
57
Texture *TextureCollection::get_texture(int index) const;
2890 11 operator [] 0 4 3032 30 TextureCollection::operator [] 0 1 1496 392
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::operator []
// Access: Published
// Description: Returns the nth Texture in the collection. This is
// the same as get_texture(), but it may be a more
// convenient way to access it.
////////////////////////////////////////////////////////////////////
57
Texture *TextureCollection::operator [](int index) const;
2891 4 size 0 4 3032 23 TextureCollection::size 0 1 1497 336
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::size
// Access: Published
// Description: Returns the number of textures in the collection. This
// is the same thing as get_num_textures().
////////////////////////////////////////////////////////////////////
40
int TextureCollection::size(void) const;
2892 11 operator += 0 4 3032 30 TextureCollection::operator += 0 1 1498 278
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::operator +=
// Access: Published
// Description: Appends the other list onto the end of this one.
////////////////////////////////////////////////////////////////////
75
inline void TextureCollection::operator +=(TextureCollection const &other);
2893 10 operator + 0 4 3032 29 TextureCollection::operator + 0 1 1499 322
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::operator +
// Access: Published
// Description: Returns a TextureCollection representing the
// concatenation of the two lists.
////////////////////////////////////////////////////////////////////
93
inline TextureCollection TextureCollection::operator +(TextureCollection const &other) const;
2894 6 append 0 4 3032 25 TextureCollection::append 0 1 1500 450
// Method names to satisfy Python's conventions.
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::append
// Access: Published
// Description: Adds a new Texture to the collection. This method
// duplicates the add_texture() method; it is provided to
// satisfy Python's naming convention.
////////////////////////////////////////////////////////////////////
56
inline void TextureCollection::append(Texture *texture);
2895 6 extend 0 4 3032 25 TextureCollection::extend 0 1 1501 451
// Method names to satisfy Python's conventions.
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::extend
// Access: Published
// Description: Appends the other list onto the end of this one.
// This method duplicates the += operator; it is
// provided to satisfy Python's naming convention.
////////////////////////////////////////////////////////////////////
70
inline void TextureCollection::extend(TextureCollection const &other);
2896 6 output 0 4 3032 25 TextureCollection::output 0 1 1502 334
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::output
// Access: Published
// Description: Writes a brief one-line description of the
// TextureCollection to the indicated output stream.
////////////////////////////////////////////////////////////////////
51
void TextureCollection::output(ostream &out) const;
2897 5 write 0 4 3032 24 TextureCollection::write 0 2 1503 1504 338
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::write
// Access: Published
// Description: Writes a complete multi-line description of the
// TextureCollection to the indicated output stream.
////////////////////////////////////////////////////////////////////
74
void TextureCollection::write(ostream &out, int indent_level = (0)) const;
2898 11 has_texture 0 4 3033 24 TexturePool::has_texture 0 1 1505 874
// Filename: texturePool.I
// Created by: drose (26Apr00)
// Updated by: fperazzi, PandaSE(29Apr10) (added load_2d_texture_array)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TexturePool::has_texture
// Access: Published, Static
// Description: Returns true if the texture has ever been loaded,
// false otherwise.
////////////////////////////////////////////////////////////////////
70
static inline bool TexturePool::has_texture(Filename const &filename);
2899 14 verify_texture 0 4 3033 27 TexturePool::verify_texture 0 1 1506 611
////////////////////////////////////////////////////////////////////
// Function: TexturePool::verify_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns true to indicate
// success, or false to indicate failure. If this
// returns true, it is guaranteed that a subsequent call
// to load_texture() with the same texture name will
// return a valid Texture pointer.
////////////////////////////////////////////////////////////////////
73
static inline bool TexturePool::verify_texture(Filename const &filename);
2900 12 load_texture 0 4 3033 25 TexturePool::load_texture 0 9 1507 1508 1509 1510 1511 1512 1513 1514 1515 1673
////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns the new texture.
// If a texture with the same filename was previously
// loaded, returns that one instead. If the texture
// file cannot be found, returns NULL.
//
// If read_mipmaps is true, the filename should contain
// a hash mark ('#'), which will be filled in with the
// mipmap level number; and the texture will be defined
// with a series of images, one for each mipmap level.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns the new texture.
// If a texture with the same filename was previously
// loaded, returns that one instead. If the texture
// file cannot be found, returns NULL.
//
// If read_mipmaps is true, both filenames should
// contain a hash mark ('#'), which will be filled in
// with the mipmap level number; and the texture will be
// defined with a series of images, two for each mipmap
// level.
////////////////////////////////////////////////////////////////////
415
static inline Texture *TexturePool::load_texture(Filename const &filename, int primary_file_num_channels = (0), bool read_mipmaps = (0), LoaderOptions const &options = ((())));
static inline Texture *TexturePool::load_texture(Filename const &filename, Filename const &alpha_filename, int primary_file_num_channels = (0), int alpha_file_channel = (0), bool read_mipmaps = (0), LoaderOptions const &options = ((())));
2901 15 load_3d_texture 0 4 3033 28 TexturePool::load_3d_texture 0 3 1516 1517 1518 833
////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_3d_texture
// Access: Published, Static
// Description: Loads a 3-D texture that is specified with a series
// of n pages, all numbered in sequence, and beginning
// with index 0. The filename should include a sequence
// of one or more hash characters ("#") which will be
// filled in with the index number of each level.
//
// If read_mipmaps is true, the filename should contain
// an additional hash mark. The first hash mark will be
// filled in with the mipmap level number, and the
// second with the index number of each 3-d level.
////////////////////////////////////////////////////////////////////
150
static inline Texture *TexturePool::load_3d_texture(Filename const &filename_pattern, bool read_mipmaps = (0), LoaderOptions const &options = ((())));
2902 21 load_2d_texture_array 0 4 3033 34 TexturePool::load_2d_texture_array 0 3 1519 1520 1521 845
////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_2d_texture_array
// Access: Published, Static
// Description: Loads a 2-D texture array that is specified with a series
// of n pages, all numbered in sequence, and beginning
// with index 0. The filename should include a sequence
// of one or more hash characters ("#") which will be
// filled in with the index number of each level.
//
// If read_mipmaps is true, the filename should contain
// an additional hash mark. The first hash mark will be
// filled in with the mipmap level number, and the
// second with the index number of each 2-d level.
////////////////////////////////////////////////////////////////////
156
static inline Texture *TexturePool::load_2d_texture_array(Filename const &filename_pattern, bool read_mipmaps = (0), LoaderOptions const &options = ((())));
2903 13 load_cube_map 0 4 3033 26 TexturePool::load_cube_map 0 3 1522 1523 1524 798
////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_cube_map
// Access: Published, Static
// Description: Loads a cube map texture that is specified with a
// series of 6 pages, numbered 0 through 5. The
// filename should include a sequence of one or more
// hash characters ("#") which will be filled in with
// the index number of each pagee.
//
// If read_mipmaps is true, the filename should contain
// an additional hash mark. The first hash mark will be
// filled in with the mipmap level number, and the
// second with the face number, 0 through 5.
////////////////////////////////////////////////////////////////////
148
static inline Texture *TexturePool::load_cube_map(Filename const &filename_pattern, bool read_mipmaps = (0), LoaderOptions const &options = ((())));
2904 26 get_normalization_cube_map 0 4 3033 39 TexturePool::get_normalization_cube_map 0 1 1525 619
////////////////////////////////////////////////////////////////////
// Function: TexturePool::get_normalization_cube_map
// Access: Published, Static
// Description: Returns a standard Texture object that has been
// created with
// Texture::generate_normalization_cube_map(). This
// Texture may be shared by any application code
// requiring a normalization cube map. It will be at
// least as large as the specified size, though it may
// be larger.
////////////////////////////////////////////////////////////////////
73
static inline Texture *TexturePool::get_normalization_cube_map(int size);
2905 19 get_alpha_scale_map 0 4 3033 32 TexturePool::get_alpha_scale_map 0 1 1526 598
////////////////////////////////////////////////////////////////////
// Function: TexturePool::get_alpha_scale_map
// Access: Published, Static
// Description: Returns a standard Texture object that has been
// created with Texture::generate_alpha_scale_map().
//
// This Texture object is used internally by Panda to
// apply an alpha scale to an object (instead of munging
// its vertices) when gsg->get_alpha_scale_via_texture()
// returns true.
////////////////////////////////////////////////////////////////////
62
static inline Texture *TexturePool::get_alpha_scale_map(void);
2906 11 add_texture 0 4 3033 24 TexturePool::add_texture 0 1 1527 509
////////////////////////////////////////////////////////////////////
// Function: TexturePool::add_texture
// Access: Published, Static
// Description: Adds the indicated already-loaded texture to the
// pool. The texture must have a filename set for its
// name. The texture will always replace any
// previously-loaded texture in the pool that had the
// same filename.
////////////////////////////////////////////////////////////////////
62
static inline void TexturePool::add_texture(Texture *texture);
2907 15 release_texture 0 4 3033 28 TexturePool::release_texture 0 1 1528 733
////////////////////////////////////////////////////////////////////
// Function: TexturePool::release_texture
// Access: Published, Static
// Description: Removes the indicated texture from the pool,
// indicating it will never be loaded again; the texture
// may then be freed. If this function is never called,
// a reference count will be maintained on every texture
// every loaded, and textures will never be freed.
//
// The texture's name should not have been changed
// during its lifetime, or this function may fail to
// locate it in the pool.
////////////////////////////////////////////////////////////////////
66
static inline void TexturePool::release_texture(Texture *texture);
2908 20 release_all_textures 0 4 3033 33 TexturePool::release_all_textures 0 1 1529 333
////////////////////////////////////////////////////////////////////
// Function: TexturePool::release_all_textures
// Access: Published, Static
// Description: Releases all textures in the pool and restores the
// pool to the empty state.
////////////////////////////////////////////////////////////////////
59
static inline void TexturePool::release_all_textures(void);
2909 6 rehash 0 4 3033 19 TexturePool::rehash 0 1 1530 378
////////////////////////////////////////////////////////////////////
// Function: TexturePool::rehash
// Access: Published, Static
// Description: Should be called when the model-path changes, to blow
// away the cache of texture pathnames found along the
// model-path.
////////////////////////////////////////////////////////////////////
45
static inline void TexturePool::rehash(void);
2910 15 garbage_collect 0 4 3033 28 TexturePool::garbage_collect 0 1 1531 480
////////////////////////////////////////////////////////////////////
// Function: TexturePool::garbage_collect
// Access: Published, Static
// Description: Releases only those textures in the pool that have a
// reference count of exactly 1; i.e. only those
// textures that are not being used outside of the pool.
// Returns the number of textures released.
////////////////////////////////////////////////////////////////////
53
static inline int TexturePool::garbage_collect(void);
2911 13 list_contents 0 4 3033 26 TexturePool::list_contents 0 2 1532 1533 603
////////////////////////////////////////////////////////////////////
// Function: TexturePool::list_contents
// Access: Published, Static
// Description: Lists the contents of the texture pool to the
// indicated output stream.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TexturePool::list_contents
// Access: Published, Static
// Description: Lists the contents of the texture pool to cout
////////////////////////////////////////////////////////////////////
113
static inline void TexturePool::list_contents(ostream &out);
static inline void TexturePool::list_contents(void);
2912 12 find_texture 0 4 3033 25 TexturePool::find_texture 0 1 1534 449
////////////////////////////////////////////////////////////////////
// Function: TexturePool::find_texture
// Access: Published, Static
// Description: Returns the first texture found in the pool that
// matches the indicated name (which may contain
// wildcards). Returns the texture if it is found, or
// NULL if it is not.
////////////////////////////////////////////////////////////////////
83
static inline Texture *TexturePool::find_texture(basic_string< char > const &name);
2913 17 find_all_textures 0 4 3033 30 TexturePool::find_all_textures 0 2 1535 1536 382
////////////////////////////////////////////////////////////////////
// Function: TexturePool::find_all_textures
// Access: Published, Static
// Description: Returns the set of all textures found in the pool
// that match the indicated name (which may contain
// wildcards).
////////////////////////////////////////////////////////////////////
105
static inline TextureCollection TexturePool::find_all_textures(basic_string< char > const &name = ("*"));
2914 22 set_fake_texture_image 0 4 3033 35 TexturePool::set_fake_texture_image 0 1 1537 355
////////////////////////////////////////////////////////////////////
// Function: TexturePool::set_fake_texture_image
// Access: Published, Static
// Description: Sets a bogus filename that will be loaded in lieu of
// any textures requested from this point on.
////////////////////////////////////////////////////////////////////
81
static inline void TexturePool::set_fake_texture_image(Filename const &filename);
2915 24 clear_fake_texture_image 0 4 3033 37 TexturePool::clear_fake_texture_image 0 1 1538 330
////////////////////////////////////////////////////////////////////
// Function: TexturePool::clear_fake_texture_image
// Access: Published, Static
// Description: Restores normal behavior of loading the textures
// actually requested.
////////////////////////////////////////////////////////////////////
63
static inline void TexturePool::clear_fake_texture_image(void);
2916 22 has_fake_texture_image 0 4 3033 35 TexturePool::has_fake_texture_image 0 1 1539 353
////////////////////////////////////////////////////////////////////
// Function: TexturePool::has_fake_texture_image
// Access: Published, Static
// Description: Returns true if fake_texture_image mode has been
// enabled, false if we are in the normal mode.
////////////////////////////////////////////////////////////////////
61
static inline bool TexturePool::has_fake_texture_image(void);
2917 22 get_fake_texture_image 0 4 3033 35 TexturePool::get_fake_texture_image 0 1 1540 349
////////////////////////////////////////////////////////////////////
// Function: TexturePool::get_fake_texture_image
// Access: Published, Static
// Description: Returns the filename that was specified with a
// previous call to set_fake_texture_image().
////////////////////////////////////////////////////////////////////
72
static inline Filename const &TexturePool::get_fake_texture_image(void);
2918 12 make_texture 0 4 3033 25 TexturePool::make_texture 0 1 1541 452
////////////////////////////////////////////////////////////////////
// Function: TexturePool::make_texture
// Access: Published, Static
// Description: Creates a new Texture object of the appropriate type
// for the indicated filename extension, according to
// the types that have been registered via
// register_texture_type().
////////////////////////////////////////////////////////////////////
100
static inline PointerTo< Texture > TexturePool::make_texture(basic_string< char > const &extension);
2919 5 write 0 4 3033 18 TexturePool::write 0 1 1542 345
////////////////////////////////////////////////////////////////////
// Function: TexturePool::write
// Access: Published, Static
// Description: Lists the contents of the texture pool to the
// indicated output stream.
// For debugging.
////////////////////////////////////////////////////////////////////
45
static void TexturePool::write(ostream &out);
2920 12 ~TexturePool 0 4 3033 25 TexturePool::~TexturePool 0 0 0
32
TexturePool::~TexturePool(void);
2921 10 get_x_size 0 4 3034 25 TexturePeeker::get_x_size 0 1 1543 449
////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::get_x_size
// Access: Published
// Description: Returns the width of the texture image that is
// contributing to the TexturePeeker's information.
// This may be either the Texture's full width, or its
// simple ram image's width.
////////////////////////////////////////////////////////////////////
49
inline int TexturePeeker::get_x_size(void) const;
2922 10 get_y_size 0 4 3034 25 TexturePeeker::get_y_size 0 1 1544 452
////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::get_y_size
// Access: Published
// Description: Returns the height of the texture image that is
// contributing to the TexturePeeker's information.
// This may be either the Texture's full height, or its
// simple ram image's height.
////////////////////////////////////////////////////////////////////
49
inline int TexturePeeker::get_y_size(void) const;
2923 10 get_z_size 0 4 3034 25 TexturePeeker::get_z_size 0 1 1545 337
////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::get_z_size
// Access: Published
// Description: Returns the depth of the texture image that is
// contributing to the TexturePeeker's information.
////////////////////////////////////////////////////////////////////
49
inline int TexturePeeker::get_z_size(void) const;
2924 6 lookup 0 4 3034 21 TexturePeeker::lookup 0 2 1546 1547 1223
////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::lookup
// Access: Published
// Description: Fills "color" with the RGBA color of the texel at
// point (u, v).
//
// The texel color is determined via nearest-point
// sampling (no filtering of adjacent pixels),
// regardless of the filter type associated with the
// texture. u, v, and w will wrap around regardless of
// the texture's wrap mode.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::lookup
// Access: Published
// Description: Fills "color" with the RGBA color of the texel at
// point (u, v, w).
//
// The texel color is determined via nearest-point
// sampling (no filtering of adjacent pixels),
// regardless of the filter type associated with the
// texture. u, v, and w will wrap around regardless of
// the texture's wrap mode.
////////////////////////////////////////////////////////////////////
150
void TexturePeeker::lookup(LVecBase4f &color, float u, float v) const;
void TexturePeeker::lookup(LVecBase4f &color, float u, float v, float w) const;
2925 11 filter_rect 0 4 3034 26 TexturePeeker::filter_rect 0 2 1548 1549 1128
////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::filter_rect
// Access: Published
// Description: Fills "color" with the average RGBA color of the
// texels within the rectangle defined by the specified
// coordinate range.
//
// The texel color is linearly filtered over the entire
// region. u, v, and w will wrap around regardless of
// the texture's wrap mode.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::filter_rect
// Access: Published
// Description: Fills "color" with the average RGBA color of the
// texels within the rectangle defined by the specified
// coordinate range.
//
// The texel color is linearly filtered over the entire
// region. u, v, and w will wrap around regardless of
// the texture's wrap mode.
////////////////////////////////////////////////////////////////////
245
void TexturePeeker::filter_rect(LVecBase4f &color, float min_u, float min_v, float max_u, float max_v) const;
void TexturePeeker::filter_rect(LVecBase4f &color, float min_u, float min_v, float min_w, float max_u, float max_v, float max_w) const;
2926 14 ~TexturePeeker 0 4 3034 29 TexturePeeker::~TexturePeeker 0 0 0
36
TexturePeeker::~TexturePeeker(void);
2927 9 get_stage 0 4 3035 27 TextureStagePool::get_stage 0 1 1550 1552
// Filename: textureStagePool.I
// Created by: drose (03May10)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::get_stage
// Access: Public, Static
// Description: Returns a TextureStage pointer that represents the
// same TextureStage described by temp, except that it is a
// shared pointer.
//
// Each call to get_stage() passing an equivalent
// TextureStage pointer will return the same shared pointer.
//
// If you modify the shared pointer, it will
// automatically disassociate it from the pool.
//
// Also, the return value may be a different pointer
// than that passed in, or it may be the same pointer.
// In either case, the passed in pointer has now been
// sacrificed to the greater good and should not be used
// again (like any other PointerTo, it will be freed
// when the last reference count is removed).
////////////////////////////////////////////////////////////////////
76
static inline TextureStage *TextureStagePool::get_stage(TextureStage *temp);
2928 13 release_stage 0 4 3035 31 TextureStagePool::release_stage 0 1 1551 288
////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::release_stage
// Access: Published, Static
// Description: Removes the indicated TextureStage from the pool.
////////////////////////////////////////////////////////////////////
71
static inline void TextureStagePool::release_stage(TextureStage *temp);
2929 18 release_all_stages 0 4 3035 36 TextureStagePool::release_all_stages 0 1 1552 341
////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::release_all_stages
// Access: Published, Static
// Description: Releases all TextureStages in the pool and restores the
// pool to the empty state.
////////////////////////////////////////////////////////////////////
62
static inline void TextureStagePool::release_all_stages(void);
2930 8 set_mode 0 4 3035 26 TextureStagePool::set_mode 0 1 1553 847
////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::set_mode
// Access: Published, Static
// Description: Specifies the fundamental operating mode of the
// TextureStagePool.
//
// If this is M_none, each call to get_stage() returns
// the same TextureStage pointer that was passed in (the
// pool is effectively disabled). If this is M_name,
// each call to get_stage() returns the last
// TextureStage passed in with the same name, whether it
// has different properties or not. If this is
// M_unique, then each call to get_stage() returns only
// TextureStages with identical properties.
////////////////////////////////////////////////////////////////////
75
static inline void TextureStagePool::set_mode(TextureStagePool::Mode mode);
2931 8 get_mode 0 4 3035 26 TextureStagePool::get_mode 0 1 1554 331
////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::get_mode
// Access: Published, Static
// Description: Returns the fundamental operating mode of the
// TextureStagePool. See set_mode().
////////////////////////////////////////////////////////////////////
70
static inline TextureStagePool::Mode TextureStagePool::get_mode(void);
2932 15 garbage_collect 0 4 3035 33 TextureStagePool::garbage_collect 0 1 1555 497
////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::garbage_collect
// Access: Public, Static
// Description: Releases only those TextureStages in the pool that have a
// reference count of exactly 1; i.e. only those
// TextureStages that are not being used outside of the pool.
// Returns the number of TextureStages released.
////////////////////////////////////////////////////////////////////
58
static inline int TextureStagePool::garbage_collect(void);
2933 13 list_contents 0 4 3035 31 TextureStagePool::list_contents 0 1 1556 328
////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::list_contents
// Access: Public, Static
// Description: Lists the contents of the TextureStage pool to the
// indicated output stream.
////////////////////////////////////////////////////////////////////
65
static inline void TextureStagePool::list_contents(ostream &out);
2934 5 write 0 4 3035 23 TextureStagePool::write 0 1 1557 323
////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::write
// Access: Published, Static
// Description: Lists the contents of the TextureStage pool to the
// indicated output stream.
////////////////////////////////////////////////////////////////////
50
static void TextureStagePool::write(ostream &out);
2935 17 ~TextureStagePool 0 4 3035 35 TextureStagePool::~TextureStagePool 0 0 0
42
TextureStagePool::~TextureStagePool(void);
1557
1 14 Dtool_qQJqxyGj 0 7 3 3039 1559 14 Dtool_qQJqxyGj 224 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 name 1 3037 8 max_size 1 3038
2 14 Dtool_qQJqXnUx 0 6 5 3038 0 14 Dtool_qQJqXnUx 797 // Filename: adaptiveLru.I
// Created by: drose (03Sep08)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::get_total_size
// Access: Published
// Description: Returns the total size of all objects currently
// active on the LRU.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3040
3 14 Dtool_qQJqeXT1 0 6 6 3038 0 14 Dtool_qQJqeXT1 319 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::get_max_size
// Access: Published
// Description: Returns the max size of all objects that are allowed
// to be active on the LRU.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3040
4 14 Dtool_qQJqhriC 0 4 7 3042 0 14 Dtool_qQJqhriC 385 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::set_max_size
// Access: Published
// Description: Changes the max size of all objects that are allowed
// to be active on the LRU.
//
// If the size is (size_t)-1, there is no limit.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3039 8 max_size 1 3038
5 14 Dtool_qQJqvTZs 0 6 8 3038 0 14 Dtool_qQJqvTZs 339 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::count_active_size
// Access: Published
// Description: Returns the total size of the pages that were
// enqueued since the last call to begin_epoch().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3040
6 14 Dtool_qQJqpDj_ 0 4 9 3042 0 14 Dtool_qQJqpDj_ 277 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::consider_evict
// Access: Published
// Description: Evicts a sequence of objects if the queue is full.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3039
7 14 Dtool_qQJqoyK_ 0 4 10 3042 0 14 Dtool_qQJqoyK_ 373 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::evict_to
// Access: Published
// Description: Evicts a sequence of objects until the queue fits
// within the indicated target size, regardless of its
// normal max size.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3039 11 target_size 1 3038
8 14 Dtool_qQJqsjHe 0 4 11 3042 0 14 Dtool_qQJqsjHe 443 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::begin_epoch
// Access: Published
// Description: Marks the end of the previous epoch and the beginning
// of the next one. This will evict any objects that
// are pending eviction, and also update any internal
// bookkeeping.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3039
9 14 Dtool_qQJqUtAt 0 6 12 3043 0 14 Dtool_qQJqUtAt 365 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::validate
// Access: Published
// Description: Checks that the LRU is internally self-consistent.
// Returns true if successful, false if there is some
// problem.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3039
10 14 Dtool_qQJqbxSr 0 4 13 3042 0 14 Dtool_qQJqbxSr 219 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3040 3 out 1 3044
11 14 Dtool_qQJqO1xT 0 4 14 3042 0 14 Dtool_qQJqO1xT 227 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::write
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3040 3 out 1 3044 12 indent_level 1 3046
12 14 Dtool_qQJqTzQj 0 4 15 3042 0 14 Dtool_qQJqTzQj 314 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::set_weight
// Access: Published
// Description: Specifies the weight value used to compute the
// exponential moving average.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3039 6 weight 1 3047
13 14 Dtool_qQJqbvB0 0 6 16 3047 0 14 Dtool_qQJqbvB0 312 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::get_weight
// Access: Published
// Description: Returns the weight value used to compute the
// exponential moving average.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3040
14 14 Dtool_qQJqq5Z4 0 4 17 3042 0 14 Dtool_qQJqq5Z4 486 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::set_max_updates_per_frame
// Access: Published
// Description: Specifies the maximum number of pages the AdaptiveLru
// will update each frame. This is a performance
// optimization: keeping this number low limits the
// impact of the AdaptiveLru's adaptive algorithm.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3039 21 max_updates_per_frame 1 3046
15 14 Dtool_qQJqPZ2i 0 6 18 3046 0 14 Dtool_qQJqPZ2i 330 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLru::get_max_updates_per_frame
// Access: Published
// Description: Returns the maximum number of pages the AdaptiveLru
// will update each frame.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3040
16 14 Dtool_qQJqqFXo 0 7 26 3050 1580 14 Dtool_qQJqqFXo 233 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::Copy Constructor
// Access: Protected
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3048
17 14 Dtool_qQJqazFB 0 7 26 3050 1580 14 Dtool_qQJqazFB 228 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::Constructor
// Access: Protected
// Description:
//////////////////////////////////////////////////////////////////// 1 8 lru_size 1 3038
18 14 Dtool_qQJqnYpU 0 6 27 3050 0 14 Dtool_qQJqnYpU 241 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::Copy Assignment Operator
// Access: Protected
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3050 4 copy 1 3048
19 14 Dtool_qQJqBueE 0 6 29 3039 0 14 Dtool_qQJqBueE 335 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::enqueue_lru
// Access: Published
// Description: Returns the LRU that manages this page, or NULL if it
// is not currently managed by any LRU.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3048
20 14 Dtool_qQJqj1mJ 0 4 30 3042 0 14 Dtool_qQJqj1mJ 445 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::enqueue_lru
// Access: Published
// Description: Adds the page to the LRU for the first time, or marks
// it recently-accessed if it has already been added.
//
// If lru is NULL, it means to remove this page from its
// LRU.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3050 3 lru 1 3039
21 14 Dtool_qQJqZq_w 0 4 31 3042 0 14 Dtool_qQJqZq_w 266 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::dequeue_lru
// Access: Published
// Description: Removes the page from its AdaptiveLru.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3050
22 14 Dtool_qQJqiZg4 0 4 32 3042 0 14 Dtool_qQJqiZg4 485 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::mark_used_lru
// Access: Published
// Description: To be called when the page is used; this will move it
// to the tail of the AdaptiveLru queue it is already on.
//
// This method is const because it's not technically
// modifying the contents of the page itself.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3048
23 14 Dtool_qQJqoKjs 0 4 32 3042 0 14 Dtool_qQJqoKjs 348 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::mark_used_lru
// Access: Published
// Description: To be called when the page is used; this will move it
// to the tail of the specified AdaptiveLru queue.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3050 3 lru 1 3039
24 14 Dtool_qQJqdAA_ 0 6 33 3038 0 14 Dtool_qQJqdAA_ 320 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::get_lru_size
// Access: Published
// Description: Returns the size of this page as reported to the LRU,
// presumably in bytes.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3048
25 14 Dtool_qQJqxp0u 0 4 34 3042 0 14 Dtool_qQJqxp0u 330 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::set_lru_size
// Access: Published
// Description: Specifies the size of this page, presumably in bytes,
// although any unit is possible.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3050 8 lru_size 1 3038
26 14 Dtool_qQJqtQMW 0 4 35 3042 0 14 Dtool_qQJqtQMW 814 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::evict_lru
// Access: Published, Virtual
// Description: Evicts the page from the LRU. Called internally when
// the LRU determines that it is full. May also be
// called externally when necessary to explicitly evict
// the page.
//
// It is legal for this method to either evict the page
// as requested, do nothing (in which case the eviction
// will be requested again at the next epoch), or
// requeue itself on the tail of the queue (in which
// case the eviction will be requested again much
// later).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3050
27 14 Dtool_qQJqG6th 0 4 36 3042 0 14 Dtool_qQJqG6th 232 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::output
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3048 3 out 1 3044
28 14 Dtool_qQJqPkPo 0 4 37 3042 0 14 Dtool_qQJqPkPo 231 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::write
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3048 3 out 1 3044 12 indent_level 1 3046
29 14 Dtool_qQJqkY_n 0 6 38 3038 0 14 Dtool_qQJqkY_n 375 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::get_num_frames
// Access: Published
// Description: Returns the number of frames since the page was first
// added to its LRU. Returns 0 if it does not have an
// LRU.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3048
30 14 Dtool_qQJqYSeb 0 6 39 3038 0 14 Dtool_qQJqYSeb 386 ////////////////////////////////////////////////////////////////////
// Function: AdaptiveLruPage::get_num_inactive_frames
// Access: Published
// Description: Returns the number of frames since the page was last
// accessed on its LRU. Returns 0 if it does not have
// an LRU.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3048
31 14 Dtool_qQJqGUEb 0 7 50 3051 1602 14 Dtool_qQJqGUEb 735 // Filename: geomVertexAnimationSpec.I
// Created by: drose (29Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 0
32 14 Dtool_qQJqMDwM 0 7 50 3051 1602 14 Dtool_qQJqMDwM 241 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 5 other 1 3052
33 14 Dtool_qQJqwAfZ 0 6 51 3051 0 14 Dtool_qQJqwAfZ 249 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3051 5 other 1 3052
34 14 Dtool_qQJqVYja 0 6 52 2948 0 14 Dtool_qQJqVYja 315 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::get_animation_type
// Access: Published
// Description: Returns the type of animation represented by this
// spec.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3052
35 14 Dtool_qQJq1Mf5 0 6 53 3046 0 14 Dtool_qQJq1Mf5 479 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::get_num_transforms
// Access: Published
// Description: This is only meaningful for animation_type
// AT_hardware. It specifies the maximum number of
// transforms that might be simultaneously applied to
// any one vertex by the data in this format.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3052
36 14 Dtool_qQJqW3oB 0 6 54 3043 0 14 Dtool_qQJqW3oB 529 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::get_indexed_transforms
// Access: Published
// Description: This is only meaningful for animation_type
// AT_hardware. If true, it indicates that the format
// uses indexed animation tables. It is false if each
// vertex will reference the first _num_transforms
// table entries only.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3052
37 14 Dtool_qQJq43Cj 0 4 55 3042 0 14 Dtool_qQJq43Cj 313 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::set_none
// Access: Published
// Description: Specifies that no vertex animation is represented by
// this spec.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3051
38 14 Dtool_qQJqBxbM 0 4 56 3042 0 14 Dtool_qQJqBxbM 419 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::set_panda
// Access: Published
// Description: Specifies that vertex animation is to be performed by
// Panda. This is the most general setting and can
// handle any kind of vertex animation represented.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3051
39 14 Dtool_qQJqlRAp 0 4 57 3042 0 14 Dtool_qQJqlRAp 721 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::set_hardware
// Access: Published
// Description: Specifies that vertex animation is to be performed by
// the graphics hardware (or at least by the graphics
// backend API, which is actually still free to animate
// the vertices on the CPU).
//
// This is only legal if the graphics hardware can
// support the specified limits on number of transforms
// and/or indexed transforms. Also, no current graphics
// API's support morphing.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3051 14 num_transforms 1 3046 18 indexed_transforms 1 3043
40 14 Dtool_qQJqkx4C 0 4 58 3042 0 14 Dtool_qQJqkx4C 231 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexAnimationSpec::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3052 3 out 1 3044
41 14 Dtool_qQJqys3i 0 7 62 3054 0 14 Dtool_qQJqys3i 1307 // Filename: internalName.I
// Created by: masad (15Jul04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: InternalName::make
// Access: Published, Static
// Description: The public interface for constructing an InternalName
// pointer. This will return a new InternalName
// representing the indicated name, if this is the first
// time the particular name has been requested; if the
// name is already in use, it will return the existing
// pointer.
//
// If the string contains the '.' character, the string
// will be divided at the dots and the so-defined
// hierarchy of names will be registered. This is
// handled transparently.
//////////////////////////////////////////////////////////////////// 1 4 name 1 3037
42 14 Dtool_qQJqOYJi 0 7 62 3054 0 14 Dtool_qQJqOYJi 301 ////////////////////////////////////////////////////////////////////
// Function: InternalName::make
// Access: Published, Static
// Description: Make using a string and an integer. Concatenates
// the two.
//////////////////////////////////////////////////////////////////// 2 4 name 1 3037 5 index 1 3046
43 14 Dtool_qQJqyvtN 0 7 63 3054 0 14 Dtool_qQJqyvtN 475 ////////////////////////////////////////////////////////////////////
// Function: InternalName::append
// Access: Published
// Description: Constructs a new InternalName based on this name,
// with the indicated string following it. This is a
// cheaper way to construct a hierarchical name than
// InternalName::make(parent->get_name() + ".basename").
//////////////////////////////////////////////////////////////////// 2 4 this 3 3054 8 basename 1 3037
44 14 Dtool_qQJqxW48 0 7 64 3054 0 14 Dtool_qQJqxW48 328 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_parent
// Access: Published
// Description: Return the parent of this InternalName. All names
// have a parent, except the root name.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3055
45 14 Dtool_qQJqKewZ 0 6 65 3037 0 14 Dtool_qQJqKewZ 320 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_name
// Access: Published
// Description: Returns the complete name represented by the
// InternalName and all of its parents.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3055
46 14 Dtool_qQJqj1zo 0 6 66 3037 0 14 Dtool_qQJqj1zo 293 ////////////////////////////////////////////////////////////////////
// Function: InternalName::join
// Access: Published
// Description: Like get_name, but uses a custom separator instead
// of ".".
//////////////////////////////////////////////////////////////////// 2 4 this 3 3055 3 sep 1 3037
47 14 Dtool_qQJqlDZ2 0 6 67 3037 0 14 Dtool_qQJqlDZ2 404 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_basename
// Access: Published
// Description: Return the name represented by just this particular
// InternalName object, ignoring its parents names.
// This is everything after the rightmost dot.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3055
48 14 Dtool_qQJqUWKQ 0 6 68 3046 0 14 Dtool_qQJqUWKQ 584 ////////////////////////////////////////////////////////////////////
// Function: InternalName::find_ancestor
// Access: Published
// Description: Returns the index of the ancestor with the indicated
// basename, or -1 if no ancestor has that basename.
// Returns 0 if this name has the basename.
//
// This index value may be passed to get_ancestor() or
// get_net_basename() to retrieve more information about
// the indicated name.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3055 8 basename 1 3037
49 14 Dtool_qQJqymmN 0 7 69 3055 0 14 Dtool_qQJqymmN 481 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_ancestor
// Access: Published
// Description: Returns the ancestor with the indicated index number.
// 0 is this name itself, 1 is the name's parent, 2 is
// the parent's parent, and so on. If there are not
// enough ancestors, returns the root InternalName.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3055 1 n 1 3046
50 14 Dtool_qQJqDhts 0 7 70 3055 0 14 Dtool_qQJqDhts 460 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_top
// Access: Published
// Description: Returns the oldest ancestor in the InternalName's
// chain, not counting the root. This will be the first
// name in the string, e.g. "texcoord.foo.bar" will
// return the InternalName "texcoord".
//////////////////////////////////////////////////////////////////// 1 4 this 3 3055
51 14 Dtool_qQJqi8VP 0 6 71 3037 0 14 Dtool_qQJqi8VP 456 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_net_basename
// Access: Published
// Description: Returns the basename of this name prefixed by the
// indicated number of ancestors. 0 is this name's
// basename, 1 is parent.basename, 2 is
// grandparent.parent.basename, and so on.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3055 1 n 1 3046
52 14 Dtool_qQJq1gHV 0 4 72 3042 0 14 Dtool_qQJq1gHV 220 ////////////////////////////////////////////////////////////////////
// Function: InternalName::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3055 3 out 1 3044
53 14 Dtool_qQJqOVm7 0 7 73 3054 0 14 Dtool_qQJqOVm7 438 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_root
// Access: Published, Static
// Description: Returns the standard root InternalName. This is the
// root of all other InternalNames. It has no name
// itself, and it is the only InternalName with no
// parent.
//////////////////////////////////////////////////////////////////// 0
54 14 Dtool_qQJq6f4T 0 7 74 3054 0 14 Dtool_qQJq6f4T 273 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_error
// Access: Published, Static
// Description: Returns the standard InternalName "error".
//////////////////////////////////////////////////////////////////// 0
55 14 Dtool_qQJqa072 0 7 75 3054 0 14 Dtool_qQJqa072 400 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_vertex
// Access: Published, Static
// Description: Returns the standard InternalName "vertex". This is
// the column header for the 3-d or 4-d vertex position
// information for each vertex.
//////////////////////////////////////////////////////////////////// 0
56 14 Dtool_qQJq2d7w 0 7 76 3054 0 14 Dtool_qQJq2d7w 381 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_normal
// Access: Published, Static
// Description: Returns the standard InternalName "normal". This is
// the column header for the 3-d lighting normal for
// each vertex.
//////////////////////////////////////////////////////////////////// 0
57 14 Dtool_qQJqBCM_ 0 7 77 3054 0 14 Dtool_qQJqBCM_ 593 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_tangent
// Access: Published, Static
// Description: Returns the standard InternalName "tangent". This is
// the column header for the tangent vector associated
// with each vertex, which is a unit vector
// usually perpendicular to the normal and in the
// direction of the U texture coordinate change. It is
// used for deriving bump maps.
//////////////////////////////////////////////////////////////////// 0
58 14 Dtool_qQJqTpIr 0 7 78 3054 0 14 Dtool_qQJqTpIr 457 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_tangent_name
// Access: Published, Static
// Description: Returns the InternalName "tangent.name", where name
// is the supplied string. This is the column header
// for the tangent associated with the named texture
// coordinate set.
//////////////////////////////////////////////////////////////////// 1 4 name 1 3037
59 14 Dtool_qQJqgGjH 0 7 79 3054 0 14 Dtool_qQJqgGjH 634 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_binormal
// Access: Published, Static
// Description: Returns the standard InternalName "binormal". This is
// the column header for the tangent vector associated
// with each vertex, which is a unit vector
// usually perpendicular to both the normal and the
// tangent, and in the direction of the V texture
// coordinate change. It is used for deriving bump
// maps.
//////////////////////////////////////////////////////////////////// 0
60 14 Dtool_qQJq3sMn 0 7 80 3054 0 14 Dtool_qQJq3sMn 460 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_binormal_name
// Access: Published, Static
// Description: Returns the InternalName "binormal.name", where name
// is the supplied string. This is the column header
// for the binormal associated with the named texture
// coordinate set.
//////////////////////////////////////////////////////////////////// 1 4 name 1 3037
61 14 Dtool_qQJqaaiB 0 7 81 3054 0 14 Dtool_qQJqaaiB 517 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_texcoord
// Access: Published, Static
// Description: Returns the standard InternalName "texcoord". This
// is the column header for the default texture
// coordinate set for each vertex. It is also used for
// identifying the default texture coordinate set in a
// TextureStage.
//////////////////////////////////////////////////////////////////// 0
62 14 Dtool_qQJq0OLh 0 7 82 3054 0 14 Dtool_qQJq0OLh 548 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_texcoord_name
// Access: Published, Static
// Description: Returns the InternalName "texcoord.name", where name
// is the supplied string. This is the column header
// for the named texture coordinate set for each vertex.
// It is also used for identifying the named texture
// coordinate set in a TextureStage.
//////////////////////////////////////////////////////////////////// 1 4 name 1 3037
63 14 Dtool_qQJqkPBk 0 7 83 3054 0 14 Dtool_qQJqkPBk 383 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_color
// Access: Published, Static
// Description: Returns the standard InternalName "color". This is
// the column header for the 4-component color value for
// each vertex.
//////////////////////////////////////////////////////////////////// 0
64 14 Dtool_qQJqEmsm 0 7 84 3054 0 14 Dtool_qQJqEmsm 500 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_rotate
// Access: Published, Static
// Description: Returns the standard InternalName "rotate". This is
// the column header for the floating-point rotate
// value, which represents a number of degrees
// counter-clockwise to rotate each point or point
// sprite.
//////////////////////////////////////////////////////////////////// 0
65 14 Dtool_qQJq1bcz 0 7 85 3054 0 14 Dtool_qQJq1bcz 505 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_size
// Access: Published, Static
// Description: Returns the standard InternalName "size". This is
// the column header for the floating-point size value,
// which overrides the thickness parameter of the
// RenderModeAttrib on a per-vertex (e.g. per-point)
// basis.
//////////////////////////////////////////////////////////////////// 0
66 14 Dtool_qQJqoQxT 0 7 86 3054 0 14 Dtool_qQJqoQxT 535 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_aspect_ratio
// Access: Published, Static
// Description: Returns the standard InternalName "aspect_ratio".
// This is the column header for the floating-point
// aspect ratio value, which is used to define
// non-square points. This number is the ratio x / y,
// where y is the point size (above).
//////////////////////////////////////////////////////////////////// 0
67 14 Dtool_qQJqOgr2 0 7 87 3054 0 14 Dtool_qQJqOgr2 553 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_transform_blend
// Access: Published, Static
// Description: Returns the standard InternalName "transform_blend".
// This is the column header for the integer
// transform_blend index, which is used to define vertex
// animation on the CPU by indexing to a particular
// vertex weighting from the TransformBlendTable.
//////////////////////////////////////////////////////////////////// 0
68 14 Dtool_qQJqZaFB 0 7 88 3054 0 14 Dtool_qQJqZaFB 823 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_transform_weight
// Access: Published, Static
// Description: Returns the standard InternalName "transform_weight".
// This is the column header for the n-component
// transform_weight value, which is used in conjuntion
// with "transform_index" to define vertex animation on
// the graphics card. The transform_weight value
// specifies the weight of the nth transform. By
// convention, there are 1 fewer weight values than
// transforms, since the weights are assumed to sum to 1
// (and the last value is therefore implicit).
//////////////////////////////////////////////////////////////////// 0
69 14 Dtool_qQJqPrB9 0 7 89 3054 0 14 Dtool_qQJqPrB9 795 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_transform_index
// Access: Published, Static
// Description: Returns the standard InternalName "transform_index".
// This is the column header for the n-component
// transform_index value, which is used in conjuntion
// with "transform_weight" to define vertex animation on
// the graphics card. The transform_index value
// specifies the nth transform, by lookup in the
// TransformTable. The transform_index column may be
// omitted, in which case the nth transform is the nth
// entry in the table.
//////////////////////////////////////////////////////////////////// 0
70 14 Dtool_qQJqZ7iC 0 7 90 3054 0 14 Dtool_qQJqZ7iC 655 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_morph
// Access: Published, Static
// Description: Returns an InternalName derived from the given base
// column name and the given slider name, which is the
// column header for the offset vector that should be
// applied to the base column name when the named morph
// slider is engaged.
//
// Each morph slider requires a set of n morph columns,
// one for each base column it applies to.
//////////////////////////////////////////////////////////////////// 2 6 column 1 3054 6 slider 1 3037
71 14 Dtool_qQJqTtkc 0 7 91 3054 0 14 Dtool_qQJqTtkc 515 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_index
// Access: Published, Static
// Description: Returns the standard InternalName "index". This is
// the column header for the integer vertex index. It
// is not used in the vertex data itself, but is used in
// the GeomPrimitive structure to index into the vertex
// data.
//////////////////////////////////////////////////////////////////// 0
72 14 Dtool_qQJqr1c_ 0 7 92 3054 0 14 Dtool_qQJqr1c_ 342 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_world
// Access: Published, Static
// Description: Returns the standard InternalName "world". This is
// used as a keyword in the shader subsystem.
//////////////////////////////////////////////////////////////////// 0
73 14 Dtool_qQJqJLm5 0 7 93 3054 0 14 Dtool_qQJqJLm5 344 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_camera
// Access: Published, Static
// Description: Returns the standard InternalName "camera". This is
// used as a keyword in the shader subsystem.
//////////////////////////////////////////////////////////////////// 0
74 14 Dtool_qQJqSAUz 0 7 94 3054 0 14 Dtool_qQJqSAUz 342 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_model
// Access: Published, Static
// Description: Returns the standard InternalName "model". This is
// used as a keyword in the shader subsystem.
//////////////////////////////////////////////////////////////////// 0
75 14 Dtool_qQJqokyx 0 7 95 3054 0 14 Dtool_qQJqokyx 340 ////////////////////////////////////////////////////////////////////
// Function: InternalName::get_view
// Access: Published, Static
// Description: Returns the standard InternalName "view". This is
// used as a keyword in the shader subsystem.
//////////////////////////////////////////////////////////////////// 0
76 14 Dtool_qQJqAZei 0 7 96 3058 0 14 Dtool_qQJqAZei 0 0
77 14 Dtool_qQJqvt5j 0 7 98 3061 1640 14 Dtool_qQJqvt5j 234 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3059
78 14 Dtool_qQJqrXRr 0 7 98 3061 1640 14 Dtool_qQJqrXRr 229 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 6 4 name 1 3054 14 num_components 1 3046 12 numeric_type 1 2946 8 contents 1 2947 5 start 1 3046 16 column_alignment 1 3046
79 14 Dtool_qQJqqHP9 0 7 98 3061 1640 14 Dtool_qQJqqHP9 229 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 5 4 name 1 3054 14 num_components 1 3046 12 numeric_type 1 2946 8 contents 1 2947 5 start 1 3046
80 14 Dtool_qQJqqipz 0 6 99 3061 0 14 Dtool_qQJqqipz 242 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061 4 copy 1 3059
81 14 Dtool_qQJqdOcj 0 7 101 3054 0 14 Dtool_qQJqdOcj 541 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_name
// Access: Published
// Description: Returns the name of this particular data field,
// e.g. "vertex" or "normal". The name may be a
// user-defined string, or it may be one of the standard
// system-defined field types. Only the system-defined
// field types are used for the actual rendering.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059
82 14 Dtool_qQJq_29x 0 6 102 3046 0 14 Dtool_qQJq_29x 464 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_num_components
// Access: Published
// Description: Returns the number of components of the column:
// the number of instances of the NumericType in each
// element. This is usually, but not always, the same
// thing as get_num_values().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059
83 14 Dtool_qQJqVlzN 0 6 103 3046 0 14 Dtool_qQJqVlzN 648 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_num_values
// Access: Published
// Description: Returns the number of numeric values of the column:
// the number of distinct numeric values that go into
// each element. This is usually, but not always, the
// same thing as get_num_components(); the difference is
// in the case of a composite numeric type like
// NT_packed_dcba, which has four numeric values per
// component.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059
84 14 Dtool_qQJq_YBU 0 6 104 2946 0 14 Dtool_qQJq_YBU 319 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_numeric_type
// Access: Published
// Description: Returns the token representing the numeric type of
// the data storage.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059
85 14 Dtool_qQJqWN4C 0 6 105 2947 0 14 Dtool_qQJqWN4C 319 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_contents
// Access: Published
// Description: Returns the token representing the semantic meaning of
// the stored value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059
86 14 Dtool_qQJqKNfk 0 6 106 3046 0 14 Dtool_qQJqKNfk 392 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_start
// Access: Published
// Description: Returns the byte within the array record at which
// this column starts. This can be set to non-zero
// to implement interleaved arrays.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059
87 14 Dtool_qQJqi3H3 0 6 107 3046 0 14 Dtool_qQJqi3H3 601 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_column_alignment
// Access: Published
// Description: Returns the alignment requirements for this column.
// If this is greater than 1, it restricts the column to
// appear only on memory addresses that are integer
// multiples of this value; this has implications for
// this column's start value, as well as the stride of
// the resulting array.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059
88 14 Dtool_qQJqTwV4 0 6 108 3046 0 14 Dtool_qQJqTwV4 351 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_component_bytes
// Access: Published
// Description: Returns the number of bytes used by each component
// (that is, by one element of the numeric type).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059
89 14 Dtool_qQJqcXJp 0 6 109 3046 0 14 Dtool_qQJqcXJp 347 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::get_total_bytes
// Access: Published
// Description: Returns the number of bytes used by each element of
// the column: component_bytes * num_components.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059
90 14 Dtool_qQJqQEWs 0 6 110 3043 0 14 Dtool_qQJqQEWs 727 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::has_homogeneous_coord
// Access: Published
// Description: Returns true if this Contents type is one that
// includes a homogeneous coordinate in the fourth
// component, or false otherwise. If this is true,
// correct operation on the vertex data may require
// scaling by the homogeneous coordinate from time to
// time (but in general this is handled automatically if
// you use the 3-component or smaller forms of
// get_data() and set_data()).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059
91 14 Dtool_qQJqZDLZ 0 6 111 3043 0 14 Dtool_qQJqZDLZ 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::overlaps_with
// Access: Published
// Description: Returns true if this column overlaps with any of
// the bytes in the indicated range, false if it does
// not.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3059 10 start_byte 1 3046 9 num_bytes 1 3046
92 14 Dtool_qQJqs2pJ 0 6 112 3043 0 14 Dtool_qQJqs2pJ 419 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::is_bytewise_equivalent
// Access: Published
// Description: Returns true if the data store of this column is
// exactly the same as that of the other, irrespective
// of name or start position within the record.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3059 5 other 1 3059
93 14 Dtool_qQJqnbg_ 0 4 113 3042 0 14 Dtool_qQJqnbg_ 393 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::set_name
// Access: Published
// Description: Replaces the name of an existing column. This is
// only legal on an unregistered format (i.e. when
// constructing the format initially).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061 4 name 1 3054
94 14 Dtool_qQJqoJ_s 0 4 114 3042 0 14 Dtool_qQJqoJ_s 418 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::set_num_components
// Access: Published
// Description: Changes the number of components of an existing
// column. This is only legal on an unregistered format
// (i.e. when constructing the format initially).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061 14 num_components 1 3046
95 14 Dtool_qQJqS9TK 0 4 115 3042 0 14 Dtool_qQJqS9TK 405 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::set_numeric_type
// Access: Published
// Description: Changes the numeric type an existing column. This is
// only legal on an unregistered format (i.e. when
// constructing the format initially).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061 12 numeric_type 1 2946
96 14 Dtool_qQJqboYz 0 4 116 3042 0 14 Dtool_qQJqboYz 407 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::set_contents
// Access: Published
// Description: Changes the semantic meaning of an existing column.
// This is only legal on an unregistered format
// (i.e. when constructing the format initially).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061 8 contents 1 2947
97 14 Dtool_qQJqNQ3w 0 4 117 3042 0 14 Dtool_qQJqNQ3w 398 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::set_start
// Access: Published
// Description: Changes the start byte of an existing column.
// This is only legal on an unregistered format
// (i.e. when constructing the format initially).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061 5 start 1 3046
98 14 Dtool_qQJqldo2 0 4 118 3042 0 14 Dtool_qQJqldo2 415 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::set_column_alignment
// Access: Published
// Description: Changes the column alignment of an existing column.
// This is only legal on an unregistered format
// (i.e. when constructing the format initially).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061 16 column_alignment 1 3046
99 14 Dtool_qQJqWRGX 0 4 119 3042 0 14 Dtool_qQJqWRGX 224 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexColumn::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3059 3 out 1 3044
100 14 Dtool_qQJqqhGa 0 7 125 3062 1666 14 Dtool_qQJqqhGa 234 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 0
101 14 Dtool_qQJqEyku 0 7 125 3062 1666 14 Dtool_qQJqEyku 239 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3063
102 14 Dtool_qQJqwQuB 0 7 125 3062 1666 14 Dtool_qQJqwQuB 234 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 4 5 name0 1 3054 15 num_components0 1 3046 13 numeric_type0 1 2946 9 contents0 1 2947
103 14 Dtool_qQJqMGCQ 0 7 125 3062 1666 14 Dtool_qQJqMGCQ 234 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 8 5 name0 1 3054 15 num_components0 1 3046 13 numeric_type0 1 2946 9 contents0 1 2947 5 name1 1 3054 15 num_components1 1 3046 13 numeric_type1 1 2946 9 contents1 1 2947
104 14 Dtool_qQJqrTBZ 0 7 125 3062 1666 14 Dtool_qQJqrTBZ 234 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 12 5 name0 1 3054 15 num_components0 1 3046 13 numeric_type0 1 2946 9 contents0 1 2947 5 name1 1 3054 15 num_components1 1 3046 13 numeric_type1 1 2946 9 contents1 1 2947 5 name2 1 3054 15 num_components2 1 3046 13 numeric_type2 1 2946 9 contents2 1 2947
105 14 Dtool_qQJqI38U 0 7 125 3062 1666 14 Dtool_qQJqI38U 234 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 16 5 name0 1 3054 15 num_components0 1 3046 13 numeric_type0 1 2946 9 contents0 1 2947 5 name1 1 3054 15 num_components1 1 3046 13 numeric_type1 1 2946 9 contents1 1 2947 5 name2 1 3054 15 num_components2 1 3046 13 numeric_type2 1 2946 9 contents2 1 2947 5 name3 1 3054 15 num_components3 1 3046 13 numeric_type3 1 2946 9 contents3 1 2947
106 14 Dtool_qQJq6hwa 0 7 126 3062 1666 14 Dtool_qQJq6hwa 247 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3062 4 copy 1 3063
107 14 Dtool_qQJqnmU1 0 6 128 3043 0 14 Dtool_qQJqnmU1 380 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::unref
// Access: Published, Virtual
// Description: This method overrides ReferenceCount::unref() to
// unregister the object when its reference count goes
// to zero.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3063
108 14 Dtool_qQJqUdKQ 0 6 129 3043 0 14 Dtool_qQJqUdKQ 965 // Filename: geomVertexArrayFormat.I
// Created by: drose (06Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::is_registered
// Access: Published
// Description: Returns true if this format has been registered,
// false if it has not. It may not be used for a Geom
// until it has been registered, but once registered, it
// may no longer be modified.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3063
109 14 Dtool_qQJqojG9 0 7 130 3063 0 14 Dtool_qQJqojG9 774 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::register_format
// Access: Published, Static
// Description: Adds the indicated format to the registry, if there
// is not an equivalent format already there; in either
// case, returns the pointer to the equivalent format
// now in the registry.
//
// This is similar to
// GeomVertexFormat::register_format(), except that you
// generally need not call it explicitly. Calling
// GeomVertexFormat::register_format() automatically
// registers all of the nested array formats.
//////////////////////////////////////////////////////////////////// 1 6 format 1 3063
110 14 Dtool_qQJqJA_4 0 6 131 3046 0 14 Dtool_qQJqJA_4 322 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_stride
// Access: Published
// Description: Returns the total number of bytes reserved in the
// array for each vertex.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3063
111 14 Dtool_qQJqkPw2 0 4 132 3042 0 14 Dtool_qQJqkPw2 443 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::set_stride
// Access: Published
// Description: Changes the total number of bytes reserved in the
// array for each vertex. You may not reduce this below
// get_total_bytes(), but you may increase it
// arbitrarily.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3062 6 stride 1 3046
112 14 Dtool_qQJq5U9H 0 6 133 3046 0 14 Dtool_qQJq5U9H 659 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_pad_to
// Access: Published
// Description: Returns the byte divisor to which the data record
// must be padded to meet hardware limitations. For
// instance, if this is 4, the stride will be
// automatically rounded up to the next multiple of 4
// bytes. This value is automatically increased as
// needed to ensure the individual numeric components in
// the array are word-aligned.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3063
113 14 Dtool_qQJqugvF 0 4 134 3042 0 14 Dtool_qQJqugvF 666 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::set_pad_to
// Access: Published
// Description: Explicitly sets the byte divisor to which the data
// record must be padded to meet hardware limitations.
// See get_pad_to(). Normally it is not necessary to
// call this unless you have some specific requirements
// for row-to-row data alignment. Note that this value
// may be automatically increased at each subsequent
// call to add_column().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3062 6 pad_to 1 3046
114 14 Dtool_qQJqt2Rt 0 6 135 3046 0 14 Dtool_qQJqt2Rt 380 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_total_bytes
// Access: Published
// Description: Returns the total number of bytes used by the data
// types within the format, including gaps between
// elements.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3063
115 14 Dtool_qQJqGAtY 0 6 136 3046 0 14 Dtool_qQJqGAtY 828 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::add_column
// Access: Published
// Description: Adds a new column to the specification. This is a
// table of per-vertex floating-point numbers such as
// "vertex" or "normal"; you must specify where in each
// record the table starts, and how many components
// (dimensions) exist per vertex.
//
// Adding a column with the same name as a previous
// type, or that overlaps with one or more previous
// types, quietly removes the previous type(s).
//
// The return value is the index number of the new data
// type.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3062 6 column 1 3059
116 14 Dtool_qQJqC7ye 0 6 136 3046 0 14 Dtool_qQJqC7ye 631 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::add_column
// Access: Published
// Description: Adds a new column to the specification. This is a
// table of per-vertex floating-point numbers such as
// "vertex" or "normal"; you must specify where in each
// record the table starts, and how many components
// (dimensions) exist per vertex.
//
// The return value is the index number of the new data
// type.
//////////////////////////////////////////////////////////////////// 7 4 this 3 3062 4 name 1 3054 14 num_components 1 3046 12 numeric_type 1 2946 8 contents 1 2947 5 start 1 3046 16 column_alignment 1 3046
117 14 Dtool_qQJqNwWT 0 6 136 3046 0 14 Dtool_qQJqNwWT 631 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::add_column
// Access: Published
// Description: Adds a new column to the specification. This is a
// table of per-vertex floating-point numbers such as
// "vertex" or "normal"; you must specify where in each
// record the table starts, and how many components
// (dimensions) exist per vertex.
//
// The return value is the index number of the new data
// type.
//////////////////////////////////////////////////////////////////// 6 4 this 3 3062 4 name 1 3054 14 num_components 1 3046 12 numeric_type 1 2946 8 contents 1 2947 5 start 1 3046
118 14 Dtool_qQJqRipt 0 6 136 3046 0 14 Dtool_qQJqRipt 631 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::add_column
// Access: Published
// Description: Adds a new column to the specification. This is a
// table of per-vertex floating-point numbers such as
// "vertex" or "normal"; you must specify where in each
// record the table starts, and how many components
// (dimensions) exist per vertex.
//
// The return value is the index number of the new data
// type.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3062 4 name 1 3054 14 num_components 1 3046 12 numeric_type 1 2946 8 contents 1 2947
119 14 Dtool_qQJqvK2M 0 4 137 3042 0 14 Dtool_qQJqvK2M 346 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::remove_column
// Access: Published
// Description: Removes the column with the indicated name, if
// any. This leaves a gap in the byte structure.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3062 4 name 1 3055
120 14 Dtool_qQJq2EfH 0 4 138 3042 0 14 Dtool_qQJq2EfH 343 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::clear_columns
// Access: Published
// Description: Removes all columns previously added, sets the
// stride to zero, and prepares to start over.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3062
121 14 Dtool_qQJqnS7c 0 4 139 3042 0 14 Dtool_qQJqnS7c 272 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::pack_columns
// Access: Published
// Description: Removes wasted space between columns.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3062
122 14 Dtool_qQJqruWO 0 4 140 3042 0 14 Dtool_qQJqruWO 648 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::align_columns_for_animation
// Access: Published
// Description: Reprocesses the columns in the format to align the
// C_point and C_vector columns to 16-byte boundaries to
// allow for the more efficient SSE2 operations
// (assuming SSE2 is enabled in the build).
//
// The caller is responsible for testing
// vertex_animation_align_16 to decide whether to call
// this method.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3062
123 14 Dtool_qQJq5qdH 0 6 141 3046 0 14 Dtool_qQJq5qdH 308 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_num_columns
// Access: Published
// Description: Returns the number of different columns in the
// array.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3063
124 14 Dtool_qQJqC_4r 0 6 142 3059 0 14 Dtool_qQJqC_4r 333 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_column
// Access: Published
// Description: Returns the specification with the indicated name, or
// NULL if the name is not used.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3063 4 name 1 3055
125 14 Dtool_qQJq0ltF 0 6 142 3059 0 14 Dtool_qQJq0ltF 269 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_column
// Access: Published
// Description: Returns the ith column of the array.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3063 1 i 1 3046
126 14 Dtool_qQJqxBGV 0 6 142 3059 0 14 Dtool_qQJqxBGV 378 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_column
// Access: Published
// Description: Returns the first specification that overlaps with
// any of the indicated bytes in the range, or NULL if
// none do.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3063 10 start_byte 1 3046 9 num_bytes 1 3046
127 14 Dtool_qQJqq1M5 0 6 143 3043 0 14 Dtool_qQJqq1M5 314 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::has_column
// Access: Published
// Description: Returns true if the array has the named column,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3063 4 name 1 3055
128 14 Dtool_qQJqHc2c 0 6 144 3043 0 14 Dtool_qQJqHc2c 614 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::is_data_subset_of
// Access: Published
// Description: Returns true if all of the fields in this array
// format are also present and equivalent in the other
// array format, and in the same byte positions, and the
// stride is the same. That is, true if this format can
// share the same data pointer as the other format (with
// possibly some unused gaps).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3063 5 other 1 3063
129 14 Dtool_qQJqbNhQ 0 6 145 3046 0 14 Dtool_qQJqbNhQ 330 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::count_unused_space
// Access: Published
// Description: Returns the number of bytes per row that are not
// assigned to any column.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3063
130 14 Dtool_qQJq8gQJ 0 4 146 3042 0 14 Dtool_qQJq8gQJ 229 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3063 3 out 1 3044
131 14 Dtool_qQJq2XPr 0 4 147 3042 0 14 Dtool_qQJq2XPr 228 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3063 3 out 1 3044 12 indent_level 1 3046
132 14 Dtool_qQJqXOR_ 0 4 147 3042 0 14 Dtool_qQJqXOR_ 228 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3063 3 out 1 3044
133 14 Dtool_qQJqx1_X 0 4 148 3042 0 14 Dtool_qQJqx1_X 238 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::write_with_data
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 4 4 this 3 3063 3 out 1 3044 12 indent_level 1 3046 10 array_data 1 3065
134 14 Dtool_qQJqJ8Vx 0 6 149 3037 0 14 Dtool_qQJqJ8Vx 532 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_format_string
// Access: Published
// Description: Returns a string with format codes representing the
// exact memory layout of the columns in memory, as
// understood by Python's struct module.
// If pad is true, extra padding bytes are added to
// the end as 'x' characters as needed.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3063 3 pad 1 3043
135 14 Dtool_qQJqDuRs 0 6 149 3037 0 14 Dtool_qQJqDuRs 532 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayFormat::get_format_string
// Access: Published
// Description: Returns a string with format codes representing the
// exact memory layout of the columns in memory, as
// understood by Python's struct module.
// If pad is true, extra padding bytes are added to
// the end as 'x' characters as needed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3063
136 14 Dtool_qQJqqo7q 0 7 150 3058 0 14 Dtool_qQJqqo7q 0 0
137 14 Dtool_qQJq7ZDF 0 7 121 3067 0 14 Dtool_qQJq7ZDF 0 1 4 this 3 3062
138 14 Dtool_qQJqt0mx 0 7 122 3062 1666 14 Dtool_qQJqt0mx 0 1 4 this 3 3067
139 14 Dtool_qQJqbG5U 0 6 123 3068 0 14 Dtool_qQJqbG5U 0 1 4 this 3 3062
140 14 Dtool_qQJqo05j 0 7 124 3062 1666 14 Dtool_qQJqo05j 0 1 4 this 3 3068
141 14 Dtool_qQJqp5IE 0 7 156 3069 1696 14 Dtool_qQJqp5IE 229 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 0
142 14 Dtool_qQJq0V7R 0 7 156 3069 1696 14 Dtool_qQJq0V7R 229 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 12 array_format 1 3063
143 14 Dtool_qQJqekha 0 7 156 3069 1696 14 Dtool_qQJqekha 234 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3070
144 14 Dtool_qQJqqp4g 0 7 157 3069 1696 14 Dtool_qQJqqp4g 242 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3069 4 copy 1 3070
145 14 Dtool_qQJqwY7m 0 6 159 3043 0 14 Dtool_qQJqwY7m 375 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::unref
// Access: Published, Virtual
// Description: This method overrides ReferenceCount::unref() to
// unregister the object when its reference count goes
// to zero.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070
146 14 Dtool_qQJqYvVU 0 6 160 3043 0 14 Dtool_qQJqYvVU 463 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::is_registered
// Access: Published
// Description: Returns true if this format has been registered,
// false if it has not. It may not be used for a Geom
// until it has been registered, but once registered, it
// may no longer be modified.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070
147 14 Dtool_qQJqnlvK 0 7 161 3070 0 14 Dtool_qQJqnlvK 362 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::register_format
// Access: Published, Static
// Description: This flavor of register_format() implicitly creates a
// one-array vertex format from the array definition.
//////////////////////////////////////////////////////////////////// 1 6 format 1 3063
148 14 Dtool_qQJqF5LQ 0 7 161 3070 0 14 Dtool_qQJqF5LQ 849 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::register_format
// Access: Published, Static
// Description: Adds the indicated format to the registry, if there
// is not an equivalent format already there; in either
// case, returns the pointer to the equivalent format
// now in the registry.
//
// This must be called before a format may be used in a
// Geom. After this call, you should discard the
// original pointer you passed in (which may or may not
// now be invalid) and let its reference count decrement
// normally; you should use only the returned value from
// this point on.
//////////////////////////////////////////////////////////////////// 1 6 format 1 3070
149 14 Dtool_qQJqRiXK 0 6 162 3052 0 14 Dtool_qQJqRiXK 351 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_animation
// Access: Published
// Description: Returns the GeomVertexAnimationSpec that indicates
// how this format's vertices are set up for animation.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070
150 14 Dtool_qQJqWlqH 0 4 163 3042 0 14 Dtool_qQJqWlqH 555 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::set_animation
// Access: Published
// Description: Resets the GeomVertexAnimationSpec that indicates
// how this format's vertices are set up for animation.
// You should also, of course, change the columns in the
// tables accordingly.
//
// This may not be called once the format has been
// registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3069 9 animation 1 3052
151 14 Dtool_qQJq8LzX 0 7 164 3070 0 14 Dtool_qQJq8LzX 646 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_post_animated_format
// Access: Published
// Description: Returns a suitable vertex format for sending the
// animated vertices to the graphics backend. This is
// the same format as the source format, with the
// CPU-animation data elements removed.
//
// This may only be called after the format has been
// registered. The return value will have been already
// registered.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070
152 14 Dtool_qQJqKWDM 0 7 165 3070 0 14 Dtool_qQJqKWDM 791 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_union_format
// Access: Published
// Description: Returns a new GeomVertexFormat that includes all of
// the columns defined in either this GeomVertexFormat
// or the other one. If any column is defined in both
// formats with different sizes (for instance, texcoord2
// vs. texcoord3), the new format will include the
// larger of the two definitions.
//
// This may only be called after both source formats
// have been registered. The return value will also
// have been already registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 5 other 1 3070
153 14 Dtool_qQJqxaAs 0 6 166 3046 0 14 Dtool_qQJqxaAs 506 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_num_arrays
// Access: Published
// Description: Returns the number of individual arrays required by
// the format. If the array data is completely
// interleaved, this will be 1; if it is completely
// parallel, this will be the same as the number of data
// types.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070
154 14 Dtool_qQJqcEF8 0 7 167 3063 0 14 Dtool_qQJqcEF8 304 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_array
// Access: Published
// Description: Returns the description of the nth array used by the
// format.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 5 array 1 3046
155 14 Dtool_qQJqz1Gg 0 7 168 3062 1666 14 Dtool_qQJqz1Gg 470 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::modify_array
// Access: Published
// Description: Returns a modifiable pointer to the indicated array.
// This means duplicating it if it is shared or
// registered.
//
// This may not be called once the format has been
// registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3069 5 array 1 3046
156 14 Dtool_qQJqjkFu 0 4 169 3042 0 14 Dtool_qQJqjkFu 371 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::set_array
// Access: Published
// Description: Replaces the definition of the indicated array.
//
// This may not be called once the format has been
// registered.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3069 5 array 1 3046 6 format 1 3063
157 14 Dtool_qQJq4DUv 0 4 170 3042 0 14 Dtool_qQJq4DUv 365 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::remove_array
// Access: Published
// Description: Removes the nth array from the format.
//
// This may not be called once the format has been
// registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3069 5 array 1 3046
158 14 Dtool_qQJqIwkF 0 6 171 3046 0 14 Dtool_qQJqIwkF 534 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::add_array
// Access: Published
// Description: Adds the indicated array definition to the list of
// arrays included within this vertex format definition.
// The return value is the index number of the new
// array.
//
// This may not be called once the format has been
// registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3069 12 array_format 1 3063
159 14 Dtool_qQJqntYu 0 4 172 3042 0 14 Dtool_qQJqntYu 570 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::insert_array
// Access: Published
// Description: Adds the indicated array definition to the list of
// arrays at the indicated position. This works just
// like add_array(), except that you can specify which
// array index the new array should have.
//
// This may not be called once the format has been
// registered.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3069 5 array 1 3046 12 array_format 1 3063
160 14 Dtool_qQJqQpcp 0 4 173 3042 0 14 Dtool_qQJqQpcp 413 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::clear_arrays
// Access: Published
// Description: Removes all of the array definitions from the format
// and starts over.
//
// This may not be called once the format has been
// registered.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3069
161 14 Dtool_qQJqucei 0 4 174 3042 0 14 Dtool_qQJqucei 376 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::remove_empty_arrays
// Access: Published
// Description: Removes the arrays that define no columns.
//
// This may not be called once the format has been
// registered.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3069
162 14 Dtool_qQJqEb8v 0 6 175 3046 0 14 Dtool_qQJqEb8v 336 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_num_columns
// Access: Published
// Description: Returns the total number of different columns in
// the specification, across all arrays.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070
163 14 Dtool_qQJq7nrL 0 6 176 3046 0 14 Dtool_qQJq7nrL 766 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_array_with
// Access: Published
// Description: Returns the index number of the array with the
// indicated column, or -1 if no arrays contained
// that name.
//
// The return value can be passed to get_array_format()
// to get the format of the array. It may also be
// passed to GeomVertexData::get_array_data() or
// get_data() or set_data() to manipulate the actual
// array data.
//
// This may only be called after the format has been
// registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 4 name 1 3055
164 14 Dtool_qQJqkTim 0 6 176 3046 0 14 Dtool_qQJqkTim 604 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_array_with
// Access: Published
// Description: Returns the index number of the array with the
// ith column.
//
// The return value can be passed to get_array_format()
// to get the format of the array. It may also be
// passed to GeomVertexData::get_array_data() or
// get_data() or set_data() to manipulate the actual
// array data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 1 i 1 3046
165 14 Dtool_qQJqzgLi 0 6 177 3059 0 14 Dtool_qQJqzgLi 441 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_column
// Access: Published
// Description: Returns the specification with the indicated name, or
// NULL if the name is not used. Use get_array_with()
// to determine which array this column is associated
// with.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 4 name 1 3055
166 14 Dtool_qQJqfLGP 0 6 177 3059 0 14 Dtool_qQJqfLGP 308 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_column
// Access: Published
// Description: Returns the ith column of the specification,
// across all arrays.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 1 i 1 3046
167 14 Dtool_qQJqrn1o 0 6 178 3043 0 14 Dtool_qQJqrn1o 310 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::has_column
// Access: Published
// Description: Returns true if the format has the named column,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 4 name 1 3055
168 14 Dtool_qQJqD4KU 0 4 179 3042 0 14 Dtool_qQJqD4KU 697 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::remove_column
// Access: Published
// Description: Removes the named column from the format, from
// whichever array it exists in. If there are other
// columns remaining in the array, the array is left
// with a gap where the column used to be; if this
// was the only column in the array, the array is
// removed (unless keep_empty_array is true).
//
// This may not be called once the format has been
// registered.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3069 4 name 1 3055 16 keep_empty_array 1 3043
169 14 Dtool_qQJqGmoS 0 4 179 3042 0 14 Dtool_qQJqGmoS 697 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::remove_column
// Access: Published
// Description: Removes the named column from the format, from
// whichever array it exists in. If there are other
// columns remaining in the array, the array is left
// with a gap where the column used to be; if this
// was the only column in the array, the array is
// removed (unless keep_empty_array is true).
//
// This may not be called once the format has been
// registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3069 4 name 1 3055
170 14 Dtool_qQJqytua 0 4 180 3042 0 14 Dtool_qQJqytua 267 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::pack_columns
// Access: Published
// Description: Removes wasted space between columns.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3069
171 14 Dtool_qQJqGdZz 0 4 181 3042 0 14 Dtool_qQJqGdZz 552 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::align_columns_for_animation
// Access: Published
// Description: Reprocesses the columns in the format to align the
// C_point and C_vector columns to 16-byte boundaries to
// allow for the more efficient SSE2 operations
// (assuming SSE2 is enabled in the build).
//
// Also see maybe_align_columns_for_animation().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3069
172 14 Dtool_qQJqRJ5L 0 4 182 3042 0 14 Dtool_qQJqRJ5L 439 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::maybe_align_columns_for_animation
// Access: Published
// Description: Calls align_columns_for_animation() if this format's
// AnimationSpec indicates that it contains animated
// vertices, and if vertex-animation-align-16 is true.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3069
173 14 Dtool_qQJqMqq8 0 6 183 3046 0 14 Dtool_qQJqMqq8 427 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_num_points
// Access: Published
// Description: Returns the number of columns within the format
// that represent points in space.
//
// This may only be called after the format has been
// registered.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070
174 14 Dtool_qQJq6NwG 0 7 184 3055 0 14 Dtool_qQJq6NwG 497 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_point
// Access: Published
// Description: Returns the name of the nth point column. This
// represents a point in space, which should be
// transformed by any spatial transform matrix.
//
// This may only be called after the format has been
// registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 1 n 1 3046
175 14 Dtool_qQJqNM2c 0 6 185 3046 0 14 Dtool_qQJqNM2c 432 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_num_vectors
// Access: Published
// Description: Returns the number of columns within the format
// that represent directional vectors.
//
// This may only be called after the format has been
// registered.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070
176 14 Dtool_qQJqoLMd 0 7 186 3055 0 14 Dtool_qQJqoLMd 532 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_vector
// Access: Published
// Description: Returns the name of the nth vector column. This
// represents a directional vector, which should be
// transformed by any spatial transform matrix as a
// vector.
//
// This may only be called after the format has been
// registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 1 n 1 3046
177 14 Dtool_qQJqKJ7H 0 6 187 3046 0 14 Dtool_qQJqKJ7H 434 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_num_texcoords
// Access: Published
// Description: Returns the number of columns within the format
// that represent texture coordinates.
//
// This may only be called after the format has been
// registered.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070
178 14 Dtool_qQJqe93W 0 7 188 3055 0 14 Dtool_qQJqe93W 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_texcoord
// Access: Published
// Description: Returns the name of the nth texcoord column. This
// represents a texture coordinate.
//
// This may only be called after the format has been
// registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 1 n 1 3046
179 14 Dtool_qQJqFthv 0 6 189 3046 0 14 Dtool_qQJqFthv 424 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_num_morphs
// Access: Published
// Description: Returns the number of columns within the format
// that represent morph deltas.
//
// This may only be called after the format has been
// registered.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070
180 14 Dtool_qQJqhHKj 0 7 190 3055 0 14 Dtool_qQJqhHKj 587 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_morph_slider
// Access: Published
// Description: Returns the slider name associated with the nth morph
// column. This is the name of the slider that will
// control the morph, and should be defined within the
// SliderTable associated with the GeomVertexData.
//
// This may only be called after the format has been
// registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 1 n 1 3046
181 14 Dtool_qQJqINRc 0 7 191 3055 0 14 Dtool_qQJqINRc 562 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_morph_base
// Access: Published
// Description: Returns the name of the base column that the nth
// morph modifies. This column will also be defined
// within the format, and can be retrieved via
// get_array_with() and/or get_column().
//
// This may only be called after the format has been
// registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 1 n 1 3046
182 14 Dtool_qQJqu_vz 0 7 192 3055 0 14 Dtool_qQJqu_vz 685 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_morph_delta
// Access: Published
// Description: Returns the name of the column that defines the
// nth morph. This contains the delta offsets that are
// to be applied to the column defined by
// get_morph_base(). This column will be defined
// within the format, and can be retrieved via
// get_array_with() and/or get_column().
//
// This may only be called after the format has been
// registered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 1 n 1 3046
183 14 Dtool_qQJqyJ2Q 0 4 193 3042 0 14 Dtool_qQJqyJ2Q 224 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 3 out 1 3044
184 14 Dtool_qQJqQ_2h 0 4 194 3042 0 14 Dtool_qQJqQ_2h 223 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3070 3 out 1 3044 12 indent_level 1 3046
185 14 Dtool_qQJqKeYr 0 4 194 3042 0 14 Dtool_qQJqKeYr 223 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070 3 out 1 3044
186 14 Dtool_qQJqFtTt 0 4 195 3042 0 14 Dtool_qQJqFtTt 233 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::write_with_data
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 4 4 this 3 3070 3 out 1 3044 12 indent_level 1 3046 4 data 1 3072
187 14 Dtool_qQJqM264 0 7 196 3070 0 14 Dtool_qQJqM264 322 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3
// Access: Published, Static
// Description: Returns a standard vertex format with just a
// 3-component vertex position.
//////////////////////////////////////////////////////////////////// 0
188 14 Dtool_qQJqw8Vh 0 7 197 3070 0 14 Dtool_qQJqw8Vh 344 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3n3
// Access: Published, Static
// Description: Returns a standard vertex format with a 3-component
// normal and a 3-component vertex position.
//////////////////////////////////////////////////////////////////// 0
189 14 Dtool_qQJq6P2g 0 7 198 3070 0 14 Dtool_qQJq6P2g 378 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3t2
// Access: Published, Static
// Description: Returns a standard vertex format with a 2-component
// texture coordinate pair and a 3-component vertex
// position.
//////////////////////////////////////////////////////////////////// 0
190 14 Dtool_qQJqp05G 0 7 199 3070 0 14 Dtool_qQJqp05G 403 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3n3t2
// Access: Published, Static
// Description: Returns a standard vertex format with a 2-component
// texture coordinate pair, a 3-component normal, and a
// 3-component vertex position.
//////////////////////////////////////////////////////////////////// 0
191 14 Dtool_qQJqm2WG 0 7 200 3070 0 14 Dtool_qQJqm2WG 338 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3cp
// Access: Published, Static
// Description: Returns a standard vertex format with a packed
// color and a 3-component vertex position.
//////////////////////////////////////////////////////////////////// 0
192 14 Dtool_qQJqE76r 0 7 201 3070 0 14 Dtool_qQJqE76r 397 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3cpt2
// Access: Published, Static
// Description: Returns a standard vertex format with a 2-component
// texture coordinate pair, a packed color, and a
// 3-component vertex position.
//////////////////////////////////////////////////////////////////// 0
193 14 Dtool_qQJqxdLR 0 7 202 3070 0 14 Dtool_qQJqxdLR 380 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3n3cp
// Access: Published, Static
// Description: Returns a standard vertex format with a packed
// color, a 3-component normal, and a 3-component vertex
// position.
//////////////////////////////////////////////////////////////////// 0
194 14 Dtool_qQJqaDrT 0 7 203 3070 0 14 Dtool_qQJqaDrT 438 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3n3cpt2
// Access: Published, Static
// Description: Returns a standard vertex format with a 2-component
// texture coordinate pair, a packed color, a
// 3-component normal, and a 3-component vertex
// position.
//////////////////////////////////////////////////////////////////// 0
195 14 Dtool_qQJqlkvh 0 7 204 3070 0 14 Dtool_qQJqlkvh 343 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3c4
// Access: Published, Static
// Description: Returns a standard vertex format with a 4-component
// color and a 3-component vertex position.
//////////////////////////////////////////////////////////////////// 0
196 14 Dtool_qQJqEtTH 0 7 205 3070 0 14 Dtool_qQJqEtTH 402 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3c4t2
// Access: Published, Static
// Description: Returns a standard vertex format with a 2-component
// texture coordinate pair, a 4-component color, and a
// 3-component vertex position.
//////////////////////////////////////////////////////////////////// 0
197 14 Dtool_qQJq_Erc 0 7 206 3070 0 14 Dtool_qQJq_Erc 385 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3n3c4
// Access: Published, Static
// Description: Returns a standard vertex format with a 4-component
// color, a 3-component normal, and a 3-component vertex
// position.
//////////////////////////////////////////////////////////////////// 0
198 14 Dtool_qQJqE8Lf 0 7 207 3070 0 14 Dtool_qQJqE8Lf 443 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexFormat::get_v3n3c4t2
// Access: Published, Static
// Description: Returns a standard vertex format with a 2-component
// texture coordinate pair, a 4-component color, a
// 3-component normal, and a 3-component vertex
// position.
//////////////////////////////////////////////////////////////////// 0
199 14 Dtool_qQJqzbuh 0 7 208 3058 0 14 Dtool_qQJqzbuh 0 0
200 14 Dtool_qQJqN_wu 0 7 152 3067 0 14 Dtool_qQJqN_wu 0 1 4 this 3 3069
201 14 Dtool_qQJq8_96 0 7 153 3069 1696 14 Dtool_qQJq8_96 0 1 4 this 3 3067
202 14 Dtool_qQJqrIs2 0 6 154 3068 0 14 Dtool_qQJqrIs2 0 1 4 this 3 3069
203 14 Dtool_qQJqCWg5 0 7 155 3069 1696 14 Dtool_qQJqCWg5 0 1 4 this 3 3068
204 14 Dtool_qQJqWCR8 0 7 215 3074 1752 14 Dtool_qQJqWCR8 222 ////////////////////////////////////////////////////////////////////
// Function: SimpleLru::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 name 1 3037 8 max_size 1 3038
205 14 Dtool_qQJqIU8b 0 6 217 3038 0 14 Dtool_qQJqIU8b 793 // Filename: simpleLru.I
// Created by: drose (11May07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: SimpleLru::get_total_size
// Access: Published
// Description: Returns the total size of all objects currently
// active on the LRU.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3075
206 14 Dtool_qQJqn39j 0 6 218 3038 0 14 Dtool_qQJqn39j 317 ////////////////////////////////////////////////////////////////////
// Function: SimpleLru::get_max_size
// Access: Published
// Description: Returns the max size of all objects that are allowed
// to be active on the LRU.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3075
207 14 Dtool_qQJqOAtG 0 4 219 3042 0 14 Dtool_qQJqOAtG 383 ////////////////////////////////////////////////////////////////////
// Function: SimpleLru::set_max_size
// Access: Published
// Description: Changes the max size of all objects that are allowed
// to be active on the LRU.
//
// If the size is (size_t)-1, there is no limit.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3074 8 max_size 1 3038
208 14 Dtool_qQJqZ43l 0 6 220 3038 0 14 Dtool_qQJqZ43l 337 ////////////////////////////////////////////////////////////////////
// Function: SimpleLru::count_active_size
// Access: Published
// Description: Returns the total size of the pages that were
// enqueued since the last call to begin_epoch().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3075
209 14 Dtool_qQJqsoHP 0 4 221 3042 0 14 Dtool_qQJqsoHP 275 ////////////////////////////////////////////////////////////////////
// Function: SimpleLru::consider_evict
// Access: Published
// Description: Evicts a sequence of objects if the queue is full.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3074
210 14 Dtool_qQJqDpX5 0 4 222 3042 0 14 Dtool_qQJqDpX5 371 ////////////////////////////////////////////////////////////////////
// Function: SimpleLru::evict_to
// Access: Published
// Description: Evicts a sequence of objects until the queue fits
// within the indicated target size, regardless of its
// normal max size.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3074 11 target_size 1 3038
211 14 Dtool_qQJqVVhc 0 4 223 3042 0 14 Dtool_qQJqVVhc 441 ////////////////////////////////////////////////////////////////////
// Function: SimpleLru::begin_epoch
// Access: Published
// Description: Marks the end of the previous epoch and the beginning
// of the next one. This will evict any objects that
// are pending eviction, and also update any internal
// bookkeeping.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3074
212 14 Dtool_qQJqmsnP 0 6 224 3043 0 14 Dtool_qQJqmsnP 363 ////////////////////////////////////////////////////////////////////
// Function: SimpleLru::validate
// Access: Published
// Description: Checks that the LRU is internally self-consistent.
// Returns true if successful, false if there is some
// problem.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3074
213 14 Dtool_qQJqqPtY 0 4 225 3042 0 14 Dtool_qQJqqPtY 217 ////////////////////////////////////////////////////////////////////
// Function: SimpleLru::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3075 3 out 1 3044
214 14 Dtool_qQJqrtzP 0 4 226 3042 0 14 Dtool_qQJqrtzP 225 ////////////////////////////////////////////////////////////////////
// Function: SimpleLru::write
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3075 3 out 1 3044 12 indent_level 1 3046
215 14 Dtool_qQJqxmc_ 0 6 211 3077 0 14 Dtool_qQJqxmc_ 0 1 4 this 3 3074
216 14 Dtool_qQJqA2hR 0 6 212 3074 0 14 Dtool_qQJqA2hR 0 1 4 this 3 3077
217 14 Dtool_qQJqh2gg 0 6 213 3078 0 14 Dtool_qQJqh2gg 0 1 4 this 3 3074
218 14 Dtool_qQJqW73I 0 6 214 3074 0 14 Dtool_qQJqW73I 0 1 4 this 3 3078
219 14 Dtool_qQJq82WX 0 7 230 3081 1767 14 Dtool_qQJq82WX 231 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::Copy Constructor
// Access: Protected
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3079
220 14 Dtool_qQJqsh7I 0 7 230 3081 1767 14 Dtool_qQJqsh7I 226 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::Constructor
// Access: Protected
// Description:
//////////////////////////////////////////////////////////////////// 1 8 lru_size 1 3038
221 14 Dtool_qQJqkQLb 0 6 231 3081 0 14 Dtool_qQJqkQLb 239 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::Copy Assignment Operator
// Access: Protected
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3081 4 copy 1 3079
222 14 Dtool_qQJqgsYL 0 6 233 3074 0 14 Dtool_qQJqgsYL 329 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::get_lru
// Access: Published
// Description: Returns the LRU that manages this page, or NULL if it
// is not currently managed by any LRU.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3079
223 14 Dtool_qQJqgmxN 0 4 234 3042 0 14 Dtool_qQJqgmxN 443 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::enqueue_lru
// Access: Published
// Description: Adds the page to the LRU for the first time, or marks
// it recently-accessed if it has already been added.
//
// If lru is NULL, it means to remove this page from its
// LRU.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3081 3 lru 1 3074
224 14 Dtool_qQJq6EK8 0 4 235 3042 0 14 Dtool_qQJq6EK8 262 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::dequeue_lru
// Access: Published
// Description: Removes the page from its SimpleLru.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3081
225 14 Dtool_qQJq86pG 0 4 236 3042 0 14 Dtool_qQJq86pG 481 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::mark_used_lru
// Access: Published
// Description: To be called when the page is used; this will move it
// to the tail of the SimpleLru queue it is already on.
//
// This method is const because it's not technically
// modifying the contents of the page itself.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3079
226 14 Dtool_qQJq42nn 0 4 236 3042 0 14 Dtool_qQJq42nn 344 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::mark_used_lru
// Access: Published
// Description: To be called when the page is used; this will move it
// to the tail of the specified SimpleLru queue.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3081 3 lru 1 3074
227 14 Dtool_qQJq9Ymk 0 6 237 3038 0 14 Dtool_qQJq9Ymk 318 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::get_lru_size
// Access: Published
// Description: Returns the size of this page as reported to the LRU,
// presumably in bytes.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3079
228 14 Dtool_qQJqwPv_ 0 4 238 3042 0 14 Dtool_qQJqwPv_ 328 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::set_lru_size
// Access: Published
// Description: Specifies the size of this page, presumably in bytes,
// although any unit is possible.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3081 8 lru_size 1 3038
229 14 Dtool_qQJqmn5q 0 4 239 3042 0 14 Dtool_qQJqmn5q 812 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::evict_lru
// Access: Published, Virtual
// Description: Evicts the page from the LRU. Called internally when
// the LRU determines that it is full. May also be
// called externally when necessary to explicitly evict
// the page.
//
// It is legal for this method to either evict the page
// as requested, do nothing (in which case the eviction
// will be requested again at the next epoch), or
// requeue itself on the tail of the queue (in which
// case the eviction will be requested again much
// later).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3081
230 14 Dtool_qQJqsT_n 0 4 240 3042 0 14 Dtool_qQJqsT_n 230 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::output
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3079 3 out 1 3044
231 14 Dtool_qQJqPnar 0 4 241 3042 0 14 Dtool_qQJqPnar 229 ////////////////////////////////////////////////////////////////////
// Function: SimpleLruPage::write
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3079 3 out 1 3044 12 indent_level 1 3046
232 14 Dtool_qQJqDeYC 0 6 228 3077 0 14 Dtool_qQJqDeYC 0 1 4 this 3 3081
233 14 Dtool_qQJqvoUi 0 6 229 3081 0 14 Dtool_qQJqvoUi 0 1 4 this 3 3077
234 14 Dtool_qQJqAKb_ 0 7 245 3084 1780 14 Dtool_qQJqAKb_ 719 // Filename: simpleAllocator.I
// Created by: drose (12May07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 8 max_size 1 3038 4 lock 1 3082
235 14 Dtool_qQJqgUYw 0 6 247 3085 0 14 Dtool_qQJqgUYw 451 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::alloc
// Access: Published
// Description: Allocates a new block. Returns NULL if a block of the
// requested size cannot be allocated.
//
// To free the allocated block, call block->free(), or
// simply delete the block pointer.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3084 4 size 1 3038
236 14 Dtool_qQJqV32t 0 6 248 3043 0 14 Dtool_qQJqV32t 336 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::is_empty
// Access: Published
// Description: Returns true if there are no blocks allocated on this
// page, or false if there is at least one.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3086
237 14 Dtool_qQJqL7lg 0 6 249 3038 0 14 Dtool_qQJqL7lg 275 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::get_total_size
// Access: Published
// Description: Returns the total size of allocated objects.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3086
238 14 Dtool_qQJqMk0g 0 6 250 3038 0 14 Dtool_qQJqMk0g 279 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::get_max_size
// Access: Published
// Description: Returns the available space for allocated objects.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3086
239 14 Dtool_qQJqvToR 0 4 251 3042 0 14 Dtool_qQJqvToR 417 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::set_max_size
// Access: Published
// Description: Changes the available space for allocated objects.
// This will not affect any already-allocated objects,
// but will have an effect on future calls to alloc().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3084 8 max_size 1 3038
240 14 Dtool_qQJq_b_b 0 6 252 3038 0 14 Dtool_qQJq_b_b 595 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::get_contiguous
// Access: Published
// Description: Returns an upper-bound estimate of the size of the
// largest contiguous block that may be allocated. It
// is guaranteed that an attempt to allocate a block
// larger than this will fail, though it is not
// guaranteed that an attempt to allocate a block this
// size or smaller will succeed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3086
241 14 Dtool_qQJqlSlL 0 6 253 3085 0 14 Dtool_qQJqlSlL 338 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::get_first_block
// Access: Published
// Description: Returns a pointer to the first allocated block, or
// NULL if there are no allocated blocks.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3086
242 14 Dtool_qQJqZUMQ 0 4 254 3042 0 14 Dtool_qQJqZUMQ 223 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3086 3 out 1 3044
243 14 Dtool_qQJqoxAv 0 4 255 3042 0 14 Dtool_qQJqoxAv 222 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocator::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3086 3 out 1 3044
244 14 Dtool_qQJqyigB 0 6 243 3077 0 14 Dtool_qQJqyigB 0 1 4 this 3 3084
245 14 Dtool_qQJqwHGI 0 6 244 3084 0 14 Dtool_qQJqwHGI 0 1 4 this 3 3077
246 14 Dtool_qQJqrDch 0 4 258 3042 0 14 Dtool_qQJqrDch 255 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::free
// Access: Published
// Description: Releases the allocated space.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3085
247 14 Dtool_qQJq_zTh 0 6 259 3084 0 14 Dtool_qQJq_zTh 351 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::get_allocator
// Access: Published
// Description: Returns the SimpleAllocator object that owns this
// block. Returns NULL if the block has been freed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3088
248 14 Dtool_qQJq5gUU 0 6 260 3038 0 14 Dtool_qQJq5gUU 347 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::get_start
// Access: Published
// Description: Returns the starting point of this block. It is an
// error to call this if the block has been freed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3088
249 14 Dtool_qQJqkC4A 0 6 261 3038 0 14 Dtool_qQJqkC4A 336 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::get_size
// Access: Published
// Description: Returns the size of this block. It is an
// error to call this if the block has been freed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3088
250 14 Dtool_qQJq_Bfv 0 6 262 3043 0 14 Dtool_qQJq_Bfv 315 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::is_free
// Access: Published
// Description: Returns true if the block has been freed, false if it
// is still valid.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3088
251 14 Dtool_qQJq4hsY 0 6 263 3038 0 14 Dtool_qQJq4hsY 344 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::get_max_size
// Access: Published
// Description: Returns the maximum size this block can be
// reallocated to, as limited by the following block.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3088
252 14 Dtool_qQJqbE5E 0 6 264 3043 0 14 Dtool_qQJqbE5E 392 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::realloc
// Access: Published
// Description: Changes the size of this block to the specified size.
// Returns true if the change is accepted, false if
// there was not enough room.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3085 4 size 1 3038
253 14 Dtool_qQJqZ89A 0 6 265 3085 0 14 Dtool_qQJqZ89A 359 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::get_next_block
// Access: Published
// Description: Returns a pointer to the next allocated block in the
// chain, or NULL if there are no more allocated blocks.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3088
254 14 Dtool_qQJqWCb3 0 4 266 3042 0 14 Dtool_qQJqWCb3 228 ////////////////////////////////////////////////////////////////////
// Function: SimpleAllocatorBlock::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3088 3 out 1 3044
255 14 Dtool_qQJqnubX 0 6 268 3043 0 14 Dtool_qQJqnubX 858 // Filename: vertexDataSaveFile.I
// Created by: drose (12May07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VertexDataSaveFile::is_valid
// Access: Public
// Description: Returns true if the save file was successfully
// created and is ready for use, false if there was an
// error.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3090
256 14 Dtool_qQJqy5ur 0 6 269 3038 0 14 Dtool_qQJqy5ur 334 ////////////////////////////////////////////////////////////////////
// Function: VertexDataSaveFile::get_total_file_size
// Access: Public
// Description: Returns the amount of space consumed by the save
// file, including unused portions.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3090
257 14 Dtool_qQJqyuVv 0 6 270 3038 0 14 Dtool_qQJqyuVv 326 ////////////////////////////////////////////////////////////////////
// Function: VertexDataSaveFile::get_used_file_size
// Access: Public
// Description: Returns the amount of space within the save file that
// is currently in use.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3090
258 14 Dtool_qQJqGjlN 0 6 277 2962 0 14 Dtool_qQJqGjlN 874 // Filename: vertexDataPage.I
// Created by: drose (04Jun07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_ram_class
// Access: Published
// Description: Returns the current ram class of the array. If this
// is other than RC_resident, the array data is not
// resident in memory.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3092
259 14 Dtool_qQJqlZJd 0 6 278 2962 0 14 Dtool_qQJqlZJd 484 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_pending_ram_class
// Access: Published
// Description: Returns the pending ram class of the array. If this
// is different from get_ram_class(), this page has been
// queued to be processed by the thread. Eventually the
// page will be set to this ram class.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3092
260 14 Dtool_qQJq0sB_ 0 4 279 3042 0 14 Dtool_qQJq0sB_ 379 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::request_resident
// Access: Published
// Description: Ensures that the page will become resident soon.
// Future calls to get_page_data() will eventually
// return non-NULL.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3094
261 14 Dtool_qQJqQei8 0 7 280 3095 1838 14 Dtool_qQJqQei8 450 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::alloc
// Access: Published
// Description: Allocates a new block. Returns NULL if a block of the
// requested size cannot be allocated.
//
// To free the allocated block, call block->free(), or
// simply delete the block pointer.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3094 4 size 1 3038
262 14 Dtool_qQJq8RXh 0 7 281 3095 1838 14 Dtool_qQJq8RXh 337 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_first_block
// Access: Published
// Description: Returns a pointer to the first allocated block, or
// NULL if there are no allocated blocks.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3092
263 14 Dtool_qQJqsBRf 0 6 282 3096 0 14 Dtool_qQJqsBRf 274 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_book
// Access: Published
// Description: Returns a pointer to the book that owns this page.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3092
264 14 Dtool_qQJqBaNj 0 6 283 3074 0 14 Dtool_qQJqBaNj 377 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_global_lru
// Access: Published, Static
// Description: Returns a pointer to the global LRU object that
// manages the VertexDataPage's with the indicated
// RamClass.
//////////////////////////////////////////////////////////////////// 1 6 rclass 1 2962
265 14 Dtool_qQJqRT83 0 6 284 3074 0 14 Dtool_qQJqRT83 392 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_pending_lru
// Access: Published, Static
// Description: Returns a pointer to the global LRU object that
// manages the VertexDataPage's that are pending
// processing by the thread.
//////////////////////////////////////////////////////////////////// 0
266 14 Dtool_qQJqbvJb 0 6 285 3097 0 14 Dtool_qQJqbvJb 378 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_save_file
// Access: Published, Static
// Description: Returns the global VertexDataSaveFile that will be
// used to save vertex data buffers to disk when
// necessary.
//////////////////////////////////////////////////////////////////// 0
267 14 Dtool_qQJqA0f9 0 6 286 3043 0 14 Dtool_qQJqA0f9 467 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::save_to_disk
// Access: Published
// Description: Writes the page to disk, but does not evict it from
// memory or affect its LRU status. If it gets evicted
// later without having been modified, it will not need
// to write itself to disk again.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3094
268 14 Dtool_qQJq4TuW 0 6 287 3046 0 14 Dtool_qQJq4TuW 589 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_num_threads
// Access: Published, Static
// Description: Returns the number of threads that have been spawned
// to service vertex paging requests, or 0 if no threads
// have been spawned (which may mean either that all
// paging requests will be handled by the main thread,
// or simply that no paging requests have yet been
// issued).
//////////////////////////////////////////////////////////////////// 0
269 14 Dtool_qQJqQnzR 0 6 288 3046 0 14 Dtool_qQJqQnzR 342 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_num_pending_reads
// Access: Published, Static
// Description: Returns the number of read requests that are waiting
// to be serviced by a thread.
//////////////////////////////////////////////////////////////////// 0
270 14 Dtool_qQJqYKfR 0 6 289 3046 0 14 Dtool_qQJqYKfR 344 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::get_num_pending_writes
// Access: Published, Static
// Description: Returns the number of write requests that are waiting
// to be serviced by a thread.
//////////////////////////////////////////////////////////////////// 0
271 14 Dtool_qQJqw48g 0 4 290 3042 0 14 Dtool_qQJqw48g 397 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::stop_threads
// Access: Published, Static
// Description: Call this to stop the paging threads, if they were
// started. This may block until all of the pending
// tasks have been completed.
//////////////////////////////////////////////////////////////////// 0
272 14 Dtool_qQJqltyp 0 4 291 3042 0 14 Dtool_qQJqltyp 323 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::flush_threads
// Access: Published, Static
// Description: Waits for all of the pending thread tasks to finish
// before returning.
//////////////////////////////////////////////////////////////////// 0
273 14 Dtool_qQJqv4iR 0 4 292 3042 0 14 Dtool_qQJqv4iR 231 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::output
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3092 3 out 1 3044
274 14 Dtool_qQJqRjs_ 0 4 293 3042 0 14 Dtool_qQJqRjs_ 230 ////////////////////////////////////////////////////////////////////
// Function: VertexDataPage::write
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3092 3 out 1 3044 12 indent_level 1 3046
275 14 Dtool_qQJqLmIp 0 7 294 3058 0 14 Dtool_qQJqLmIp 0 0
276 14 Dtool_qQJq_hfI 0 6 272 3084 0 14 Dtool_qQJq_hfI 0 1 4 this 3 3094
277 14 Dtool_qQJqIIRM 0 6 273 3094 0 14 Dtool_qQJqIIRM 0 1 4 this 3 3084
278 14 Dtool_qQJq0Sgy 0 6 274 3081 0 14 Dtool_qQJq0Sgy 0 1 4 this 3 3094
279 14 Dtool_qQJq1BoZ 0 6 275 3094 0 14 Dtool_qQJq1BoZ 0 1 4 this 3 3081
280 14 Dtool_qQJqGCC5 0 7 296 3096 1826 14 Dtool_qQJqGCC5 227 ////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 10 block_size 1 3038
281 14 Dtool_qQJqVohj 0 7 298 3095 1838 14 Dtool_qQJqVohj 795 // Filename: vertexDataBook.I
// Created by: drose (16May07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::alloc
// Access: Published
// Description: Allocates and returns a new VertexDataBuffer of the
// requested size.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3096 4 size 1 3038
282 14 Dtool_qQJqD1E5 0 6 299 3046 0 14 Dtool_qQJqD1E5 278 ////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::get_num_pages
// Access: Published
// Description: Returns the number of pages created for the book.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3098
283 14 Dtool_qQJq_dT3 0 6 300 3038 0 14 Dtool_qQJq_dT3 328 ////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::count_total_page_size
// Access: Published
// Description: Returns the total size of all bytes owned by all
// pages owned by this book.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3098
284 14 Dtool_qQJqU33Z 0 6 300 3038 0 14 Dtool_qQJqU33Z 379 ////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::count_total_page_size
// Access: Published
// Description: Returns the total size of all bytes owned by all
// pages owned by this book that have the indicated ram
// class.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3098 9 ram_class 1 2962
285 14 Dtool_qQJqCckZ 0 6 301 3038 0 14 Dtool_qQJqCckZ 331 ////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::count_allocated_size
// Access: Published
// Description: Returns the total size of all bytes allocated within
// pages owned by this book.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3098
286 14 Dtool_qQJqa3kc 0 6 301 3038 0 14 Dtool_qQJqa3kc 382 ////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::count_allocated_size
// Access: Published
// Description: Returns the total size of all bytes allocated within
// pages owned by this book that have the indicated ram
// class.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3098 9 ram_class 1 2962
287 14 Dtool_qQJqHGdk 0 4 302 3042 0 14 Dtool_qQJqHGdk 486 ////////////////////////////////////////////////////////////////////
// Function: VertexDataBook::save_to_disk
// Access: Published
// Description: Writes all pages to disk immediately, just in case
// they get evicted later. It makes sense to make this
// call just before taking down a loading screen, to
// minimize chugs from saving pages inadvertently later.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3096
288 14 Dtool_qQJqMpZV 0 6 309 3094 0 14 Dtool_qQJqMpZV 296 ////////////////////////////////////////////////////////////////////
// Function: VertexDataBlock::get_page
// Access: Published
// Description: Returns the page from which this buffer was
// allocated.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3100
289 14 Dtool_qQJqeWNA 0 7 310 3095 1838 14 Dtool_qQJqeWNA 354 ////////////////////////////////////////////////////////////////////
// Function: VertexDataBlock::get_next_block
// Access: Published
// Description: Returns a pointer to the next allocated block in the
// chain, or NULL if there are no more allocated blocks.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3100
290 14 Dtool_qQJqDYtB 0 6 304 3085 0 14 Dtool_qQJqDYtB 0 1 4 this 3 3095
291 14 Dtool_qQJqs_mf 0 7 305 3095 1838 14 Dtool_qQJqs_mf 0 1 4 this 3 3085
292 14 Dtool_qQJqGSOQ 0 7 307 3102 0 14 Dtool_qQJqGSOQ 0 1 4 this 3 3095
293 14 Dtool_qQJq_JZ_ 0 7 308 3095 1838 14 Dtool_qQJq_JZ_ 0 1 4 this 3 3102
294 14 Dtool_qQJqVjYG 0 7 321 3103 1847 14 Dtool_qQJqVjYG 237 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3065
295 14 Dtool_qQJqL33s 0 7 321 3103 1847 14 Dtool_qQJqL33s 232 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 12 array_format 1 3063 10 usage_hint 1 2942
296 14 Dtool_qQJqo2Ms 0 7 322 3103 1847 14 Dtool_qQJqo2Ms 490 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::Copy Assignment Operator
// Access: Published
// Description: The copy assignment operator is not pipeline-safe.
// This will completely obliterate all stages of the
// pipeline, so don't do it for a GeomVertexArrayData
// that is actively being used for rendering.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103 4 copy 1 3065
297 14 Dtool_qQJqBzaq 0 4 324 3042 0 14 Dtool_qQJqBzaq 0 2 4 this 3 3103 4 size 1 3038
298 14 Dtool_qQJqaxwn 0 6 327 3046 0 14 Dtool_qQJqaxwn 330 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::compare_to
// Access: Published
// Description: Returns 0 if the two arrays are equivalent, even if
// they are not the same pointer.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3065 5 other 1 3065
299 14 Dtool_qQJq3CJD 0 7 328 3063 0 14 Dtool_qQJq3CJD 784 // Filename: geomVertexArrayData.I
// Created by: drose (17Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_array_format
// Access: Published
// Description: Returns the format object that describes this array.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3065
300 14 Dtool_qQJqxPce 0 6 329 2942 0 14 Dtool_qQJqxPce 409 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_usage_hint
// Access: Published
// Description: Returns the usage hint that describes to the
// rendering backend how often the vertex data will be
// modified and/or rendered. See geomEnums.h.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3065
301 14 Dtool_qQJqvFNt 0 4 330 3042 0 14 Dtool_qQJqvFNt 514 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::set_usage_hint
// Access: Published
// Description: Changes the UsageHint hint for this array. See
// get_usage_hint().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103 10 usage_hint 1 2942
302 14 Dtool_qQJqW_sd 0 6 331 3043 0 14 Dtool_qQJqW_sd 404 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::has_column
// Access: Published
// Description: Returns true if the array has the named column,
// false otherwise. This is really just a shortcut for
// asking the same thing from the format.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3065 4 name 1 3055
303 14 Dtool_qQJqC4RN 0 6 332 3046 0 14 Dtool_qQJqC4RN 454 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_num_rows
// Access: Published
// Description: Returns the number of rows stored in the array,
// based on the number of bytes and the stride. This
// should be the same for all arrays within a given
// GeomVertexData object.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3065
304 14 Dtool_qQJqTaOY 0 6 333 3043 0 14 Dtool_qQJqTaOY 1075 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::set_num_rows
// Access: Published
// Description: Sets the length of the array to n rows.
//
// Normally, you would not call this directly, since all
// of the arrays in a particular GeomVertexData must
// have the same number of rows; instead, call
// GeomVertexData::set_num_rows().
//
// The return value is true if the number of rows
// was changed, false if the object already contained n
// rows (or if there was some error).
//
// The new vertex data is initialized to 0, including
// the "color" column (but see
// GeomVertexData::set_num_rows()).
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103 1 n 1 3046
305 14 Dtool_qQJqwI3w 0 6 334 3043 0 14 Dtool_qQJqwI3w 757 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::unclean_set_num_rows
// Access: Published
// Description: This method behaves like set_num_rows(), except the
// new data is not initialized. Furthermore, after this
// call, *any* of the data in the GeomVertexArrayData
// may be uninitialized, including the earlier rows.
//
// Normally, you would not call this directly, since all
// of the arrays in a particular GeomVertexData must
// have the same number of rows; instead, call
// GeomVertexData::unclean_set_num_rows().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103 1 n 1 3046
306 14 Dtool_qQJqAyse 0 6 335 3043 0 14 Dtool_qQJqAyse 611 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::reserve_num_rows
// Access: Published
// Description: This ensures that enough memory space for n rows is
// allocated, so that you may increase the number of
// rows to n without causing a new memory allocation.
// This is a performance optimization only; it is
// especially useful when you know ahead of time that
// you will be adding n rows to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103 1 n 1 3046
307 14 Dtool_qQJqWjyr 0 4 336 3042 0 14 Dtool_qQJqWjyr 329 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::clear_rows
// Access: Published
// Description: Removes all of the rows in the array.
// Functionally equivalent to set_num_rows(0).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3103
308 14 Dtool_qQJqfqwK 0 6 337 3046 0 14 Dtool_qQJqfqwK 288 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_data_size_bytes
// Access: Published
// Description: Returns the number of bytes stored in the array.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3065
309 14 Dtool_qQJqTXp2 0 7 338 3105 0 14 Dtool_qQJqTXp2 377 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the array vertex data is
// modified.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3065
310 14 Dtool_qQJq5jFI 0 4 339 3042 0 14 Dtool_qQJq5jFI 227 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3065 3 out 1 3044
311 14 Dtool_qQJq4Lek 0 4 340 3042 0 14 Dtool_qQJq4Lek 226 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3065 3 out 1 3044 12 indent_level 1 3046
312 14 Dtool_qQJq5_AK 0 4 340 3042 0 14 Dtool_qQJq5_AK 226 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3065 3 out 1 3044
313 14 Dtool_qQJq_mAM 0 6 341 3043 0 14 Dtool_qQJq_mAM 566 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::request_resident
// Access: Published
// Description: Returns true if the vertex data is currently resident
// in memory. If this returns true, the next call to
// get_handle()->get_read_pointer() will probably not
// block. If this returns false, the vertex data will
// be brought back into memory shortly; try again later.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3065
314 14 Dtool_qQJqWh8V 0 7 342 3109 0 14 Dtool_qQJqWh8V 529 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_handle
// Access: Published
// Description: Returns an object that can be used to read the actual
// data bytes stored in the array. Calling this method
// locks the data, and will block any other threads
// attempting to read or write the data, until the
// returned object destructs.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3065 14 current_thread 1 3107
315 14 Dtool_qQJq7UXr 0 7 342 3109 0 14 Dtool_qQJq7UXr 529 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_handle
// Access: Published
// Description: Returns an object that can be used to read the actual
// data bytes stored in the array. Calling this method
// locks the data, and will block any other threads
// attempting to read or write the data, until the
// returned object destructs.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3065
316 14 Dtool_qQJqY1wV 0 7 343 3110 1884 14 Dtool_qQJqY1wV 541 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::modify_handle
// Access: Published
// Description: Returns an object that can be used to read or write
// the actual data bytes stored in the array. Calling
// this method locks the data, and will block any other
// threads attempting to read or write the data, until
// the returned object destructs.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103 14 current_thread 1 3107
317 14 Dtool_qQJqIcmt 0 7 343 3110 1884 14 Dtool_qQJqIcmt 541 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::modify_handle
// Access: Published
// Description: Returns an object that can be used to read or write
// the actual data bytes stored in the array. Calling
// this method locks the data, and will block any other
// threads attempting to read or write the data, until
// the returned object destructs.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3103
318 14 Dtool_qQJqKLkX 0 4 344 3042 0 14 Dtool_qQJqKLkX 648 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::prepare
// Access: Public
// Description: Indicates that the data should be enqueued to be
// prepared in the indicated prepared_objects at the
// beginning of the next frame. This will ensure the
// data is already loaded into the GSG if it is expected
// to be rendered soon.
//
// Use this function instead of prepare_now() to preload
// datas from a user interface standpoint.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103 16 prepared_objects 1 3111
319 14 Dtool_qQJq_PUd 0 6 345 3043 0 14 Dtool_qQJq_PUd 383 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::is_prepared
// Access: Published
// Description: Returns true if the data has already been prepared
// or enqueued for preparation on the indicated GSG,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3065 16 prepared_objects 1 3111
320 14 Dtool_qQJqJDsu 0 6 346 3114 0 14 Dtool_qQJqJDsu 894 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::prepare_now
// Access: Public
// Description: Creates a context for the data on the particular
// GSG, if it does not already exist. Returns the new
// (or old) VertexBufferContext. This assumes that the
// GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// datas. If this is not necessarily the case, you
// should use prepare() instead.
//
// Normally, this is not called directly except by the
// GraphicsStateGuardian; a data does not need to be
// explicitly prepared by the user before it may be
// rendered.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3103 16 prepared_objects 1 3111 3 gsg 1 3112
321 14 Dtool_qQJqKEuC 0 6 347 3043 0 14 Dtool_qQJqKEuC 400 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::release
// Access: Public
// Description: Frees the data context only on the indicated object,
// if it exists there. Returns true if it was released,
// false if it had not been prepared.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103 16 prepared_objects 1 3111
322 14 Dtool_qQJq_7uC 0 6 348 3046 0 14 Dtool_qQJq_7uC 398 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::release_all
// Access: Public
// Description: Frees the context allocated on all objects for which
// the data has been declared. Returns the number of
// contexts which have been freed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3103
323 14 Dtool_qQJqqXbF 0 6 349 3074 0 14 Dtool_qQJqqXbF 399 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_independent_lru
// Access: Published, Static
// Description: Returns a pointer to the global LRU object that
// manages the GeomVertexArrayData's that have not (yet)
// been paged out.
//////////////////////////////////////////////////////////////////// 0
324 14 Dtool_qQJqEw5_ 0 6 350 3074 0 14 Dtool_qQJqEw5_ 400 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_small_lru
// Access: Published, Static
// Description: Returns a pointer to the global LRU object that
// manages the GeomVertexArrayData's that are deemed too
// small to be paged out.
//////////////////////////////////////////////////////////////////// 0
325 14 Dtool_qQJqsD26 0 4 351 3042 0 14 Dtool_qQJqsD26 382 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::lru_epoch
// Access: Published, Static
// Description: Marks that an epoch has passed in each LRU. Asks the
// LRU's to consider whether they should perform
// evictions.
//////////////////////////////////////////////////////////////////// 0
326 14 Dtool_qQJqFQim 0 6 352 3096 0 14 Dtool_qQJqFQim 338 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::get_book
// Access: Published, Static
// Description: Returns the global VertexDataBook that will be
// used to allocate vertex data buffers.
//////////////////////////////////////////////////////////////////// 0
327 14 Dtool_qQJqhCd5 0 6 353 3046 0 14 Dtool_qQJqhCd5 0 4 4 this 3 3103 4 self 1 3115 4 view 1 3117 5 flags 1 3046
328 14 Dtool_qQJqgyEZ 0 6 353 3046 0 14 Dtool_qQJqgyEZ 0 4 4 this 3 3065 4 self 1 3115 4 view 1 3117 5 flags 1 3046
329 14 Dtool_qQJqTCoY 0 4 354 3042 0 14 Dtool_qQJqTCoY 0 3 4 this 3 3065 4 self 1 3115 4 view 1 3117
330 14 Dtool_qQJqNsR3 0 7 355 3058 0 14 Dtool_qQJqNsR3 0 0
331 14 Dtool_qQJqurBl 0 7 315 3119 0 14 Dtool_qQJqurBl 0 1 4 this 3 3103
332 14 Dtool_qQJqHqaf 0 7 316 3103 1847 14 Dtool_qQJqHqaf 0 1 4 this 3 3119
333 14 Dtool_qQJqi7GK 0 6 317 3081 0 14 Dtool_qQJqi7GK 0 1 4 this 3 3103
334 14 Dtool_qQJqR3m1 0 7 318 3103 1847 14 Dtool_qQJqR3m1 0 1 4 this 3 3081
335 14 Dtool_qQJqSXKf 0 6 319 3068 0 14 Dtool_qQJqSXKf 0 1 4 this 3 3103
336 14 Dtool_qQJqIzps 0 7 320 3103 1847 14 Dtool_qQJqIzps 0 1 4 this 3 3068
337 14 Dtool_qQJquaEm 0 7 362 3103 1847 14 Dtool_qQJquaEm 236 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_object
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3110
338 14 Dtool_qQJqaPDR 0 7 362 3065 0 14 Dtool_qQJqaPDR 236 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_object
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3109
339 14 Dtool_qQJqksp0 0 7 363 3063 0 14 Dtool_qQJqksp0 243 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_array_format
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3109
340 14 Dtool_qQJqtdrI 0 6 364 2942 0 14 Dtool_qQJqtdrI 241 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_usage_hint
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3109
341 14 Dtool_qQJqi9M9 0 6 365 3046 0 14 Dtool_qQJqi9M9 239 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_num_rows
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3109
342 14 Dtool_qQJq_DY4 0 6 366 3043 0 14 Dtool_qQJq_DY4 236 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::set_num_rows
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3110 1 n 1 3046
343 14 Dtool_qQJqJbnk 0 6 367 3043 0 14 Dtool_qQJqJbnk 244 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::unclean_set_num_rows
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3110 1 n 1 3046
344 14 Dtool_qQJqAN5W 0 6 368 3043 0 14 Dtool_qQJqAN5W 240 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::reserve_num_rows
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3110 1 n 1 3046
345 14 Dtool_qQJqRt2b 0 4 369 3042 0 14 Dtool_qQJqRt2b 237 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::clear_rows
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3110
346 14 Dtool_qQJqs9ud 0 6 370 3046 0 14 Dtool_qQJqs9ud 246 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_data_size_bytes
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3109
347 14 Dtool_qQJqlsYT 0 7 371 3105 0 14 Dtool_qQJqlsYT 239 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_modified
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3109
348 14 Dtool_qQJqjdit 0 6 372 3043 0 14 Dtool_qQJqjdit 566 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayData::request_resident
// Access: Published
// Description: Returns true if the vertex data is currently resident
// in memory. If this returns true, the next call to
// get_handle()->get_read_pointer() will probably not
// block. If this returns false, the vertex data will
// be brought back into memory shortly; try again later.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3109
349 14 Dtool_qQJq1fE3 0 4 373 3042 0 14 Dtool_qQJq1fE3 289 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::copy_data_from
// Access: Public
// Description: Copies the entire data array from the other object.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3110 5 other 1 3109
350 14 Dtool_qQJqTfwk 0 4 373 3042 0 14 Dtool_qQJqTfwk 0 2 4 this 3 3110 6 buffer 1 3115
351 14 Dtool_qQJqgUq0 0 4 374 3042 0 14 Dtool_qQJqgUq0 476 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::copy_subdata_from
// Access: Public
// Description: Copies a portion of the data array from the other
// object into a portion of the data array of this
// object. If to_size != from_size, the size of this
// data array is adjusted accordingly.
//////////////////////////////////////////////////////////////////// 6 4 this 3 3110 8 to_start 1 3038 7 to_size 1 3038 5 other 1 3109 10 from_start 1 3038 9 from_size 1 3038
352 14 Dtool_qQJqFjB2 0 4 374 3042 0 14 Dtool_qQJqFjB2 0 4 4 this 3 3110 8 to_start 1 3038 7 to_size 1 3038 6 buffer 1 3115
353 14 Dtool_qQJq1eyy 0 4 374 3042 0 14 Dtool_qQJq1eyy 0 6 4 this 3 3110 8 to_start 1 3038 7 to_size 1 3038 6 buffer 1 3115 10 from_start 1 3038 9 from_size 1 3038
354 14 Dtool_qQJqYqmb 0 6 375 3037 0 14 Dtool_qQJqYqmb 445 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_data
// Access: Published
// Description: Returns the entire raw data of the
// GeomVertexArrayData object, formatted as a string.
// This is primarily for the benefit of high-level
// languages such as Python.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3109
355 14 Dtool_qQJqazuk 0 4 376 3042 0 14 Dtool_qQJqazuk 415 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::set_data
// Access: Public
// Description: Replaces the entire raw data array with the contents
// of the indicated string. This is primarily for the
// benefit of high-level languages like Python.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3110 4 data 1 3037
356 14 Dtool_qQJqEi7l 0 6 377 3037 0 14 Dtool_qQJqEi7l 453 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::get_subdata
// Access: Published
// Description: Returns a subset of the raw data of the
// GeomVertexArrayData object, formatted as a string.
// This is primarily for the benefit of high-level
// languages such as Python.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3109 5 start 1 3038 4 size 1 3038
357 14 Dtool_qQJqaKat 0 4 378 3042 0 14 Dtool_qQJqaKat 518 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::set_subdata
// Access: Public
// Description: Replaces a portion of the data array from the
// indicated string. If size != data.size(), the size
// of this data array is adjusted accordingly.
//
// This is primarily for the benefit of high-level
// languages like Python.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3110 5 start 1 3038 4 size 1 3038 4 data 1 3037
358 14 Dtool_qQJqyhDL 0 4 379 3042 0 14 Dtool_qQJqyhDL 271 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexArrayDataHandle::mark_used
// Access: Published
// Description: Marks the array data recently-used.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3109
359 14 Dtool_qQJqVIB7 0 7 380 3058 0 14 Dtool_qQJqVIB7 0 0
360 14 Dtool_qQJqThJE 0 7 357 3102 0 14 Dtool_qQJqThJE 0 1 4 this 3 3110
361 14 Dtool_qQJqYaNv 0 7 358 3110 1884 14 Dtool_qQJqYaNv 0 1 4 this 3 3102
362 14 Dtool_qQJq4wn1 0 6 359 3068 0 14 Dtool_qQJq4wn1 0 1 4 this 3 3110
363 14 Dtool_qQJqL1Nu 0 7 360 3110 1884 14 Dtool_qQJqL1Nu 0 1 4 this 3 3068
364 14 Dtool_qQJqMcfF 0 4 382 3042 0 14 Dtool_qQJqMcfF 1310 // Filename: geomCacheManager.I
// Created by: drose (11Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomCacheManager::set_max_size
// Access: Published
// Description: Specifies the maximum number of entries in the cache
// for storing pre-processed data for rendering
// vertices. This limit is flexible, and may be
// temporarily exceeded if many different Geoms are
// pre-processed during the space of a single frame.
//
// This is not a limit on the actual vertex data, which
// is what it is; it is also not a limit on the amount
// of memory used by the video driver or the system
// graphics interface, which Panda has no control over.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3120 8 max_size 1 3046
365 14 Dtool_qQJq6AF8 0 6 383 3046 0 14 Dtool_qQJq6AF8 390 ////////////////////////////////////////////////////////////////////
// Function: GeomCacheManager::get_max_size
// Access: Published
// Description: Returns the maximum number of entries in the cache
// for storing pre-processed data for rendering
// vertices. See set_max_size().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3120
366 14 Dtool_qQJqgQI0 0 6 384 3046 0 14 Dtool_qQJqgQI0 285 ////////////////////////////////////////////////////////////////////
// Function: GeomCacheManager::get_total_size
// Access: Published
// Description: Returns the number of entries currently in the cache.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3120
367 14 Dtool_qQJq6vsj 0 4 385 3042 0 14 Dtool_qQJq6vsj 269 ////////////////////////////////////////////////////////////////////
// Function: GeomCacheManager::flush
// Access: Published
// Description: Immediately empties all elements in the cache.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3122
368 14 Dtool_qQJqqysg 0 6 386 3122 0 14 Dtool_qQJqqysg 281 ////////////////////////////////////////////////////////////////////
// Function: GeomCacheManager::get_global_ptr
// Access: Published, Static
// Description: Returns the global cache manager pointer.
//////////////////////////////////////////////////////////////////// 0
369 14 Dtool_qQJqp1ZT 0 4 388 3042 0 14 Dtool_qQJqp1ZT 0 2 4 this 3 3123 6 matrix 1 3125
370 14 Dtool_qQJqrQqo 0 4 389 3042 0 14 Dtool_qQJqrQqo 579 ////////////////////////////////////////////////////////////////////
// Function: VertexTransform::mult_matrix
// Access: Published, Virtual
// Description: Premultiplies this transform's matrix with the
// indicated previous matrix, so that the result is the
// net composition of the given transform with this
// transform. The result is stored in the parameter
// "result", which should not be the same matrix as
// previous.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3123 6 result 1 3125 8 previous 1 3127
371 14 Dtool_qQJqJ_5x 0 4 390 3042 0 14 Dtool_qQJqJ_5x 477 ////////////////////////////////////////////////////////////////////
// Function: VertexTransform::accumulate_matrix
// Access: Published, Virtual
// Description: Adds the value of this transform's matrix, modified
// by the indicated weight, into the indicated
// accumulation matrix. This is used to compute the
// result of several blended transforms.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3123 5 accum 1 3125 6 weight 1 3047
372 14 Dtool_qQJqzf8x 0 7 391 3105 0 14 Dtool_qQJqzf8x 871 // Filename: vertexTransform.I
// Created by: drose (23Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VertexTransform::get_modified
// Access: Published
// Description: Returns a sequence number that's guaranteed to change
// at least every time the value reported by
// get_matrix() changes.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3123 14 current_thread 1 3107
373 14 Dtool_qQJqXeSn 0 4 392 3042 0 14 Dtool_qQJqXeSn 232 ////////////////////////////////////////////////////////////////////
// Function: VertexTransform::output
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3123 3 out 1 3044
374 14 Dtool_qQJqeY1t 0 4 393 3042 0 14 Dtool_qQJqeY1t 231 ////////////////////////////////////////////////////////////////////
// Function: VertexTransform::write
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3123 3 out 1 3044 12 indent_level 1 3046
375 14 Dtool_qQJqdZCF 0 7 394 3105 0 14 Dtool_qQJqdZCF 765 ////////////////////////////////////////////////////////////////////
// Function: VertexTransform::get_next_modified
// Access: Public, Static
// Description: Returns a monotonically increasing sequence. Each
// time this is called, a new sequence number is
// returned, higher than the previous value.
//
// This is used to ensure that all
// VertexTransform::get_modified() calls return an
// increasing number in the same space, so that
// TransformBlend::get_modified() is easy to determine.
// It is similar to Geom::get_modified(), but it is in a
// different space.
//////////////////////////////////////////////////////////////////// 1 14 current_thread 1 3107
376 14 Dtool_qQJqLuIx 0 7 395 3105 0 14 Dtool_qQJqLuIx 474 ////////////////////////////////////////////////////////////////////
// Function: VertexTransform::get_global_modified
// Access: Published, Static
// Description: Returns the currently highest
// VertexTransform::get_modified() value in the world.
// This can be used as a quick way to determine if any
// VertexTransforms have changed value recently.
//////////////////////////////////////////////////////////////////// 1 14 current_thread 1 3107
377 14 Dtool_qQJqRa2Z 0 7 396 3058 0 14 Dtool_qQJqRa2Z 0 0
378 14 Dtool_qQJq9dPL 0 7 398 3129 0 14 Dtool_qQJq9dPL 227 ////////////////////////////////////////////////////////////////////
// Function: TransformTable::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 0
379 14 Dtool_qQJqTts5 0 7 398 3129 0 14 Dtool_qQJqTts5 232 ////////////////////////////////////////////////////////////////////
// Function: TransformTable::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3130
380 14 Dtool_qQJqUxgN 0 7 399 3129 0 14 Dtool_qQJqUxgN 240 ////////////////////////////////////////////////////////////////////
// Function: TransformTable::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3129 4 copy 1 3130
381 14 Dtool_qQJqmQpE 0 6 400 3043 0 14 Dtool_qQJqmQpE 997 // Filename: transformTable.I
// Created by: drose (23Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformTable::is_registered
// Access: Published
// Description: Returns true if this table has been registered.
// Once it has been registered, the set of transforms in
// a TransformTable may not be further modified; but
// it must be registered before it can be assigned to a
// Geom.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3130
382 14 Dtool_qQJq8IXz 0 7 401 3130 0 14 Dtool_qQJq8IXz 927 ////////////////////////////////////////////////////////////////////
// Function: TransformTable::register_table
// Access: Published, Static
// Description: Registers a TransformTable for use. This is
// similar to GeomVertexFormat::register_format(). Once
// registered, a TransformTable may no longer be
// modified (although the individual VertexTransform
// objects may modify their reported transforms).
//
// This must be called before a table may be used in a
// Geom. After this call, you should discard the
// original pointer you passed in (which may or may not
// now be invalid) and let its reference count decrement
// normally; you should use only the returned value from
// this point on.
//////////////////////////////////////////////////////////////////// 1 5 table 1 3130
383 14 Dtool_qQJq5H42 0 6 402 3046 0 14 Dtool_qQJq5H42 280 ////////////////////////////////////////////////////////////////////
// Function: TransformTable::get_num_transforms
// Access: Published
// Description: Returns the number of transforms in the table.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3130
384 14 Dtool_qQJqgSIY 0 7 403 3123 0 14 Dtool_qQJqgSIY 268 ////////////////////////////////////////////////////////////////////
// Function: TransformTable::get_transform
// Access: Published
// Description: Returns the nth transform in the table.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3130 1 n 1 3046
385 14 Dtool_qQJqaOQ4 0 7 404 3105 0 14 Dtool_qQJqaOQ4 569 ////////////////////////////////////////////////////////////////////
// Function: TransformTable::get_modified
// Access: Published
// Description: Returns a sequence number that's guaranteed to change
// at least when any VertexTransforms in the table
// change. (However, this is only true for a registered
// table. An unregistered table may or may not
// reflect an update here when a VertexTransform
// changes.)
//////////////////////////////////////////////////////////////////// 2 4 this 3 3130 14 current_thread 1 3107
386 14 Dtool_qQJq9zOW 0 4 405 3042 0 14 Dtool_qQJq9zOW 310 ////////////////////////////////////////////////////////////////////
// Function: TransformTable::set_transform
// Access: Published
// Description: Replaces the nth transform. Only valid for
// unregistered tables.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3129 1 n 1 3046 9 transform 1 3123
387 14 Dtool_qQJqWMbq 0 4 406 3042 0 14 Dtool_qQJqWMbq 312 ////////////////////////////////////////////////////////////////////
// Function: TransformTable::remove_transform
// Access: Published
// Description: Removes the nth transform. Only valid for
// unregistered tables.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3129 1 n 1 3046
388 14 Dtool_qQJqu_JV 0 6 407 3046 0 14 Dtool_qQJqu_JV 562 ////////////////////////////////////////////////////////////////////
// Function: TransformTable::add_transform
// Access: Published
// Description: Adds a new transform to the table and returns the
// index number of the new transform. Only valid for
// unregistered tables.
//
// This does not automatically uniquify the pointer; if
// the transform is already present in the table, it
// will be added twice.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3129 9 transform 1 3123
389 14 Dtool_qQJq6U5C 0 4 408 3042 0 14 Dtool_qQJq6U5C 221 ////////////////////////////////////////////////////////////////////
// Function: TransformTable::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3130 3 out 1 3044
390 14 Dtool_qQJqdFiZ 0 7 409 3058 0 14 Dtool_qQJqdFiZ 0 0
391 14 Dtool_qQJqe0eS 0 7 411 3132 1932 14 Dtool_qQJqe0eS 717 // Filename: transformBlend.I
// Created by: drose (24Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 0
392 14 Dtool_qQJqRqL0 0 7 411 3132 1932 14 Dtool_qQJqRqL0 232 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3133
393 14 Dtool_qQJqE4vc 0 7 411 3132 1932 14 Dtool_qQJqE4vc 227 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 10 transform0 1 3123 7 weight0 1 3047
394 14 Dtool_qQJq5cWw 0 7 411 3132 1932 14 Dtool_qQJq5cWw 227 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 4 10 transform0 1 3123 7 weight0 1 3047 10 transform1 1 3123 7 weight1 1 3047
395 14 Dtool_qQJqmVV1 0 7 411 3132 1932 14 Dtool_qQJqmVV1 227 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 6 10 transform0 1 3123 7 weight0 1 3047 10 transform1 1 3123 7 weight1 1 3047 10 transform2 1 3123 7 weight2 1 3047
396 14 Dtool_qQJqkvBo 0 7 411 3132 1932 14 Dtool_qQJqkvBo 227 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 8 10 transform0 1 3123 7 weight0 1 3047 10 transform1 1 3123 7 weight1 1 3047 10 transform2 1 3123 7 weight2 1 3047 10 transform3 1 3123 7 weight3 1 3047
397 14 Dtool_qQJqKjWy 0 6 412 3132 0 14 Dtool_qQJqKjWy 240 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3132 4 copy 1 3133
398 14 Dtool_qQJqoz5o 0 6 414 3046 0 14 Dtool_qQJqoz5o 300 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::compare_to
// Access: Published
// Description: Defines an arbitrary ordering for TransformBlend
// objects.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3133 5 other 1 3133
399 14 Dtool_qQJq_D64 0 6 415 3043 0 14 Dtool_qQJq_D64 226 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::operator <
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3133 5 other 1 3133
400 14 Dtool_qQJqZE3n 0 6 416 3043 0 14 Dtool_qQJqZE3n 227 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::operator ==
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3133 5 other 1 3133
401 14 Dtool_qQJqZmxW 0 6 417 3043 0 14 Dtool_qQJqZmxW 227 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::operator !=
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3133 5 other 1 3133
402 14 Dtool_qQJquVAn 0 4 418 3042 0 14 Dtool_qQJquVAn 344 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::add_transform
// Access: Published
// Description: Adds a new transform to the blend. If the transform
// already existed, increases its weight factor.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3132 9 transform 1 3123 6 weight 1 3047
403 14 Dtool_qQJq9e42 0 4 419 3042 0 14 Dtool_qQJq9e42 279 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::remove_transform
// Access: Published
// Description: Removes the indicated transform from the blend.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3132 9 transform 1 3123
404 14 Dtool_qQJqfmAH 0 4 420 3042 0 14 Dtool_qQJqfmAH 458 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::limit_transforms
// Access: Published
// Description: If the total number of transforms in the blend
// exceeds max_transforms, removes the n least-important
// transforms as needed to reduce the number of
// transforms to max_transforms.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3132 14 max_transforms 1 3046
405 14 Dtool_qQJqKUUu 0 4 421 3042 0 14 Dtool_qQJqKUUu 456 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::normalize_weights
// Access: Published
// Description: Rescales all of the weights on the various transforms
// so that they sum to 1.0. It is generally a good idea
// to call this after adding or removing transforms from
// the blend.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3132
406 14 Dtool_qQJq5JYU 0 6 422 3043 0 14 Dtool_qQJq5JYU 317 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::has_transform
// Access: Published
// Description: Returns true if the blend has the indicated
// transform, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3133 9 transform 1 3123
407 14 Dtool_qQJqlw9I 0 6 423 3047 0 14 Dtool_qQJqlw9I 364 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::get_weight
// Access: Published
// Description: Returns the weight associated with the indicated
// transform, or 0 if there is no entry for the
// transform.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3133 9 transform 1 3123
408 14 Dtool_qQJqgwvf 0 6 423 3047 0 14 Dtool_qQJqgwvf 323 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::get_weight
// Access: Published
// Description: Returns the weight associated with the nth transform
// stored in the blend object.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3133 1 n 1 3046
409 14 Dtool_qQJqdJun 0 6 424 3046 0 14 Dtool_qQJqdJun 311 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::get_num_transforms
// Access: Published
// Description: Returns the number of transforms stored in the blend
// object.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3133
410 14 Dtool_qQJqcj_I 0 7 425 3123 0 14 Dtool_qQJqcj_I 299 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::get_transform
// Access: Published
// Description: Returns the nth transform stored in the blend
// object.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3133 1 n 1 3046
411 14 Dtool_qQJqZdFH 0 4 426 3042 0 14 Dtool_qQJqZdFH 300 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::set_transform
// Access: Published
// Description: Replaces the nth transform stored in the blend
// object.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3132 1 n 1 3046 9 transform 1 3123
412 14 Dtool_qQJqfU3_ 0 4 427 3042 0 14 Dtool_qQJqfU3_ 324 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::set_weight
// Access: Published
// Description: Replaces the weight associated with the nth transform
// stored in the blend object.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3132 1 n 1 3046 6 weight 1 3047
413 14 Dtool_qQJqbanF 0 4 428 3042 0 14 Dtool_qQJqbanF 405 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::update_blend
// Access: Published
// Description: Recomputes the internal representation of the blend
// value, if necessary. You should call this before
// calling get_blend() or transform_point().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3133 14 current_thread 1 3107
414 14 Dtool_qQJq3RLn 0 4 429 3042 0 14 Dtool_qQJq3RLn 522 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::get_blend
// Access: Published
// Description: Returns the current value of the blend, based on the
// current value of all of the nested transform objects
// and their associated weights.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3133 6 result 1 3125 14 current_thread 1 3107
415 14 Dtool_qQJq3v55 0 4 430 3042 0 14 Dtool_qQJq3v55 419 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::transform_point (double)
// Access: Published
// Description: Transforms the indicated point by the blend matrix.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3133 5 point 1 3135 14 current_thread 1 3107
416 14 Dtool_qQJqHON6 0 4 430 3042 0 14 Dtool_qQJqHON6 410 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::transform_point
// Access: Published
// Description: Transforms the indicated point by the blend matrix.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3133 5 point 1 3137 14 current_thread 1 3107
417 14 Dtool_qQJqFz5p 0 4 430 3042 0 14 Dtool_qQJqFz5p 419 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::transform_point (double)
// Access: Published
// Description: Transforms the indicated point by the blend matrix.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3133 5 point 1 3139 14 current_thread 1 3107
418 14 Dtool_qQJqVVNq 0 4 430 3042 0 14 Dtool_qQJqVVNq 410 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::transform_point
// Access: Published
// Description: Transforms the indicated point by the blend matrix.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3133 5 point 1 3141 14 current_thread 1 3107
419 14 Dtool_qQJquO9h 0 4 431 3042 0 14 Dtool_qQJquO9h 421 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::transform_vector (double)
// Access: Published
// Description: Transforms the indicated vector by the blend matrix.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3133 5 point 1 3143 14 current_thread 1 3107
420 14 Dtool_qQJqrOZa 0 4 431 3042 0 14 Dtool_qQJqrOZa 412 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::transform_vector
// Access: Published
// Description: Transforms the indicated vector by the blend matrix.
//
// You should call update_blend() to ensure that the
// cache is up-to-date before calling this.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3133 5 point 1 3145 14 current_thread 1 3107
421 14 Dtool_qQJq6lHp 0 7 432 3105 0 14 Dtool_qQJq6lHp 351 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::get_modified
// Access: Published
// Description: Returns a counter which is guaranteed to increment at
// least as often as the result of get_blend() changes.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3133 14 current_thread 1 3107
422 14 Dtool_qQJqaozy 0 4 433 3042 0 14 Dtool_qQJqaozy 222 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3133 3 out 1 3044
423 14 Dtool_qQJqfQ_g 0 4 434 3042 0 14 Dtool_qQJqfQ_g 221 ////////////////////////////////////////////////////////////////////
// Function: TransformBlend::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3133 3 out 1 3044 12 indent_level 1 3046
424 14 Dtool_qQJq5_ZK 0 7 435 3058 0 14 Dtool_qQJq5_ZK 0 0
425 14 Dtool_qQJqeE_A 0 7 437 3147 0 14 Dtool_qQJqeE_A 232 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 0
426 14 Dtool_qQJq_bjS 0 7 437 3147 0 14 Dtool_qQJq_bjS 237 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3148
427 14 Dtool_qQJq3Q0k 0 7 438 3147 0 14 Dtool_qQJq3Q0k 245 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3147 4 copy 1 3148
428 14 Dtool_qQJq0EyH 0 6 439 3046 0 14 Dtool_qQJq0EyH 817 // Filename: transformBlendTable.I
// Created by: drose (24Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::get_num_blends
// Access: Published
// Description: Returns the total number of different blend
// combinations in the table.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3148
429 14 Dtool_qQJq5_i5 0 6 440 3133 0 14 Dtool_qQJq5_i5 265 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::get_blend
// Access: Published
// Description: Returns the nth blend in the table.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3148 1 n 1 3046
430 14 Dtool_qQJqJ4l9 0 7 441 3105 0 14 Dtool_qQJqJ4l9 382 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::get_modified
// Access: Published
// Description: Returns a counter which is guaranteed to increment at
// least when any TransformBlends within the table
// have changed.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3148 14 current_thread 1 3107
431 14 Dtool_qQJq8ENT 0 4 442 3042 0 14 Dtool_qQJq8ENT 311 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::set_blend
// Access: Published
// Description: Replaces the blend at the nth position with the
// indicated value.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3147 1 n 1 3046 5 blend 1 3133
432 14 Dtool_qQJqx_oD 0 4 443 3042 0 14 Dtool_qQJqx_oD 271 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::remove_blend
// Access: Published
// Description: Removes the blend at the nth position.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3147 1 n 1 3046
433 14 Dtool_qQJq3OCx 0 6 444 3046 0 14 Dtool_qQJq3OCx 414 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::add_blend
// Access: Published
// Description: Adds a new blend to the table, and returns its
// index number. If there is already an identical blend
// in the table, simply returns that number instead.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3147 5 blend 1 3133
434 14 Dtool_qQJq3o16 0 6 445 3046 0 14 Dtool_qQJq3o16 603 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::get_num_transforms
// Access: Published
// Description: Returns the number of unique VertexTransform objects
// represented in the table. This will correspond to
// the size of the TransformTable object that would
// represent the same table. This is also the same
// limit reflected by
// GraphicsStateGuardian::get_max_vertex_transform_indices().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3148
435 14 Dtool_qQJqjqiw 0 6 446 3046 0 14 Dtool_qQJqjqiw 503 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::get_max_simultaneous_transforms
// Access: Published
// Description: Returns the maximum number of unique VertexTransform
// objects that are applied to any one vertex
// simultaneously. This is the same limit reflected by
// GraphicsStateGuardian::get_max_vertex_transforms().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3148
436 14 Dtool_qQJqiJI_ 0 4 447 3042 0 14 Dtool_qQJqiJI_ 383 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::set_rows
// Access: Published
// Description: Specifies the subset of rows (vertices) in the
// associated GeomVertexData that this
// TransformBlendTable actually affects.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3147 4 rows 1 3150
437 14 Dtool_qQJqGxKd 0 6 448 3150 0 14 Dtool_qQJqGxKd 381 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::get_rows
// Access: Published
// Description: Returns the subset of rows (vertices) in the
// associated GeomVertexData that this
// TransformBlendTable actually affects.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3148
438 14 Dtool_qQJqQ3il 0 6 449 3153 0 14 Dtool_qQJqQ3il 458 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::modify_rows
// Access: Published
// Description: Returns a modifiable reference to the SparseArray
// that specifies the subset of rows (vertices) in the
// associated GeomVertexData that this
// TransformBlendTable actually affects.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3147
439 14 Dtool_qQJqDcUt 0 4 450 3042 0 14 Dtool_qQJqDcUt 226 ////////////////////////////////////////////////////////////////////
// Function: TransformBlendTable::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3148 3 out 1 3044 12 indent_level 1 3046
440 14 Dtool_qQJqplHA 0 7 451 3058 0 14 Dtool_qQJqplHA 0 0
441 14 Dtool_qQJqcSPk 0 7 453 3055 0 14 Dtool_qQJqcSPk 945 // Filename: vertexSlider.I
// Created by: drose (28Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VertexSlider::get_name
// Access: Published
// Description: Returns the name of this particular slider. Every
// unique blend shape within a particular Geom must be
// identified with a different name, which is shared by
// the slider that controls it.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3154
442 14 Dtool_qQJq7HBY 0 6 454 3047 0 14 Dtool_qQJq7HBY 0 1 4 this 3 3154
443 14 Dtool_qQJqQyex 0 7 455 3105 0 14 Dtool_qQJqQyex 377 ////////////////////////////////////////////////////////////////////
// Function: VertexSlider::get_modified
// Access: Published
// Description: Returns a sequence number that's guaranteed to change
// at least every time the value reported by
// get_slider() changes.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3154 14 current_thread 1 3107
444 14 Dtool_qQJq2_kf 0 4 456 3042 0 14 Dtool_qQJq2_kf 229 ////////////////////////////////////////////////////////////////////
// Function: VertexSlider::output
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3154 3 out 1 3044
445 14 Dtool_qQJqzQrv 0 4 457 3042 0 14 Dtool_qQJqzQrv 228 ////////////////////////////////////////////////////////////////////
// Function: VertexSlider::write
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3154 3 out 1 3044 12 indent_level 1 3046
446 14 Dtool_qQJqad8s 0 7 458 3058 0 14 Dtool_qQJqad8s 0 0
447 14 Dtool_qQJq_4qZ 0 7 460 3156 0 14 Dtool_qQJq_4qZ 224 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 0
448 14 Dtool_qQJqFKDH 0 7 460 3156 0 14 Dtool_qQJqFKDH 229 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3157
449 14 Dtool_qQJqloXJ 0 7 461 3156 0 14 Dtool_qQJqloXJ 237 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3156 4 copy 1 3157
450 14 Dtool_qQJq181P 0 6 462 3043 0 14 Dtool_qQJq181P 985 // Filename: sliderTable.I
// Created by: drose (28Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: SliderTable::is_registered
// Access: Published
// Description: Returns true if this table has been registered.
// Once it has been registered, the set of sliders in
// a SliderTable may not be further modified; but
// it must be registered before it can be assigned to a
// Geom.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3157
451 14 Dtool_qQJqMgH_ 0 7 463 3157 0 14 Dtool_qQJqMgH_ 912 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::register_table
// Access: Published, Static
// Description: Registers a SliderTable for use. This is
// similar to GeomVertexFormat::register_format(). Once
// registered, a SliderTable may no longer be
// modified (although the individual VertexSlider
// objects may modify their reported sliders).
//
// This must be called before a table may be used in a
// Geom. After this call, you should discard the
// original pointer you passed in (which may or may not
// now be invalid) and let its reference count decrement
// normally; you should use only the returned value from
// this point on.
//////////////////////////////////////////////////////////////////// 1 5 table 1 3157
452 14 Dtool_qQJqWedP 0 6 464 3046 0 14 Dtool_qQJqWedP 271 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::get_num_sliders
// Access: Published
// Description: Returns the number of sliders in the table.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3157
453 14 Dtool_qQJqiKKK 0 7 465 3154 0 14 Dtool_qQJqiKKK 259 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::get_slider
// Access: Published
// Description: Returns the nth slider in the table.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3157 1 n 1 3046
454 14 Dtool_qQJqnGgJ 0 6 466 3150 0 14 Dtool_qQJqnGgJ 320 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::get_slider_rows
// Access: Published
// Description: Returns the set of rows (vertices) governed by the
// nth slider in the table.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3157 1 n 1 3046
455 14 Dtool_qQJqLzF1 0 6 467 3150 0 14 Dtool_qQJqLzF1 416 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::find_sliders
// Access: Published
// Description: Returns a list of slider indices that represent the
// list of sliders with the indicated name, or an empty
// SparseArray if no slider in the table has that name.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3157 4 name 1 3055
456 14 Dtool_qQJq_R_2 0 6 468 3043 0 14 Dtool_qQJq_R_2 329 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::has_slider
// Access: Published
// Description: Returns true if the table has at least one slider by
// the indicated name, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3157 4 name 1 3055
457 14 Dtool_qQJqy3YI 0 6 469 3043 0 14 Dtool_qQJqy3YI 309 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::is_empty
// Access: Published
// Description: Returns true if the table has no sliders, false if it
// has at least one.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3157
458 14 Dtool_qQJqWdqY 0 7 470 3105 0 14 Dtool_qQJqWdqY 560 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::get_modified
// Access: Published
// Description: Returns a sequence number that's guaranteed to change
// at least when any VertexSliders in the table
// change. (However, this is only true for a registered
// table. An unregistered table may or may not
// reflect an update here when a VertexSlider
// changes.)
//////////////////////////////////////////////////////////////////// 2 4 this 3 3157 14 current_thread 1 3107
459 14 Dtool_qQJqRlhx 0 4 471 3042 0 14 Dtool_qQJqRlhx 301 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::set_slider
// Access: Published
// Description: Replaces the nth slider. Only valid for
// unregistered tables.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3156 1 n 1 3046 6 slider 1 3154
460 14 Dtool_qQJqow2A 0 4 472 3042 0 14 Dtool_qQJqow2A 327 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::set_slider_rows
// Access: Published
// Description: Replaces the rows affected by the nth slider. Only
// valid for unregistered tables.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3156 1 n 1 3046 4 rows 1 3150
461 14 Dtool_qQJqDBVG 0 4 473 3042 0 14 Dtool_qQJqDBVG 303 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::remove_slider
// Access: Published
// Description: Removes the nth slider. Only valid for
// unregistered tables.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3156 1 n 1 3046
462 14 Dtool_qQJqQ5UW 0 6 474 3046 0 14 Dtool_qQJqQ5UW 373 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::add_slider
// Access: Published
// Description: Adds a new slider to the table, and returns the
// index number of the new slider. Only valid for
// unregistered tables.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3156 6 slider 1 3154 4 rows 1 3150
463 14 Dtool_qQJqLkXb 0 4 475 3042 0 14 Dtool_qQJqLkXb 218 ////////////////////////////////////////////////////////////////////
// Function: SliderTable::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3157 3 out 1 3044
464 14 Dtool_qQJqcIiW 0 7 476 3058 0 14 Dtool_qQJqcIiW 0 0
465 14 Dtool_qQJqKRDk 0 7 482 3159 1999 14 Dtool_qQJqKRDk 232 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3072
466 14 Dtool_qQJqRp_z 0 7 482 3159 1999 14 Dtool_qQJqRp_z 477 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::Constructor
// Access: Published
// Description: This constructor copies all of the basic properties
// of the source VertexData, like usage_hint and
// animation tables, but does not copy the actual data,
// and it allows you to specify a different format.
//////////////////////////////////////////////////////////////////// 2 4 copy 1 3072 6 format 1 3070
467 14 Dtool_qQJqrYjH 0 7 482 3159 1999 14 Dtool_qQJqrYjH 227 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 3 4 name 1 3037 6 format 1 3070 10 usage_hint 1 2942
468 14 Dtool_qQJqDxOu 0 7 483 3159 1999 14 Dtool_qQJqDxOu 480 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::Copy Assignment Operator
// Access: Published
// Description: The copy assignment operator is not pipeline-safe.
// This will completely obliterate all stages of the
// pipeline, so don't do it for a GeomVertexData that is
// actively being used for rendering.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 4 copy 1 3072
469 14 Dtool_qQJqpkcB 0 4 485 3042 0 14 Dtool_qQJqpkcB 0 2 4 this 3 3159 4 size 1 3038
470 14 Dtool_qQJqhhxk 0 6 488 3046 0 14 Dtool_qQJqhhxk 326 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::compare_to
// Access: Published
// Description: Returns 0 if the two objects are equivalent, even if
// they are not the same pointer.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3072 5 other 1 3072
471 14 Dtool_qQJqBGI0 0 6 489 3037 0 14 Dtool_qQJqBGI0 866 // Filename: geomVertexData.I
// Created by: drose (06Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_name
// Access: Published
// Description: Returns the name passed to the constructor, if any.
// This name is reported on the PStats graph for vertex
// computations.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072
472 14 Dtool_qQJqiYq5 0 4 490 3042 0 14 Dtool_qQJqiYq5 345 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_name
// Access: Published
// Description: Changes the name of the vertex data. This name is
// reported on the PStats graph for vertex computations.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 4 name 1 3037
473 14 Dtool_qQJqs9db 0 6 491 2942 0 14 Dtool_qQJqs9db 778 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_usage_hint
// Access: Published
// Description: Returns the usage hint that was passed to the
// constructor, and which will be passed to each array
// data object created initially, and arrays created as
// the result of a convert_to() operation. See
// geomEnums.h.
//
// However, each individual array may be replaced with a
// different array object with an independent usage hint
// specified, so there is no guarantee that the
// individual arrays all have the same usage_hint.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072
474 14 Dtool_qQJqk_1i 0 4 492 3042 0 14 Dtool_qQJqk_1i 580 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_usage_hint
// Access: Published
// Description: Changes the UsageHint hint for this vertex data, and
// for all of the arrays that share this data. See
// get_usage_hint().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 10 usage_hint 1 2942
475 14 Dtool_qQJq67sy 0 7 493 3070 0 14 Dtool_qQJq67sy 318 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_format
// Access: Published
// Description: Returns a pointer to the GeomVertexFormat structure
// that defines this data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072
476 14 Dtool_qQJqD1zm 0 4 494 3042 0 14 Dtool_qQJqD1zm 585 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_format
// Access: Published
// Description: Changes the format of the vertex data. If the data
// is not empty, this will implicitly change every row
// to match the new format.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 6 format 1 3070
477 14 Dtool_qQJqM5bJ 0 4 495 3042 0 14 Dtool_qQJqM5bJ 784 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::unclean_set_format
// Access: Published
// Description: Changes the format of the vertex data, without
// reformatting the data to match. The data is exactly
// the same after this operation, but will be
// reinterpreted according to the new format. This
// assumes that the new format is fundamentally
// compatible with the old format; in particular, it
// must have the same number of arrays with the same
// stride in each one. No checking is performed that
// the data remains sensible.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 6 format 1 3070
478 14 Dtool_qQJq88D7 0 6 496 3043 0 14 Dtool_qQJq88D7 398 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::has_column
// Access: Published
// Description: Returns true if the data has the named column,
// false otherwise. This is really just a shortcut for
// asking the same thing from the format.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3072 4 name 1 3055
479 14 Dtool_qQJqxs3S 0 6 497 3046 0 14 Dtool_qQJqxs3S 362 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_num_rows
// Access: Published
// Description: Returns the number of rows stored within all the
// arrays. All arrays store data for the same n
// rows.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072
480 14 Dtool_qQJqtnWY 0 6 498 3043 0 14 Dtool_qQJqtnWY 1250 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_num_rows
// Access: Published
// Description: Sets the length of the array to n rows in all of
// the various arrays (presumably by adding rows).
//
// The new vertex data is initialized to 0, except for
// the "color" column, which is initialized to (1, 1, 1,
// 1).
//
// The return value is true if the number of rows
// was changed, false if the object already contained n
// rows (or if there was some error).
//
// Although this method is Published, application code
// only very rarely has any need to call it. Instead,
// you should use the GeomVertexWriter to build up the
// rows in a GeomVertexData object automatically,
// without need to explicitly set the number of
// rows.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 1 n 1 3046
481 14 Dtool_qQJq0MpE 0 6 499 3043 0 14 Dtool_qQJq0MpE 1085 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::unclean_set_num_rows
// Access: Published
// Description: This method behaves like set_num_rows(), except the
// new data is not initialized. Furthermore, after this
// call, *any* of the data in the GeomVertexData may be
// uninitialized, including the earlier rows.
//
// This is intended for applications that are about to
// completely fill the GeomVertexData with new data
// anyway; it provides a tiny performance boost over
// set_num_rows().
//
// Although this method is Published, application code
// only very rarely has any need to call it. Instead,
// you should use the GeomVertexWriter to build up the
// rows in a GeomVertexData object automatically,
// without need to explicitly set the number of
// rows.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 1 n 1 3046
482 14 Dtool_qQJqFkl7 0 6 500 3043 0 14 Dtool_qQJqFkl7 606 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::reserve_num_rows
// Access: Published
// Description: This ensures that enough memory space for n rows is
// allocated, so that you may increase the number of
// rows to n without causing a new memory allocation.
// This is a performance optimization only; it is
// especially useful when you know ahead of time that
// you will be adding n rows to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 1 n 1 3046
483 14 Dtool_qQJqv6Ji 0 4 501 3042 0 14 Dtool_qQJqv6Ji 554 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_rows
// Access: Published
// Description: Removes all of the rows from the arrays;
// functionally equivalent to set_num_rows(0) (but
// faster).
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3159
484 14 Dtool_qQJqLk3d 0 6 502 3046 0 14 Dtool_qQJqLk3d 376 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_num_arrays
// Access: Published
// Description: Returns the number of individual arrays stored within
// the data. This must match
// get_format()->get_num_arrays().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072
485 14 Dtool_qQJqB79G 0 7 503 3065 0 14 Dtool_qQJqB79G 412 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_array
// Access: Published
// Description: Returns a const pointer to the vertex data for the
// indicated array, for application code to directly
// examine (but not modify) the underlying vertex data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3072 1 i 1 3046
486 14 Dtool_qQJqodUJ 0 7 504 3103 1847 14 Dtool_qQJqodUJ 757 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::modify_array
// Access: Published
// Description: Returns a modifiable pointer to the indicated vertex
// array, so that application code may directly
// manipulate the data. You should avoid changing
// the length of this array, since all of the arrays
// should be kept in sync--use set_num_rows()
// instead.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 1 i 1 3046
487 14 Dtool_qQJqtWDK 0 4 505 3042 0 14 Dtool_qQJqtWDK 667 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_array
// Access: Published
// Description: Replaces the indicated vertex data array with
// a completely new array. You should be careful that
// the new array has the same length and format as the
// old one, unless you know what you are doing.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3159 1 i 1 3046 5 array 1 3065
488 14 Dtool_qQJqBS4c 0 7 506 3130 0 14 Dtool_qQJqBS4c 868 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_transform_table
// Access: Published
// Description: Returns a const pointer to the TransformTable
// assigned to this data. Vertices within the table
// will index into this table to indicate their
// dynamic skinning information; this table is used when
// the vertex animation is to be performed by the
// graphics hardware (but also see
// get_transform_blend_table()).
//
// This will return NULL if the vertex data does not
// have a TransformTable assigned (which implies the
// vertices will not be animated by the graphics
// hardware).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072
489 14 Dtool_qQJqsx_5 0 4 507 3042 0 14 Dtool_qQJqsx_5 708 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_transform_table
// Access: Published
// Description: Replaces the TransformTable on this vertex
// data with the indicated table. The length of this
// table should be consistent with the maximum table
// index assigned to the vertices under the
// "transform_index" name.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 5 table 1 3130
490 14 Dtool_qQJqYfui 0 4 508 3042 0 14 Dtool_qQJqYfui 401 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_transform_table
// Access: Published
// Description: Sets the TransformTable pointer to NULL,
// removing the table from the vertex data. This
// disables hardware-driven vertex animation.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3159
491 14 Dtool_qQJqFkfO 0 7 509 3148 0 14 Dtool_qQJqFkfO 816 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_transform_blend_table
// Access: Published
// Description: Returns a const pointer to the TransformBlendTable
// assigned to this data. Vertices within the table
// will index into this table to indicate their
// dynamic skinning information; this table is used when
// the vertex animation is to be performed by the CPU
// (but also see get_transform_table()).
//
// This will return NULL if the vertex data does not
// have a TransformBlendTable assigned (which implies
// the vertices will not be animated by the CPU).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072
492 14 Dtool_qQJqfufT 0 7 510 3147 0 14 Dtool_qQJqfufT 665 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::modify_transform_blend_table
// Access: Published
// Description: Returns a modifiable pointer to the current
// TransformBlendTable on this vertex data, if any, or
// NULL if there is not a TransformBlendTable. See
// get_transform_blend_table().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3159
493 14 Dtool_qQJq7Mco 0 4 511 3042 0 14 Dtool_qQJq7Mco 719 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_transform_blend_table
// Access: Published
// Description: Replaces the TransformBlendTable on this vertex
// data with the indicated table. The length of this
// table should be consistent with the maximum table
// index assigned to the vertices under the
// "transform_blend" name.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 5 table 1 3148
494 14 Dtool_qQJqkA3X 0 4 512 3042 0 14 Dtool_qQJqkA3X 407 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_transform_blend_table
// Access: Published
// Description: Sets the TransformBlendTable pointer to NULL,
// removing the table from the vertex data. This
// disables CPU-driven vertex animation.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3159
495 14 Dtool_qQJqED2E 0 7 513 3157 0 14 Dtool_qQJqED2E 558 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_slider_table
// Access: Published
// Description: Returns a const pointer to the SliderTable
// assigned to this data. Vertices within the vertex
// data will look up their morph offsets, if any, within
// this table.
//
// This will return NULL if the vertex data does not
// have a SliderTable assigned.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072
496 14 Dtool_qQJq__9X 0 4 514 3042 0 14 Dtool_qQJq__9X 777 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_slider_table
// Access: Published
// Description: Replaces the SliderTable on this vertex
// data with the indicated table. There should be an
// entry in this table for each kind of morph offset
// defined in the vertex data.
//
// The SliderTable object must have been registered
// prior to setting it on the GeomVertexData.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 5 table 1 3157
497 14 Dtool_qQJqFr1M 0 4 515 3042 0 14 Dtool_qQJqFr1M 392 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_slider_table
// Access: Published
// Description: Sets the SliderTable pointer to NULL,
// removing the table from the vertex data. This
// disables morph (blend shape) animation.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3159
498 14 Dtool_qQJqBRE9 0 6 516 3046 0 14 Dtool_qQJqBRE9 332 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_num_bytes
// Access: Published
// Description: Returns the total number of bytes consumed by the
// different arrays of the vertex data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072
499 14 Dtool_qQJqvZmm 0 7 517 3105 0 14 Dtool_qQJqvZmm 366 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the vertex data is
// modified.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3072 14 current_thread 1 3107
500 14 Dtool_qQJqdUin 0 7 517 3105 0 14 Dtool_qQJqdUin 366 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::get_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the vertex data is
// modified.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072
501 14 Dtool_qQJqOOPS 0 6 518 3043 0 14 Dtool_qQJqOOPS 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::request_resident
// Access: Published
// Description: Returns true if the vertex data is currently resident
// in memory. If this returns false, the vertex data will
// be brought back into memory shortly; try again later.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072
502 14 Dtool_qQJqI7Mn 0 4 519 3042 0 14 Dtool_qQJqI7Mn 1099 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::copy_from
// Access: Published
// Description: Copies all the data from the other array into the
// corresponding data types in this array, by matching
// data types name-by-name.
//
// keep_data_objects specifies what to do when one or
// more of the arrays can be copied without the need to
// apply any conversion operation. If it is true, the
// original GeomVertexArrayData objects in this object
// are retained, and their data arrays are copied
// byte-by-byte from the source; if it is false, then the
// GeomVertexArrayData objects are copied pointerwise
// from the source.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3159 6 source 1 3072 17 keep_data_objects 1 3043 14 current_thread 1 3107
503 14 Dtool_qQJqTi_p 0 4 519 3042 0 14 Dtool_qQJqTi_p 1099 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::copy_from
// Access: Published
// Description: Copies all the data from the other array into the
// corresponding data types in this array, by matching
// data types name-by-name.
//
// keep_data_objects specifies what to do when one or
// more of the arrays can be copied without the need to
// apply any conversion operation. If it is true, the
// original GeomVertexArrayData objects in this object
// are retained, and their data arrays are copied
// byte-by-byte from the source; if it is false, then the
// GeomVertexArrayData objects are copied pointerwise
// from the source.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3159 6 source 1 3072 17 keep_data_objects 1 3043
504 14 Dtool_qQJq6qtd 0 4 520 3042 0 14 Dtool_qQJq6qtd 643 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::copy_row_from
// Access: Published
// Description: Copies a single row of the data from the other array
// into the indicated row of this array. In this case,
// the source format must exactly match the destination
// format.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3159 8 dest_row 1 3046 6 source 1 3072 10 source_row 1 3046 14 current_thread 1 3107
505 14 Dtool_qQJqUeFN 0 7 521 3072 0 14 Dtool_qQJqUeFN 408 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::convert_to
// Access: Published
// Description: Returns a new GeomVertexData that represents the same
// contents as this one, with all data types matched up
// name-by-name to the indicated new format.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3072 10 new_format 1 3070
506 14 Dtool_qQJqLmTH 0 7 522 3072 0 14 Dtool_qQJqLmTH 466 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::scale_color
// Access: Published
// Description: Returns a new GeomVertexData object with the color
// table modified in-place to apply the indicated scale.
//
// If the vertex data does not include a color column, a
// new one will not be added.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3072 11 color_scale 1 3160
507 14 Dtool_qQJqnR2X 0 7 522 3072 0 14 Dtool_qQJqnR2X 599 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::scale_color
// Access: Published
// Description: Returns a new GeomVertexData object with the color
// table replaced with a new color table that has been
// scaled by the indicated value. The new color table
// will be added as a new array; if the old color table
// was interleaved with a previous array, the previous
// array will not be repacked.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3072 11 color_scale 1 3160 14 num_components 1 3046 12 numeric_type 1 2946 8 contents 1 2947
508 14 Dtool_qQJqYUcy 0 7 523 3072 0 14 Dtool_qQJqYUcy 453 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_color
// Access: Published
// Description: Returns a new GeomVertexData object with the color
// data modified in-place with the new value.
//
// If the vertex data does not include a color column, a
// new one will not be added.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3072 5 color 1 3160
509 14 Dtool_qQJqpU_h 0 7 523 3072 0 14 Dtool_qQJqpU_h 599 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::set_color
// Access: Published
// Description: Returns a new GeomVertexData object with the color
// table replaced with a new color table for which each
// vertex has the indicated value. The new color table
// will be added as a new array; if the old color table
// was interleaved with a previous array, the previous
// array will not be repacked.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3072 5 color 1 3160 14 num_components 1 3046 12 numeric_type 1 2946 8 contents 1 2947
510 14 Dtool_qQJqpzio 0 7 524 3072 0 14 Dtool_qQJqpzio 577 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::reverse_normals
// Access: Published
// Description: Returns a new GeomVertexData object with the normal
// data modified in-place, so that each lighting normal
// is now facing in the opposite direction.
//
// If the vertex data does not include a normal column,
// this returns the original GeomVertexData object,
// unchanged.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072
511 14 Dtool_qQJqNBVp 0 7 525 3072 0 14 Dtool_qQJqNBVp 1321 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::animate_vertices
// Access: Published
// Description: Returns a GeomVertexData that represents the results
// of computing the vertex animation on the CPU for this
// GeomVertexData.
//
// If there is no CPU-defined vertex animation on this
// object, this just returns the original object.
//
// If there is vertex animation, but the VertexTransform
// values have not changed since last time, this may
// return the same pointer it returned previously. Even
// if the VertexTransform values have changed, it may
// still return the same pointer, but with its contents
// modified (this is preferred, since it allows the
// graphics backend to update vertex buffers optimally).
//
// If force is false, this method may return immediately
// with stale data, if the vertex data is not completely
// resident. If force is true, this method will never
// return stale data, but may block until the data is
// available.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3072 5 force 1 3043 14 current_thread 1 3107
512 14 Dtool_qQJqd9F_ 0 4 526 3042 0 14 Dtool_qQJqd9F_ 555 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_animated_vertices
// Access: Published
// Description: Removes the cache of animated vertices computed by a
// previous call to animate_vertices() within the same
// frame. This will force the next call to
// animate_vertices() to recompute these values from
// scratch. Normally it is not necessary to call this.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3159
513 14 Dtool_qQJqS7Do 0 4 527 3042 0 14 Dtool_qQJqS7Do 461 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::transform_vertices
// Access: Published
// Description: Applies the indicated transform matrix to all of the
// vertices in the GeomVertexData. The transform is
// applied to all "point" and "vector" type columns
// described in the format.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3159 3 mat 1 3127
514 14 Dtool_qQJqd_zj 0 4 527 3042 0 14 Dtool_qQJqd_zj 486 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::transform_vertices
// Access: Published
// Description: Applies the indicated transform matrix to all of the
// vertices from begin_row up to but not including
// end_row. The transform is applied to all "point" and
// "vector" type columns described in the format.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3159 3 mat 1 3127 9 begin_row 1 3046 7 end_row 1 3046
515 14 Dtool_qQJqwwi1 0 7 528 3159 1999 14 Dtool_qQJqwwi1 776 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::replace_column
// Access: Published
// Description: Returns a new GeomVertexData object, suitable for
// modification, with the indicated data type replaced
// with a new table filled with undefined values. The
// new table will be added as a new array; if the old
// table was interleaved with a previous array, the
// previous array will not be repacked.
//
// If num_components is 0, the indicated name is simply
// removed from the type, without replacing it with
// anything else.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3072 4 name 1 3054 14 num_components 1 3046 12 numeric_type 1 2946 8 contents 1 2947
516 14 Dtool_qQJqnWTw 0 4 529 3042 0 14 Dtool_qQJqnWTw 222 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3072 3 out 1 3044
517 14 Dtool_qQJqsKfe 0 4 530 3042 0 14 Dtool_qQJqsKfe 221 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3072 3 out 1 3044 12 indent_level 1 3046
518 14 Dtool_qQJqUjPx 0 4 530 3042 0 14 Dtool_qQJqUjPx 221 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3072 3 out 1 3044
519 14 Dtool_qQJqNTZJ 0 4 531 3042 0 14 Dtool_qQJqNTZJ 324 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::describe_vertex
// Access: Published
// Description: Writes a verbose, human-friendly description of the
// indicated vertex number.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3072 3 out 1 3044 3 row 1 3046
520 14 Dtool_qQJqZI16 0 4 532 3042 0 14 Dtool_qQJqZI16 556 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_cache
// Access: Published
// Description: Removes all of the previously-cached results of
// convert_to().
//
// This blows away the entire cache, upstream and
// downstream the pipeline. Use clear_cache_stage()
// instead if you only want to blow away the cache at
// the current stage and upstream.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3159
521 14 Dtool_qQJqn1dY 0 4 533 3042 0 14 Dtool_qQJqn1dY 608 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexData::clear_cache_stage
// Access: Published
// Description: Removes all of the previously-cached results of
// convert_to(), at the current pipeline stage and
// upstream. Does not affect the downstream cache.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3159
522 14 Dtool_qQJqIU4H 0 7 534 3058 0 14 Dtool_qQJqIU4H 0 0
523 14 Dtool_qQJqkRv_ 0 7 478 3119 0 14 Dtool_qQJqkRv_ 0 1 4 this 3 3159
524 14 Dtool_qQJqT3AG 0 7 479 3159 1999 14 Dtool_qQJqT3AG 0 1 4 this 3 3119
525 14 Dtool_qQJqVY07 0 6 480 3068 0 14 Dtool_qQJqVY07 0 1 4 this 3 3159
526 14 Dtool_qQJqLM59 0 7 481 3159 1999 14 Dtool_qQJqLM59 0 1 4 this 3 3068
527 14 Dtool_qQJqIczb 0 7 537 3163 2053 14 Dtool_qQJqIczb 769 // Filename: animateVerticesRequest.I
// Created by: pratt (20Nov07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimateVerticesRequest::Constructor
// Access: Published
// Description: Create a new AnimateVerticesRequest.
//////////////////////////////////////////////////////////////////// 1 16 geom_vertex_data 1 3159
528 14 Dtool_qQJqbyCH 0 6 538 3043 0 14 Dtool_qQJqbyCH 322 ////////////////////////////////////////////////////////////////////
// Function: AnimateVerticesRequest::is_ready
// Access: Published
// Description: Returns true if this request has completed, false if
// it is still pending.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3164
529 14 Dtool_qQJqM1oU 0 7 539 3058 0 14 Dtool_qQJqM1oU 0 0
530 14 Dtool_qQJqjSRf 0 7 543 3058 0 14 Dtool_qQJqjSRf 0 0
531 14 Dtool_qQJqB9LY 0 6 549 3038 0 14 Dtool_qQJqB9LY 1039 // Filename: bufferContext.I
// Created by: drose (16Mar06)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: BufferContext::get_data_size_bytes
// Access: Public
// Description: Returns the number of bytes previously reported for
// the data object. This is used to track changes in
// the data object's allocated size; if it changes from
// this, we need to create a new buffer. This is also
// used to track memory utilization in PStats.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3166
532 14 Dtool_qQJq7v5_ 0 7 550 3105 0 14 Dtool_qQJq7v5_ 320 ////////////////////////////////////////////////////////////////////
// Function: BufferContext::get_modified
// Access: Public
// Description: Returns the UpdateSeq that was recorded the last time
// mark_loaded() was called.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3166
533 14 Dtool_qQJqlXDp 0 6 551 3043 0 14 Dtool_qQJqlXDp 382 ////////////////////////////////////////////////////////////////////
// Function: BufferContext::get_active
// Access: Public
// Description: Returns the active flag associated with this object.
// An object is considered "active" if it was rendered
// in the current frame.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3166
534 14 Dtool_qQJq3xOQ 0 6 552 3043 0 14 Dtool_qQJq3xOQ 396 ////////////////////////////////////////////////////////////////////
// Function: BufferContext::get_resident
// Access: Public
// Description: Returns the resident flag associated with this
// object. An object is considered "resident" if it
// appears to be resident in texture memory.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3166
535 14 Dtool_qQJqL17V 0 7 553 3058 0 14 Dtool_qQJqL17V 0 0
536 14 Dtool_qQJqJsWn 0 6 546 3169 0 14 Dtool_qQJqJsWn 0 1 4 this 3 3168
537 14 Dtool_qQJqAKtd 0 6 547 3168 0 14 Dtool_qQJqAKtd 0 1 4 this 3 3169
538 14 Dtool_qQJqxNhI 0 7 559 3170 2069 14 Dtool_qQJqxNhI 478 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::Copy Assignment Operator
// Access: Published
// Description: The copy assignment operator is not pipeline-safe.
// This will completely obliterate all stages of the
// pipeline, so don't do it for a GeomPrimitive that is
// actively being used for rendering.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3170 4 copy 1 3171
539 14 Dtool_qQJq7TKD 0 4 561 3042 0 14 Dtool_qQJq7TKD 0 2 4 this 3 3170 4 size 1 3038
540 14 Dtool_qQJqkToi 0 7 564 3170 2069 14 Dtool_qQJqkToi 0 1 4 this 3 3171
541 14 Dtool_qQJqGgvy 0 6 565 2945 0 14 Dtool_qQJqGgvy 0 1 4 this 3 3171
542 14 Dtool_qQJqdMe3 0 6 566 3046 0 14 Dtool_qQJqdMe3 397 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_geom_rendering
// Access: Published, Virtual
// Description: Returns the set of GeomRendering bits that represent
// the rendering properties required to properly render
// this primitive.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
543 14 Dtool_qQJq7mHk 0 6 567 2944 0 14 Dtool_qQJq7mHk 905 // Filename: geomPrimitive.I
// Created by: drose (06Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_shade_model
// Access: Published
// Description: Returns the ShadeModel hint for this primitive.
// This is intended as a hint to the renderer to tell it
// how the per-vertex colors and normals are applied.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
544 14 Dtool_qQJqloHJ 0 4 568 3042 0 14 Dtool_qQJqloHJ 865 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_shade_model
// Access: Published
// Description: Changes the ShadeModel hint for this primitive.
// This is different from the ShadeModelAttrib that
// might also be applied from the scene graph. This
// does not affect the shade model that is in effect
// when rendering, but rather serves as a hint to the
// renderer to tell it how the per-vertex colors and
// normals on this primitive are applied.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3170 11 shade_model 1 2944
545 14 Dtool_qQJqrTA_ 0 6 569 2942 0 14 Dtool_qQJqrTA_ 921 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_usage_hint
// Access: Published
// Description: Returns the usage hint for this primitive. See
// geomEnums.h. This has nothing to do with the usage
// hint associated with the primitive's vertices; this
// only specifies how often the vertex indices that
// define the primitive will be modified.
//
// It is perfectly legal (and, in fact, common) for a
// GeomPrimitive to have UH_static on itself, while
// referencing vertex data with UH_dynamic. This means
// that the vertices themselves will be animated, but
// the primitive will always reference the same set of
// vertices from the pool.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
546 14 Dtool_qQJqpILm 0 4 570 3042 0 14 Dtool_qQJqpILm 512 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_usage_hint
// Access: Published
// Description: Changes the UsageHint hint for this primitive. See
// get_usage_hint().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3170 10 usage_hint 1 2942
547 14 Dtool_qQJqqhQw 0 6 571 2946 0 14 Dtool_qQJqqhQw 342 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_index_type
// Access: Public
// Description: Returns the numeric type of the index column.
// Normally, this will be either NT_uint16 or NT_uint32.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
548 14 Dtool_qQJqAwMD 0 4 572 3042 0 14 Dtool_qQJqAwMD 939 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_index_type
// Access: Published
// Description: Changes the numeric type of the index column.
// Normally, this should be either NT_uint16 or
// NT_uint32.
//
// The index type must be large enough to include all of
// the index values in the primitive. It may be
// automatically elevated, if necessary, to a larger
// index type, by a subsequent call to add_index() that
// names an index value that does not fit in the index
// type you specify.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3170 10 index_type 1 2946
549 14 Dtool_qQJqjrU4 0 6 573 3043 0 14 Dtool_qQJqjrU4 439 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::is_composite
// Access: Published
// Description: Returns true if the primitive is a composite
// primitive such as a tristrip or trifan, or false if
// it is a fundamental primitive such as a collection of
// triangles.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
550 14 Dtool_qQJq6QHh 0 6 574 3043 0 14 Dtool_qQJq6QHh 683 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::is_indexed
// Access: Published
// Description: Returns true if the primitive is indexed, false
// otherwise. An indexed primitive stores a table of
// index numbers into its GeomVertexData, so that it can
// reference the vertices in any order. A nonindexed
// primitive, on the other hand, stores only the first
// vertex number and number of vertices used, so that it
// can only reference the vertices consecutively.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
551 14 Dtool_qQJqmlTX 0 6 575 3046 0 14 Dtool_qQJqmlTX 536 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_first_vertex
// Access: Published
// Description: Returns the first vertex number referenced by the
// primitive. This is particularly important in the
// case of a nonindexed primitive, in which case
// get_first_vertex() and get_num_vertices() completely
// define the extent of the vertex range.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
552 14 Dtool_qQJqvNCm 0 6 576 3046 0 14 Dtool_qQJqvNCm 321 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_num_vertices
// Access: Published
// Description: Returns the number of vertices used by all the
// primitives in this object.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
553 14 Dtool_qQJqResf 0 6 577 3046 0 14 Dtool_qQJqResf 267 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_vertex
// Access: Published
// Description: Returns the ith vertex index in the table.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3171 1 i 1 3046
554 14 Dtool_qQJqfZh_ 0 4 578 3042 0 14 Dtool_qQJqfZh_ 780 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::add_vertex
// Access: Published
// Description: Adds the indicated vertex to the list of vertex
// indices used by the graphics primitive type. To
// define a primitive, you must call add_vertex() for
// each vertex of the new primitive, and then call
// close_primitive() after you have specified the last
// vertex of each primitive.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3170 6 vertex 1 3046
555 14 Dtool_qQJqHQPq 0 4 579 3042 0 14 Dtool_qQJqHQPq 255 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::add_vertices
// Access: Public
// Description: Adds several vertices in a row.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3170 2 v1 1 3046 2 v2 1 3046
556 14 Dtool_qQJqjcFB 0 4 579 3042 0 14 Dtool_qQJqjcFB 255 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::add_vertices
// Access: Public
// Description: Adds several vertices in a row.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3170 2 v1 1 3046 2 v2 1 3046 2 v3 1 3046
557 14 Dtool_qQJq2Q0u 0 4 579 3042 0 14 Dtool_qQJq2Q0u 255 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::add_vertices
// Access: Public
// Description: Adds several vertices in a row.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3170 2 v1 1 3046 2 v2 1 3046 2 v3 1 3046 2 v4 1 3046
558 14 Dtool_qQJqa2sp 0 4 580 3042 0 14 Dtool_qQJqa2sp 531 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::add_consecutive_vertices
// Access: Published
// Description: Adds a consecutive sequence of vertices, beginning at
// start, to the primitive.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3170 5 start 1 3046 12 num_vertices 1 3046
559 14 Dtool_qQJq7DMY 0 4 581 3042 0 14 Dtool_qQJq7DMY 621 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::add_next_vertices
// Access: Published
// Description: Adds the next n vertices in sequence, beginning from
// the last vertex added to the primitive + 1.
//
// This is most useful when you are building up a
// primitive and a GeomVertexData at the same time, and
// you just want the primitive to reference the first n
// vertices from the data, then the next n, and so on.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3170 12 num_vertices 1 3046
560 14 Dtool_qQJqlGV6 0 4 582 3042 0 14 Dtool_qQJqlGV6 1259 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::reserve_num_vertices
// Access: Published
// Description: This ensures that enough memory space for n vertices
// is allocated, so that you may increase the number of
// vertices to n without causing a new memory
// allocation. This is a performance optimization only;
// it is especially useful when you know ahead of time
// that you will be adding n vertices to the primitive.
//
// Note that the total you specify here should also
// include implicit vertices which may be added at each
// close_primitive() call, according to
// get_num_unused_vertices_per_primitive().
//
// Note also that making this call will implicitly make
// the primitive indexed if it is not already, which
// could result in a performance *penalty*. If you
// would prefer not to lose the nonindexed nature of
// your existing GeomPrimitives, check is_indexed()
// before making this call.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3170 12 num_vertices 1 3046
561 14 Dtool_qQJq6fGw 0 6 583 3043 0 14 Dtool_qQJq6fGw 654 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::close_primitive
// Access: Published
// Description: Indicates that the previous n calls to add_vertex(),
// since the last call to close_primitive(), have fully
// defined a new primitive. Returns true if successful,
// false otherwise.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3170
562 14 Dtool_qQJqM1Rt 0 4 584 3042 0 14 Dtool_qQJqM1Rt 527 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::clear_vertices
// Access: Published
// Description: Removes all of the vertices and primitives from the
// object, so they can be re-added.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3170
563 14 Dtool_qQJqLbh3 0 4 585 3042 0 14 Dtool_qQJqLbh3 508 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::offset_vertices
// Access: Published
// Description: Adds the indicated offset to all vertices used by the
// primitive.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3170 6 offset 1 3046
564 14 Dtool_qQJqWnaW 0 4 585 3042 0 14 Dtool_qQJqWnaW 662 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::offset_vertices
// Access: Published
// Description: Adds the indicated offset to the indicated segment
// of vertices used by the primitive. Unlike the
// other version of offset_vertices, this makes the
// geometry indexed if it isn't already.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3170 6 offset 1 3046 9 begin_row 1 3046 7 end_row 1 3046
565 14 Dtool_qQJq6uw4 0 4 586 3042 0 14 Dtool_qQJq6uw4 390 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::make_nonindexed
// Access: Published
// Description: Converts the primitive from indexed to nonindexed by
// duplicating vertices as necessary into the indicated
// dest GeomVertexData.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3170 4 dest 1 3159 6 source 1 3072
566 14 Dtool_qQJqxTd_ 0 4 587 3042 0 14 Dtool_qQJqxTd_ 383 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::pack_vertices
// Access: Published
// Description: Packs the vertices used by the primitive from the
// indicated source array onto the end of the indicated
// destination array.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3170 4 dest 1 3159 6 source 1 3072
567 14 Dtool_qQJqKY2E 0 4 588 3042 0 14 Dtool_qQJqKY2E 817 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::make_indexed
// Access: Published
// Description: Converts the primitive from nonindexed form to
// indexed form. This will simply create an index table
// that is numbered consecutively from
// get_first_vertex(); it does not automatically
// collapse together identical vertices that may have
// been split apart by a previous call to
// make_nonindexed().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3170
568 14 Dtool_qQJq6WIt 0 6 589 3046 0 14 Dtool_qQJq6WIt 372 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_num_primitives
// Access: Published
// Description: Returns the number of individual primitives stored
// within this object. All primitives are the same
// type.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
569 14 Dtool_qQJqsxUL 0 6 590 3046 0 14 Dtool_qQJqsxUL 800 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_primitive_start
// Access: Published
// Description: Returns the element within the _vertices list at which
// the nth primitive starts.
//
// If i is one more than the highest valid primitive
// vertex, the return value will be one more than the
// last valid vertex. Thus, it is generally true that
// the vertices used by a particular primitive i are the
// set get_primitive_start(n) <= vi <
// get_primitive_start(n + 1) (although this range also
// includes the unused vertices between primitives).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3171 1 n 1 3046
570 14 Dtool_qQJqB_K0 0 6 591 3046 0 14 Dtool_qQJqB_K0 408 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_primitive_end
// Access: Published
// Description: Returns the element within the _vertices list at which
// the nth primitive ends. This is one past the last
// valid element for the nth primitive.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3171 1 n 1 3046
571 14 Dtool_qQJqn6mz 0 6 592 3046 0 14 Dtool_qQJqn6mz 406 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_primitive_num_vertices
// Access: Published
// Description: Returns the number of vertices used by the nth
// primitive. This is the same thing as
// get_primitive_end(n) - get_primitive_start(n).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3171 1 n 1 3046
572 14 Dtool_qQJqaEOa 0 6 593 3046 0 14 Dtool_qQJqaEOa 393 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_num_faces
// Access: Published
// Description: Returns the number of triangles or other fundamental
// type (such as line segments) represented by all the
// primitives in this object.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
573 14 Dtool_qQJq4WCg 0 6 594 3046 0 14 Dtool_qQJq4WCg 402 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_primitive_num_faces
// Access: Published
// Description: Returns the number of triangles or other fundamental
// type (such as line segments) represented by the nth
// primitive in this object.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3171 1 n 1 3046
574 14 Dtool_qQJqB5d5 0 6 595 3046 0 14 Dtool_qQJqB5d5 328 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_min_vertex
// Access: Published
// Description: Returns the minimum vertex index number used by all
// the primitives in this object.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
575 14 Dtool_qQJq4mcR 0 6 596 3046 0 14 Dtool_qQJq4mcR 337 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_primitive_min_vertex
// Access: Published
// Description: Returns the minimum vertex index number used by the
// nth primitive in this object.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3171 1 n 1 3046
576 14 Dtool_qQJqDfoY 0 6 597 3046 0 14 Dtool_qQJqDfoY 328 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_max_vertex
// Access: Published
// Description: Returns the maximum vertex index number used by all
// the primitives in this object.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
577 14 Dtool_qQJqyuOO 0 6 598 3046 0 14 Dtool_qQJqyuOO 337 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_primitive_max_vertex
// Access: Published
// Description: Returns the maximum vertex index number used by the
// nth primitive in this object.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3171 1 n 1 3046
578 14 Dtool_qQJquWdu 0 7 599 3171 0 14 Dtool_qQJquWdu 795 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::decompose
// Access: Published
// Description: Decomposes a complex primitive type into a simpler
// primitive type, for instance triangle strips to
// triangles, and returns a pointer to the new primitive
// definition. If the decomposition cannot be
// performed, this might return the original object.
//
// This method is useful for application code that wants
// to iterate through the set of triangles on the
// primitive without having to write handlers for each
// possible kind of primitive type.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
579 14 Dtool_qQJqyITm 0 7 600 3171 0 14 Dtool_qQJqyITm 739 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::rotate
// Access: Published
// Description: Returns a new primitive with the shade_model reversed
// (if it is flat shaded), if possible. If the
// primitive type cannot be rotated, returns the
// original primitive, unrotated.
//
// If the current shade_model indicates
// flat_vertex_last, this should bring the last vertex
// to the first position; if it indicates
// flat_vertex_first, this should bring the first vertex
// to the last position.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
580 14 Dtool_qQJqjOE1 0 7 601 3171 0 14 Dtool_qQJqjOE1 842 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::doubleside
// Access: Published
// Description: Duplicates triangles in the primitive so that each
// triangle is back-to-back with another triangle facing
// in the opposite direction. Note that this doesn't
// affect vertex normals, so this operation alone won't
// work in the presence of lighting (but see
// SceneGraphReducer::doubleside()).
//
// Also see CullFaceAttrib, which can enable rendering
// of both sides of a triangle without having to
// duplicate it (but which doesn't necessarily work in
// the presence of lighting).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
581 14 Dtool_qQJqIkTm 0 7 602 3171 0 14 Dtool_qQJqIkTm 823 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::reverse
// Access: Published
// Description: Reverses the winding order in the primitive so that
// each triangle is facing in the opposite direction it
// was originally. Note that this doesn't affect vertex
// normals, so this operation alone won't work in the
// presence of lighting (but see
// SceneGraphReducer::reverse()).
//
// Also see CullFaceAttrib, which can change the visible
// direction of a triangle without having to duplicate
// it (but which doesn't necessarily work in the
// presence of lighting).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
582 14 Dtool_qQJq9Uwk 0 7 603 3171 0 14 Dtool_qQJq9Uwk 672 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::match_shade_model
// Access: Published
// Description: Returns a new primitive that is compatible with the
// indicated shade model, if possible, or NULL if this
// is not possible.
//
// In most cases, this will return either NULL or the
// original primitive. In the case of a
// SM_flat_first_vertex vs. a SM_flat_last_vertex (or
// vice-versa), however, it will return a rotated
// primitive.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3171 11 shade_model 1 2944
583 14 Dtool_qQJqqobv 0 7 604 3171 0 14 Dtool_qQJqqobv 519 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::make_points
// Access: Published
// Description: Returns a new GeomPoints primitive that represents
// each of the vertices in the original primitive,
// rendered exactly once. If the original primitive is
// already a GeomPoints primitive, returns the original
// primitive unchanged.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
584 14 Dtool_qQJqoDYy 0 7 605 3171 0 14 Dtool_qQJqoDYy 836 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::make_patches
// Access: Published
// Description: Decomposes a complex primitive type into a simpler
// primitive type, for instance triangle strips to
// triangles, puts these in a new GeomPatches objectand returns a pointer to the new primitive
// definition. If the decomposition cannot be
// performed, this might return the original object.
//
// This method is useful for application code that wants
// to iterate through the set of triangles on the
// primitive without having to write handlers for each
// possible kind of primitive type.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
585 14 Dtool_qQJqj0Et 0 6 606 3046 0 14 Dtool_qQJqj0Et 322 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_num_bytes
// Access: Published
// Description: Returns the number of bytes consumed by the primitive
// and its index table(s).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
586 14 Dtool_qQJq1Cqn 0 6 607 3046 0 14 Dtool_qQJq1Cqn 308 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_data_size_bytes
// Access: Published
// Description: Returns the number of bytes stored in the vertices
// array.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
587 14 Dtool_qQJq30ZO 0 7 608 3105 0 14 Dtool_qQJq30ZO 372 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the vertex index array is
// modified.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
588 14 Dtool_qQJqjotH 0 6 609 3043 0 14 Dtool_qQJqjotH 451 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::request_resident
// Access: Published
// Description: Returns true if the primitive data is currently
// resident in memory. If this returns false, the
// primitive data will be brought back into memory
// shortly; try again later.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
589 14 Dtool_qQJqnNd0 0 6 610 3043 0 14 Dtool_qQJqnNd0 455 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::check_valid
// Access: Published
// Description: Verifies that the primitive only references vertices
// that actually exist within the indicated
// GeomVertexData. Returns true if the primitive
// appears to be valid, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3171 11 vertex_data 1 3072
590 14 Dtool_qQJqa1o6 0 4 611 3042 0 14 Dtool_qQJqa1o6 230 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::output
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3171 3 out 1 3044
591 14 Dtool_qQJqbNE_ 0 4 612 3042 0 14 Dtool_qQJqbNE_ 229 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::write
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3171 3 out 1 3044 12 indent_level 1 3046
592 14 Dtool_qQJqBUuv 0 7 613 3065 0 14 Dtool_qQJqBUuv 812 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_vertices
// Access: Published
// Description: Returns a const pointer to the vertex index array so
// application code can read it directly. This might
// return NULL if the primitive is nonindexed. Do not
// attempt to modify the returned array; use
// modify_vertices() or set_vertices() for this.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
593 14 Dtool_qQJq1PQG 0 7 614 3103 1847 14 Dtool_qQJq1PQG 1321 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::modify_vertices
// Access: Published
// Description: Returns a modifiable pointer to the vertex index
// list, so application code can directly fiddle with
// this data. Use with caution, since there are no
// checks that the data will be left in a stable state.
//
// If this is called on a nonindexed primitive, it will
// implicitly be converted to an indexed primitive.
//
// If num_vertices is not -1, it specifies an artificial
// limit to the number of vertices in the array.
// Otherwise, all of the vertices in the array will be
// used.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 2 4 this 3 3170 12 num_vertices 1 3046
594 14 Dtool_qQJqf53e 0 7 614 3103 1847 14 Dtool_qQJqf53e 1321 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::modify_vertices
// Access: Published
// Description: Returns a modifiable pointer to the vertex index
// list, so application code can directly fiddle with
// this data. Use with caution, since there are no
// checks that the data will be left in a stable state.
//
// If this is called on a nonindexed primitive, it will
// implicitly be converted to an indexed primitive.
//
// If num_vertices is not -1, it specifies an artificial
// limit to the number of vertices in the array.
// Otherwise, all of the vertices in the array will be
// used.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 1 4 this 3 3170
595 14 Dtool_qQJqXyE_ 0 4 615 3042 0 14 Dtool_qQJqXyE_ 1115 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_vertices
// Access: Published
// Description: Completely replaces the vertex index list with a new
// table. Chances are good that you should also replace
// the ends list with set_ends() at the same time.
//
// If num_vertices is not -1, it specifies an artificial
// limit to the number of vertices in the array.
// Otherwise, all of the vertices in the array will be
// used.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 3 4 this 3 3170 8 vertices 1 3065 12 num_vertices 1 3046
596 14 Dtool_qQJqC9oy 0 4 615 3042 0 14 Dtool_qQJqC9oy 1115 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_vertices
// Access: Published
// Description: Completely replaces the vertex index list with a new
// table. Chances are good that you should also replace
// the ends list with set_ends() at the same time.
//
// If num_vertices is not -1, it specifies an artificial
// limit to the number of vertices in the array.
// Otherwise, all of the vertices in the array will be
// used.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 2 4 this 3 3170 8 vertices 1 3065
597 14 Dtool_qQJq1R4R 0 4 616 3042 0 14 Dtool_qQJq1R4R 808 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_nonindexed_vertices
// Access: Published
// Description: Sets the primitive up as a nonindexed primitive,
// using the indicated vertex range.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 3 4 this 3 3170 12 first_vertex 1 3046 12 num_vertices 1 3046
598 14 Dtool_qQJqhg3p 0 6 617 3046 0 14 Dtool_qQJqhg3p 642 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_index_stride
// Access: Published
// Description: A convenience function to return the gap between
// successive index numbers, in bytes, of the index
// data.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
599 14 Dtool_qQJqQK6w 0 7 618 3174 0 14 Dtool_qQJqQK6w 936 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_ends
// Access: Published
// Description: Returns a const pointer to the primitive ends
// array so application code can read it directly. Do
// not attempt to modify the returned array; use
// modify_ends() or set_ends() for this.
//
// Note that simple primitive types, like triangles, do
// not have a ends array: since all the primitives
// have the same number of vertices, it is not needed.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
600 14 Dtool_qQJqUB9R 0 7 619 3176 0 14 Dtool_qQJqUB9R 1159 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::modify_ends
// Access: Published
// Description: Returns a modifiable pointer to the primitive ends
// array, so application code can directly fiddle with
// this data. Use with caution, since there are no
// checks that the data will be left in a stable state.
//
// Note that simple primitive types, like triangles, do
// not have a ends array: since all the primitives
// have the same number of vertices, it is not needed.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 1 4 this 3 3170
601 14 Dtool_qQJqX0vg 0 4 620 3042 0 14 Dtool_qQJqX0vg 1117 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_ends
// Access: Published
// Description: Completely replaces the primitive ends array with
// a new table. Chances are good that you should also
// replace the vertices list with set_vertices() at the
// same time.
//
// Note that simple primitive types, like triangles, do
// not have a ends array: since all the primitives
// have the same number of vertices, it is not needed.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 2 4 this 3 3170 4 ends 1 3174
602 14 Dtool_qQJqKKGR 0 7 621 3065 0 14 Dtool_qQJqKKGR 827 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_mins
// Access: Published
// Description: Returns a const pointer to the primitive mins
// array so application code can read it directly. Do
// not attempt to modify the returned array; use
// set_minmax() for this.
//
// Note that simple primitive types, like triangles, do
// not have a mins array.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
603 14 Dtool_qQJqJsTw 0 7 622 3065 0 14 Dtool_qQJqJsTw 818 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_maxs
// Access: Published
// Description: Returns a const pointer to the primitive maxs
// array so application code can read it directly. Do
// not attempt to modify the returned array; use
// set_minmax().
//
// Note that simple primitive types, like triangles, do
// not have a maxs array.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
604 14 Dtool_qQJqq8m_ 0 4 623 3042 0 14 Dtool_qQJqq8m_ 1093 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::set_minmax
// Access: Published
// Description: Explicitly specifies the minimum and maximum
// vertices, as well as the lists of per-component min
// and max.
//
// Use this method with extreme caution. It's generally
// better to let the GeomPrimitive compute these
// explicitly, unless for some reason you can do it
// faster and you absolutely need the speed improvement.
//
// Note that any modification to the vertex array will
// normally cause this to be recomputed, unless you set
// it immediately again.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 5 4 this 3 3170 10 min_vertex 1 3046 10 max_vertex 1 3046 4 mins 1 3103 4 maxs 1 3103
605 14 Dtool_qQJqO9Lj 0 4 624 3042 0 14 Dtool_qQJqO9Lj 643 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::clear_minmax
// Access: Published
// Description: Undoes a previous call to set_minmax(), and allows
// the minimum and maximum values to be recomputed
// normally.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 1 4 this 3 3170
606 14 Dtool_qQJqTWqZ 0 6 625 3046 0 14 Dtool_qQJqTWqZ 948 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_num_vertices_per_primitive
// Access: Published, Virtual
// Description: If the primitive type is a simple type in which all
// primitives have the same number of vertices, like
// triangles, returns the number of vertices per
// primitive. If the primitive type is a more complex
// type in which different primitives might have
// different numbers of vertices, for instance a
// triangle strip, returns 0.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
607 14 Dtool_qQJqUxr2 0 6 626 3046 0 14 Dtool_qQJqUxr2 654 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_min_num_vertices_per_primitive
// Access: Published, Virtual
// Description: Returns the minimum number of vertices that must be
// added before close_primitive() may legally be called.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
608 14 Dtool_qQJqUSE8 0 6 627 3046 0 14 Dtool_qQJqUSE8 845 ////////////////////////////////////////////////////////////////////
// Function: GeomPrimitive::get_num_unused_vertices_per_primitive
// Access: Published, Virtual
// Description: Returns the number of vertices that are added between
// primitives that aren't, strictly speaking, part of
// the primitives themselves. This is used, for
// instance, to define degenerate triangles to connect
// otherwise disconnected triangle strips.
//
// This method is intended for low-level usage only.
// There are higher-level methods for more common usage.
// We recommend you do not use this method directly. If
// you do, be sure you know what you are doing!
//////////////////////////////////////////////////////////////////// 1 4 this 3 3171
609 14 Dtool_qQJqPsal 0 7 628 3058 0 14 Dtool_qQJqPsal 0 0
610 14 Dtool_qQJqlsEr 0 7 555 3119 0 14 Dtool_qQJqlsEr 0 1 4 this 3 3170
611 14 Dtool_qQJqdtth 0 7 556 3170 2069 14 Dtool_qQJqdtth 0 1 4 this 3 3119
612 14 Dtool_qQJqsYAl 0 6 557 3068 0 14 Dtool_qQJqsYAl 0 1 4 this 3 3170
613 14 Dtool_qQJq94K1 0 7 558 3170 2069 14 Dtool_qQJq94K1 0 1 4 this 3 3068
614 14 Dtool_qQJqboYF 0 7 630 3177 0 14 Dtool_qQJqboYF 757 // Filename: textureStage.I
// Created by: masad (15Jul04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureStage::Copy Constructor
// Access: Published
// Description: Initialize the texture stage from other
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3177
615 14 Dtool_qQJqMbzz 0 7 630 3177 0 14 Dtool_qQJqMbzz 269 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::Constructor
// Access: Published
// Description: Initialize the texture stage at construction
//////////////////////////////////////////////////////////////////// 1 4 name 1 3037
616 14 Dtool_qQJqAOWV 0 7 631 3177 0 14 Dtool_qQJqAOWV 262 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::operator =
// Access: Published
// Description: just copy the members of other to this
//////////////////////////////////////////////////////////////////// 2 4 this 3 3177 4 copy 1 3178
617 14 Dtool_qQJqCd_b 0 4 636 3042 0 14 Dtool_qQJqCd_b 260 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_name
// Access: Published
// Description: Changes the name of this texture stage
//////////////////////////////////////////////////////////////////// 2 4 this 3 3177 4 name 1 3037
618 14 Dtool_qQJqqybK 0 6 637 3037 0 14 Dtool_qQJqqybK 260 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_name
// Access: Published
// Description: Returns the name of this texture stage
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
619 14 Dtool_qQJqx_xd 0 4 638 3042 0 14 Dtool_qQJqx_xd 768 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_sort
// Access: Published
// Description: Changes the order in which the texture associated
// with this stage is rendered relative to the other
// texture stages. When geometry is rendered with
// multiple textures, the textures are rendered in order
// from the lowest sort number to the highest sort
// number.
//
// Also see set_priority(), which is used to select the
// most important textures for rendering when some must
// be omitted because of hardware limitations.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3177 4 sort 1 3046
620 14 Dtool_qQJqediB 0 6 639 3046 0 14 Dtool_qQJqediB 267 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_sort
// Access: Published
// Description: Returns the sort order of this texture stage.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
621 14 Dtool_qQJq53u_ 0 4 640 3042 0 14 Dtool_qQJq53u_ 919 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_priority
// Access: Published
// Description: Changes the relative importance of the texture
// associated with this stage relative to the other
// texture stages that are applied simultaneously.
//
// This is unrelated to set_sort(), which controls the
// order in which multiple textures are applied. The
// priority number is used to decide which of the
// requested textures are to be selected for rendering
// when more textures are requested than the hardware
// will support. The highest-priority n textures are
// selected for rendering, and then rendered in order by
// their sort factor.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3177 8 priority 1 3046
622 14 Dtool_qQJqvd5l 0 6 641 3046 0 14 Dtool_qQJqvd5l 406 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_priority
// Access: Published
// Description: Returns the priority associated with this stage.
//
// This is specially helpful for cards that do not
// support more than n stages of multi-texturing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
623 14 Dtool_qQJqIE53 0 4 642 3042 0 14 Dtool_qQJqIE53 412 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_texcoord_name
// Access: Published
// Description: Indicate which set of UV's this texture stage will
// use. Geometry may have any number of associated UV
// sets, each of which must have a unique name.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3177 4 name 1 3054
624 14 Dtool_qQJqSh4R 0 4 642 3042 0 14 Dtool_qQJqSh4R 412 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_texcoord_name
// Access: Published
// Description: Indicate which set of UV's this texture stage will
// use. Geometry may have any number of associated UV
// sets, each of which must have a unique name.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3177 13 texcoord_name 1 3037
625 14 Dtool_qQJq6ntn 0 7 643 3054 0 14 Dtool_qQJq6ntn 316 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_texcoord_name
// Access: Published
// Description: See set_texcoord_name. The default is
// InternalName::get_texcoord().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
626 14 Dtool_qQJqAUfc 0 7 644 3054 0 14 Dtool_qQJqAUfc 403 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_tangent_name
// Access: Published
// Description: Returns the set of tangents this texture stage will
// use. This is the same as get_texcoord_name(),
// except that the first part is "tangent".
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
627 14 Dtool_qQJqJzut 0 7 645 3054 0 14 Dtool_qQJqJzut 406 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_binormal_name
// Access: Published
// Description: Returns the set of binormals this texture stage will
// use. This is the same as get_binormal_name(),
// except that the first part is "binormal".
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
628 14 Dtool_qQJq_lwU 0 4 646 3042 0 14 Dtool_qQJq_lwU 256 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_mode
// Access: Published
// Description: Set the mode of this texture stage
//////////////////////////////////////////////////////////////////// 2 4 this 3 3177 4 mode 1 2985
629 14 Dtool_qQJqHG0A 0 6 647 2985 0 14 Dtool_qQJqHG0A 251 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_mode
// Access: Published
// Description: Return the mode of this stage
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
630 14 Dtool_qQJqQ9nf 0 6 648 3043 0 14 Dtool_qQJqQ9nf 416 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::is_fixed_function
// Access: Published
// Description: Returns true if the TextureStage is relevant to
// the classic fixed function pipeline. This excludes
// texture stages such as normal mapping and the like.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
631 14 Dtool_qQJqtRyD 0 4 649 3042 0 14 Dtool_qQJqtRyD 251 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_color
// Access: Published
// Description: Set the color for this stage
//////////////////////////////////////////////////////////////////// 2 4 this 3 3177 5 color 1 3160
632 14 Dtool_qQJqX3mA 0 7 650 3180 0 14 Dtool_qQJqX3mA 254 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_color
// Access: Published
// Description: return the color for this stage
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
633 14 Dtool_qQJqjqP6 0 4 651 3042 0 14 Dtool_qQJqjqP6 490 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_rgb_scale
// Access: Published
// Description: Sets an additional factor that will scale all three
// r, g, b components after the texture has been
// applied. This is used only when the mode is
// CM_combine.
//
// The only legal values are 1, 2, or 4.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3177 9 rgb_scale 1 3046
634 14 Dtool_qQJqb_0B 0 6 652 3046 0 14 Dtool_qQJqb_0B 247 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_rgb_scale
// Access: Published
// Description: See set_rgb_scale().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
635 14 Dtool_qQJqRljB 0 4 653 3042 0 14 Dtool_qQJqRljB 465 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_alpha_scale
// Access: Published
// Description: Sets an additional factor that will scale the
// alpha component after the texture has been applied.
// This is used only when the mode is CM_combine.
//
// The only legal values are 1, 2, or 4.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3177 11 alpha_scale 1 3046
636 14 Dtool_qQJqABTl 0 6 654 3046 0 14 Dtool_qQJqABTl 251 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_alpha_scale
// Access: Published
// Description: See set_alpha_scale().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
637 14 Dtool_qQJqIuf8 0 4 655 3042 0 14 Dtool_qQJqIuf8 825 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_saved_result
// Access: Published
// Description: Sets the saved_result flag. When this is true, the
// output of this stage will be supplied as the
// "last_saved_result" source for any future stages,
// until the next TextureStage with a saved_result set
// true is encountered.
//
// This can be used to reuse the results of this texture
// stage as input to more than one stage later in the
// pipeline.
//
// The last texture in the pipeline (the one with the
// highest sort value) should not have this flag set.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3177 12 saved_result 1 3043
638 14 Dtool_qQJq_NSV 0 6 656 3043 0 14 Dtool_qQJq_NSV 324 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_saved_result
// Access: Published
// Description: Returns the current setting of the saved_result flag.
// See set_saved_result().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
639 14 Dtool_qQJqO2iR 0 4 657 3042 0 14 Dtool_qQJqO2iR 654 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_tex_view_offset
// Access: Published
// Description: Sets the tex_view_offset value. This is used only
// when a special multiview texture is bound to the
// TextureStage, and it selects the particular view of
// the texture that is to be used.
//
// This value is added to the similar parameter on
// DisplayRegion to derive the final texture view index
// that is selected for rendering.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3177 15 tex_view_offset 1 3046
640 14 Dtool_qQJqzas7 0 6 658 3046 0 14 Dtool_qQJqzas7 328 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_tex_view_offset
// Access: Published
// Description: Returns the current setting of the tex_view_offset.
// See set_tex_view_offset().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
641 14 Dtool_qQJqjFHN 0 4 659 3042 0 14 Dtool_qQJqjFHN 384 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_combine_rgb
// Access: Published
// Description: Specifies any of the CombineMode values that
// represent a one-parameter operation. Specifically,
// this is CM_replace only.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3177 4 mode 1 2986 7 source0 1 2987 8 operand0 1 2988
642 14 Dtool_qQJqgYLT 0 4 659 3042 0 14 Dtool_qQJqgYLT 437 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_combine_rgb
// Access: Published
// Description: Specifies any of the CombineMode values that
// represent a two-parameter operation. Specifically,
// this is everything except for CM_replace and
// CM_interpolate.
//////////////////////////////////////////////////////////////////// 6 4 this 3 3177 4 mode 1 2986 7 source0 1 2987 8 operand0 1 2988 7 source1 1 2987 8 operand1 1 2988
643 14 Dtool_qQJqmXix 0 4 659 3042 0 14 Dtool_qQJqmXix 388 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_combine_rgb
// Access: Published
// Description: Specifies any of the CombineMode values that
// represent a one-parameter operation. Specifically,
// this is CM_interpolate only.
//////////////////////////////////////////////////////////////////// 8 4 this 3 3177 4 mode 1 2986 7 source0 1 2987 8 operand0 1 2988 7 source1 1 2987 8 operand1 1 2988 7 source2 1 2987 8 operand2 1 2988
644 14 Dtool_qQJq0fyd 0 6 660 2986 0 14 Dtool_qQJq0fyd 258 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_mode
// Access: Published
// Description: Get the combine_rgb_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
645 14 Dtool_qQJqIBF9 0 6 661 3046 0 14 Dtool_qQJqIBF9 401 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_num_combine_rgb_operands
// Access: Published
// Description: Returns the number of meaningful operands that may be
// retrieved via get_combine_rgb_sourceN() and
// get_combine_rgb_operandN().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
646 14 Dtool_qQJqqKNk 0 6 662 2987 0 14 Dtool_qQJqqKNk 268 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_source0
// Access: Published
// Description: Get source0 of combine_rgb_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
647 14 Dtool_qQJqNrxE 0 6 663 2988 0 14 Dtool_qQJqNrxE 270 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_operand0
// Access: Published
// Description: Get operand0 of combine_rgb_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
648 14 Dtool_qQJqrKSy 0 6 664 2987 0 14 Dtool_qQJqrKSy 268 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_source1
// Access: Published
// Description: Get source1 of combine_rgb_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
649 14 Dtool_qQJqkrRI 0 6 665 2988 0 14 Dtool_qQJqkrRI 270 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_operand1
// Access: Published
// Description: Get operand1 of combine_rgb_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
650 14 Dtool_qQJqpKbA 0 6 666 2987 0 14 Dtool_qQJqpKbA 268 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_source2
// Access: Published
// Description: Get source2 of combine_rgb_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
651 14 Dtool_qQJq7oxL 0 6 667 2988 0 14 Dtool_qQJq7oxL 270 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_rgb_operand2
// Access: Published
// Description: Get operand2 of combine_rgb_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
652 14 Dtool_qQJqrsCd 0 4 668 3042 0 14 Dtool_qQJqrsCd 386 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_combine_alpha
// Access: Published
// Description: Specifies any of the CombineMode values that
// represent a one-parameter operation. Specifically,
// this is CM_replace only.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3177 4 mode 1 2986 7 source0 1 2987 8 operand0 1 2988
653 14 Dtool_qQJquvSR 0 4 668 3042 0 14 Dtool_qQJquvSR 439 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_combine_alpha
// Access: Published
// Description: Specifies any of the CombineMode values that
// represent a two-parameter operation. Specifically,
// this is everything except for CM_replace and
// CM_interpolate.
//////////////////////////////////////////////////////////////////// 6 4 this 3 3177 4 mode 1 2986 7 source0 1 2987 8 operand0 1 2988 7 source1 1 2987 8 operand1 1 2988
654 14 Dtool_qQJqjhJH 0 4 668 3042 0 14 Dtool_qQJqjhJH 390 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::set_combine_alpha
// Access: Published
// Description: Specifies any of the CombineMode values that
// represent a one-parameter operation. Specifically,
// this is CM_interpolate only.
//////////////////////////////////////////////////////////////////// 8 4 this 3 3177 4 mode 1 2986 7 source0 1 2987 8 operand0 1 2988 7 source1 1 2987 8 operand1 1 2988 7 source2 1 2987 8 operand2 1 2988
655 14 Dtool_qQJqTu_C 0 6 669 2986 0 14 Dtool_qQJqTu_C 253 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha
// Access: Published
// Description: Get combine_alpha_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
656 14 Dtool_qQJqOFQQ 0 6 670 3046 0 14 Dtool_qQJqOFQQ 407 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_num_combine_alpha_operands
// Access: Published
// Description: Returns the number of meaningful operands that may be
// retrieved via get_combine_alpha_sourceN() and
// get_combine_alpha_operandN().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
657 14 Dtool_qQJqqzUQ 0 6 671 2987 0 14 Dtool_qQJqqzUQ 272 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha_source0
// Access: Published
// Description: Get source0 of combine_alpha_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
658 14 Dtool_qQJq7D7X 0 6 672 2988 0 14 Dtool_qQJq7D7X 274 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha_operand0
// Access: Published
// Description: Get operand0 of combine_alpha_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
659 14 Dtool_qQJqEkUA 0 6 673 2987 0 14 Dtool_qQJqEkUA 272 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha_source1
// Access: Published
// Description: Get source1 of combine_alpha_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
660 14 Dtool_qQJqDSFY 0 6 674 2988 0 14 Dtool_qQJqDSFY 274 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha_operand1
// Access: Published
// Description: Get operand1 of combine_alpha_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
661 14 Dtool_qQJquaUw 0 6 675 2987 0 14 Dtool_qQJquaUw 272 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha_source2
// Access: Published
// Description: Get source2 of combine_alpha_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
662 14 Dtool_qQJqLhOY 0 6 676 2988 0 14 Dtool_qQJqLhOY 274 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_combine_alpha_operand2
// Access: Published
// Description: Get operand2 of combine_alpha_mode
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
663 14 Dtool_qQJqQupz 0 6 677 3043 0 14 Dtool_qQJqQupz 377 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::involves_color_scale
// Access: Published
// Description: Returns true if the TextureStage is affected by the
// setting of the current ColorScaleAttrib, false
// otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
664 14 Dtool_qQJqMbyj 0 6 678 3043 0 14 Dtool_qQJqMbyj 364 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::uses_color
// Access: Published
// Description: Returns true if the TextureStage makes use of
// whatever color is specified in set_color(), false
// otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
665 14 Dtool_qQJqp2np 0 6 679 3043 0 14 Dtool_qQJqp2np 331 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::uses_primary_color
// Access: Published
// Description: Returns true if the TextureStage makes use of
// the CS_primary_color combine source.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
666 14 Dtool_qQJq17UF 0 6 680 3043 0 14 Dtool_qQJq17UF 335 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::uses_last_saved_result
// Access: Published
// Description: Returns true if the TextureStage makes use of
// the CS_primary_color combine source.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3178
667 14 Dtool_qQJqhPPh 0 6 681 3043 0 14 Dtool_qQJqhPPh 224 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::operator ==
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3178 5 other 1 3178
668 14 Dtool_qQJqSGPZ 0 6 682 3043 0 14 Dtool_qQJqSGPZ 224 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::operator !=
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3178 5 other 1 3178
669 14 Dtool_qQJqc8r6 0 6 683 3043 0 14 Dtool_qQJqc8r6 223 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::operator <
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3178 5 other 1 3178
670 14 Dtool_qQJqS7S7 0 6 684 3046 0 14 Dtool_qQJqS7S7 540 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::compare_to
// Access: Published
// Description: Returns a number less than zero if this TextureStage
// sorts before the other one, greater than zero if it
// sorts after, or zero if they are equivalent. The
// sorting order is arbitrary and largely meaningless,
// except to differentiate different stages.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3178 5 other 1 3178
671 14 Dtool_qQJqMLKu 0 4 685 3042 0 14 Dtool_qQJqMLKu 256 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::Destructor
// Access: Published
// Description: Writes the details of this stage
//////////////////////////////////////////////////////////////////// 2 4 this 3 3178 3 out 1 3044
672 14 Dtool_qQJqkmyF 0 4 686 3042 0 14 Dtool_qQJqkmyF 249 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::Destructor
// Access: Published
// Description: Just a single line output
//////////////////////////////////////////////////////////////////// 2 4 this 3 3178 3 out 1 3044
673 14 Dtool_qQJqHR5s 0 7 687 3177 0 14 Dtool_qQJqHR5s 447 ////////////////////////////////////////////////////////////////////
// Function: TextureStage::get_default
// Access: Published, Static
// Description: Returns the default TextureStage that will be used
// for all texturing that does not name a particular
// stage. This generally handles the normal
// single-texture case.
//////////////////////////////////////////////////////////////////// 0
674 14 Dtool_qQJqpjIT 0 7 688 3058 0 14 Dtool_qQJqpjIT 0 0
675 14 Dtool_qQJqA5hw 0 7 694 3181 2199 14 Dtool_qQJqA5hw 217 ////////////////////////////////////////////////////////////////////
// Function: Geom::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 data 1 3072
676 14 Dtool_qQJqk_XE 0 7 695 3181 2199 14 Dtool_qQJqk_XE 460 ////////////////////////////////////////////////////////////////////
// Function: Geom::Copy Assignment Operator
// Access: Published
// Description: The copy assignment operator is not pipeline-safe.
// This will completely obliterate all stages of the
// pipeline, so don't do it for a Geom that is actively
// being used for rendering.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 4 copy 1 3182
677 14 Dtool_qQJqqLk7 0 4 697 3042 0 14 Dtool_qQJqqLk7 0 2 4 this 3 3181 4 size 1 3038
678 14 Dtool_qQJqIdD3 0 7 700 3181 2199 14 Dtool_qQJqIdD3 458 ////////////////////////////////////////////////////////////////////
// Function: Geom::make_copy
// Access: Protected, Virtual
// Description: Returns a newly-allocated Geom that is a shallow copy
// of this one. It will be a different Geom pointer,
// but its internal data may or may not be shared with
// that of the original Geom.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
679 14 Dtool_qQJqznC4 0 6 701 2945 0 14 Dtool_qQJqznC4 1144 // Filename: geom.I
// Created by: drose (06Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Geom::get_primitive_type
// Access: Published
// Description: Returns the fundamental primitive type that is common
// to all GeomPrimitives added within the Geom. All
// nested primitives within a particular Geom must be
// the same type (that is, you can mix triangles and
// tristrips, because they are both the same fundamental
// type PT_polygons, but you cannot mix triangles and
// points withn the same Geom).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
680 14 Dtool_qQJqhDDD 0 6 702 2944 0 14 Dtool_qQJqhDDD 359 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_shade_model
// Access: Published
// Description: Returns the shade model common to all of the
// individual GeomPrimitives that have been added to the
// geom.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
681 14 Dtool_qQJq18Ae 0 6 703 3046 0 14 Dtool_qQJq18Ae 374 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_geom_rendering
// Access: Published
// Description: Returns the set of GeomRendering bits that represent
// the rendering properties required to properly render
// this Geom.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
682 14 Dtool_qQJqiZFS 0 6 704 2942 0 14 Dtool_qQJqiZFS 381 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_usage_hint
// Access: Published
// Description: Returns the minimum (i.e. most dynamic) usage_hint
// among all of the individual GeomPrimitives that have
// been added to the geom.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
683 14 Dtool_qQJqSB4T 0 4 705 3042 0 14 Dtool_qQJqSB4T 558 ////////////////////////////////////////////////////////////////////
// Function: Geom::set_usage_hint
// Access: Published
// Description: Changes the UsageHint hint for all of the primitives
// on this Geom to the same value. See
// get_usage_hint().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 10 usage_hint 1 2942
684 14 Dtool_qQJqlhS_ 0 7 706 3072 0 14 Dtool_qQJqlhS_ 387 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_vertex_data
// Access: Published
// Description: Returns a const pointer to the GeomVertexData,
// for application code to directly examine (but not
// modify) the geom's underlying data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3182 14 current_thread 1 3107
685 14 Dtool_qQJqohq0 0 7 706 3072 0 14 Dtool_qQJqohq0 387 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_vertex_data
// Access: Published
// Description: Returns a const pointer to the GeomVertexData,
// for application code to directly examine (but not
// modify) the geom's underlying data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
686 14 Dtool_qQJqAtYT 0 7 707 3159 1999 14 Dtool_qQJqAtYT 583 ////////////////////////////////////////////////////////////////////
// Function: Geom::modify_vertex_data
// Access: Published
// Description: Returns a modifiable pointer to the GeomVertexData,
// so that application code may directly maniuplate the
// geom's underlying data.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3181
687 14 Dtool_qQJqWBrG 0 4 708 3042 0 14 Dtool_qQJqWBrG 512 ////////////////////////////////////////////////////////////////////
// Function: Geom::set_vertex_data
// Access: Published
// Description: Replaces the Geom's underlying vertex data table with
// a completely new table.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 4 data 1 3072
688 14 Dtool_qQJqCOPz 0 4 709 3042 0 14 Dtool_qQJqCOPz 847 ////////////////////////////////////////////////////////////////////
// Function: Geom::offset_vertices
// Access: Published
// Description: Replaces a Geom's vertex table with a new table, and
// simultaneously adds the indicated offset to all
// vertex references within the Geom's primitives. This
// is intended to be used to combine multiple
// GeomVertexDatas from different Geoms into a single
// big buffer, with each Geom referencing a subset of
// the vertices in the buffer.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3181 4 data 1 3072 6 offset 1 3046
689 14 Dtool_qQJqM2BD 0 6 710 3046 0 14 Dtool_qQJqM2BD 728 ////////////////////////////////////////////////////////////////////
// Function: Geom::make_nonindexed
// Access: Published
// Description: Converts the geom from indexed to nonindexed by
// duplicating vertices as necessary. If composite_only
// is true, then only composite primitives such as
// trifans and tristrips are converted. Returns the
// number of GeomPrimitive objects converted.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 14 composite_only 1 3043
690 14 Dtool_qQJqjKBW 0 6 711 3043 0 14 Dtool_qQJqjKBW 337 ////////////////////////////////////////////////////////////////////
// Function: Geom::is_empty
// Access: Published
// Description: Returns true if there appear to be no vertices to be
// rendered by this Geom, false if has some actual data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
691 14 Dtool_qQJqLxLL 0 6 712 3046 0 14 Dtool_qQJqLxLL 395 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_num_primitives
// Access: Published
// Description: Returns the number of GeomPrimitive objects stored
// within the Geom, each of which represents a number of
// primitives of a particular type.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
692 14 Dtool_qQJqHXk3 0 7 713 3171 0 14 Dtool_qQJqHXk3 464 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_primitive
// Access: Published
// Description: Returns a const pointer to the ith GeomPrimitive
// object stored within the Geom. Use this call only to
// inspect the ith object; use modify_primitive() or
// set_primitive() if you want to modify it.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3182 1 i 1 3046
693 14 Dtool_qQJqtI4K 0 7 714 3170 2069 14 Dtool_qQJqtI4K 632 ////////////////////////////////////////////////////////////////////
// Function: Geom::modify_primitive
// Access: Published
// Description: Returns a modifiable pointer to the ith GeomPrimitive
// object stored within the Geom, so application code
// can directly manipulate the properties of this
// primitive.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 1 i 1 3046
694 14 Dtool_qQJqvY3W 0 4 715 3042 0 14 Dtool_qQJqvY3W 514 ////////////////////////////////////////////////////////////////////
// Function: Geom::set_primitive
// Access: Published
// Description: Replaces the ith GeomPrimitive object stored within
// the Geom with the new object.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3181 1 i 1 3046 9 primitive 1 3171
695 14 Dtool_qQJq4qtW 0 4 716 3042 0 14 Dtool_qQJq4qtW 637 ////////////////////////////////////////////////////////////////////
// Function: Geom::add_primitive
// Access: Published
// Description: Adds a new GeomPrimitive structure to the Geom
// object. This specifies a particular subset of
// vertices that are used to define geometric primitives
// of the indicated type.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 9 primitive 1 3171
696 14 Dtool_qQJqmtla 0 4 717 3042 0 14 Dtool_qQJqmtla 459 ////////////////////////////////////////////////////////////////////
// Function: Geom::remove_primitive
// Access: Published
// Description: Removes the ith primitive from the list.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 1 i 1 3046
697 14 Dtool_qQJqYAGE 0 4 718 3042 0 14 Dtool_qQJqYAGE 633 ////////////////////////////////////////////////////////////////////
// Function: Geom::clear_primitives
// Access: Published
// Description: Removes all the primitives from the Geom object (but
// keeps the same table of vertices). You may then
// re-add primitives one at a time via calls to
// add_primitive().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3181
698 14 Dtool_qQJq6GgV 0 7 719 3181 2199 14 Dtool_qQJq6GgV 354 ////////////////////////////////////////////////////////////////////
// Function: Geom::decompose
// Access: Published
// Description: Decomposes all of the primitives within this Geom,
// returning the result. See
// GeomPrimitive::decompose().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
699 14 Dtool_qQJqLQaK 0 7 720 3181 2199 14 Dtool_qQJqLQaK 357 ////////////////////////////////////////////////////////////////////
// Function: Geom::doubleside
// Access: Published
// Description: Doublesides all of the primitives within this Geom,
// returning the result. See
// GeomPrimitive::doubleside().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
700 14 Dtool_qQJqEJJU 0 7 721 3181 2199 14 Dtool_qQJqEJJU 348 ////////////////////////////////////////////////////////////////////
// Function: Geom::reverse
// Access: Published
// Description: Reverses all of the primitives within this Geom,
// returning the result. See
// GeomPrimitive::reverse().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
701 14 Dtool_qQJqPWLU 0 7 722 3181 2199 14 Dtool_qQJqPWLU 345 ////////////////////////////////////////////////////////////////////
// Function: Geom::rotate
// Access: Published
// Description: Rotates all of the primitives within this Geom,
// returning the result. See
// GeomPrimitive::rotate().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
702 14 Dtool_qQJqctAJ 0 7 723 3181 2199 14 Dtool_qQJqctAJ 890 ////////////////////////////////////////////////////////////////////
// Function: Geom::unify
// Access: Published
// Description: Unifies all of the primitives contained within this
// Geom into a single (or as few as possible, within the
// constraints of max_indices) primitive objects. This
// may require decomposing the primitives if, for
// instance, the Geom contains both triangle strips and
// triangle fans.
//
// max_indices represents the maximum number of indices
// that will be put in any one GeomPrimitive. If
// preserve_order is true, then the primitives will not
// be reordered during the operation, even if this
// results in a suboptimal result.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3182 11 max_indices 1 3046 14 preserve_order 1 3043
703 14 Dtool_qQJqqMSd 0 7 724 3181 2199 14 Dtool_qQJqqMSd 319 ////////////////////////////////////////////////////////////////////
// Function: Geom::make_points
// Access: Published
// Description: Returns a new Geom with points at all the vertices.
// See GeomPrimitive::make_points().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
704 14 Dtool_qQJqjSH1 0 7 725 3181 2199 14 Dtool_qQJqjSH1 323 ////////////////////////////////////////////////////////////////////
// Function: Geom::make_patches
// Access: Published
// Description: Returns a new Geom with each primitive converted
// into a patch. Calls decompose() first.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
705 14 Dtool_qQJqlrdj 0 4 726 3042 0 14 Dtool_qQJqlrdj 568 ////////////////////////////////////////////////////////////////////
// Function: Geom::decompose_in_place
// Access: Published
// Description: Decomposes all of the primitives within this Geom,
// leaving the results in place. See
// GeomPrimitive::decompose().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3181
706 14 Dtool_qQJqRWxI 0 4 727 3042 0 14 Dtool_qQJqRWxI 571 ////////////////////////////////////////////////////////////////////
// Function: Geom::doubleside_in_place
// Access: Published
// Description: Doublesides all of the primitives within this Geom,
// leaving the results in place. See
// GeomPrimitive::doubleside().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3181
707 14 Dtool_qQJqDe1_ 0 4 728 3042 0 14 Dtool_qQJqDe1_ 562 ////////////////////////////////////////////////////////////////////
// Function: Geom::reverse_in_place
// Access: Published
// Description: Reverses all of the primitives within this Geom,
// leaving the results in place. See
// GeomPrimitive::reverse().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3181
708 14 Dtool_qQJqHZg5 0 4 729 3042 0 14 Dtool_qQJqHZg5 559 ////////////////////////////////////////////////////////////////////
// Function: Geom::rotate_in_place
// Access: Published
// Description: Rotates all of the primitives within this Geom,
// leaving the results in place. See
// GeomPrimitive::rotate().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3181
709 14 Dtool_qQJqiehR 0 4 730 3042 0 14 Dtool_qQJqiehR 1096 ////////////////////////////////////////////////////////////////////
// Function: Geom::unify_in_place
// Access: Published
// Description: Unifies all of the primitives contained within this
// Geom into a single (or as few as possible, within the
// constraints of max_indices) primitive objects. This
// may require decomposing the primitives if, for
// instance, the Geom contains both triangle strips and
// triangle fans.
//
// max_indices represents the maximum number of indices
// that will be put in any one GeomPrimitive. If
// preserve_order is true, then the primitives will not
// be reordered during the operation, even if this
// results in a suboptimal result.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3181 11 max_indices 1 3046 14 preserve_order 1 3043
710 14 Dtool_qQJqJfCo 0 4 731 3042 0 14 Dtool_qQJqJfCo 567 ////////////////////////////////////////////////////////////////////
// Function: Geom::make_points_in_place
// Access: Published
// Description: Replaces the GeomPrimitives within this Geom with
// corresponding GeomPoints. See
// GeomPrimitive::make_points().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3181
711 14 Dtool_qQJqlsgM 0 4 732 3042 0 14 Dtool_qQJqlsgM 570 ////////////////////////////////////////////////////////////////////
// Function: Geom::make_patches_in_place
// Access: Published
// Description: Replaces the GeomPrimitives within this Geom with
// corresponding GeomPatches. See
// GeomPrimitive::make_patches().
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3181
712 14 Dtool_qQJqyUv9 0 6 733 3043 0 14 Dtool_qQJqyUv9 792 ////////////////////////////////////////////////////////////////////
// Function: Geom::copy_primitives_from
// Access: Published, Virtual
// Description: Copies the primitives from the indicated Geom into
// this one. This does require that both Geoms contain
// the same fundamental type primitives, both have a
// compatible shade model, and both use the same
// GeomVertexData. Both Geoms must also be the same
// specific class type (i.e. if one is a GeomTextGlyph,
// they both must be.)
//
// Returns true if the copy is successful, or false
// otherwise (because the Geoms were mismatched).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 5 other 1 3182
713 14 Dtool_qQJqgSfK 0 6 734 3046 0 14 Dtool_qQJqgSfK 341 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_num_bytes
// Access: Published
// Description: Returns the number of bytes consumed by the geom and
// its primitives (but not including its vertex table).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
714 14 Dtool_qQJqKP2k 0 7 735 3105 0 14 Dtool_qQJqKP2k 564 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time any of the primitives in
// the Geom is modified, or the set of primitives is
// modified. However, this does not include
// modifications to the vertex data, which should be
// tested separately.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3182 14 current_thread 1 3107
715 14 Dtool_qQJqHKFV 0 7 735 3105 0 14 Dtool_qQJqHKFV 564 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time any of the primitives in
// the Geom is modified, or the set of primitives is
// modified. However, this does not include
// modifications to the vertex data, which should be
// tested separately.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
716 14 Dtool_qQJqs4wf 0 6 736 3043 0 14 Dtool_qQJqs4wf 571 ////////////////////////////////////////////////////////////////////
// Function: Geom::request_resident
// Access: Published
// Description: Returns true if all the primitive arrays are
// currently resident in memory. If this returns false,
// the data will be brought back into memory shortly;
// try again later.
//
// This does not also test the Geom's associated
// GeomVertexData. That must be tested separately.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
717 14 Dtool_qQJqYlMV 0 4 737 3042 0 14 Dtool_qQJqYlMV 808 ////////////////////////////////////////////////////////////////////
// Function: Geom::transform_vertices
// Access: Published
// Description: Applies the indicated transform to all of the
// vertices in the Geom. If the Geom happens to share a
// vertex table with another Geom, this operation will
// duplicate the vertex table instead of breaking the
// other Geom; however, if multiple Geoms with shared
// tables are transformed by the same matrix, they will
// no longer share tables after the operation. Consider
// using the GeomTransformer if you will be applying the
// same transform to multiple Geoms.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 3 mat 1 3127
718 14 Dtool_qQJqRtQb 0 6 738 3043 0 14 Dtool_qQJqRtQb 460 ////////////////////////////////////////////////////////////////////
// Function: Geom::check_valid
// Access: Published
// Description: Verifies that the all of the primitives within the
// geom reference vertices that actually exist within
// the geom's GeomVertexData. Returns true if the geom
// appears to be valid, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
719 14 Dtool_qQJqdH6F 0 6 738 3043 0 14 Dtool_qQJqdH6F 463 ////////////////////////////////////////////////////////////////////
// Function: Geom::check_valid
// Access: Published
// Description: Verifies that the all of the primitives within the
// geom reference vertices that actually exist within
// the indicated GeomVertexData. Returns true if the
// geom appears to be valid, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3182 11 vertex_data 1 3072
720 14 Dtool_qQJq9WkK 0 7 739 3186 0 14 Dtool_qQJq9WkK 257 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_bounds
// Access: Published
// Description: Returns the bounding volume for the Geom.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3182 14 current_thread 1 3107
721 14 Dtool_qQJq5pRF 0 7 739 3186 0 14 Dtool_qQJq5pRF 257 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_bounds
// Access: Published
// Description: Returns the bounding volume for the Geom.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
722 14 Dtool_qQJqkkOF 0 6 740 3046 0 14 Dtool_qQJqkkOF 316 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_nested_vertices
// Access: Published
// Description: Returns the number of vertices rendered by all
// primitives within the Geom.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3182 14 current_thread 1 3107
723 14 Dtool_qQJq7ykk 0 6 740 3046 0 14 Dtool_qQJq7ykk 316 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_nested_vertices
// Access: Published
// Description: Returns the number of vertices rendered by all
// primitives within the Geom.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
724 14 Dtool_qQJqM7bs 0 4 741 3042 0 14 Dtool_qQJqM7bs 390 ////////////////////////////////////////////////////////////////////
// Function: Geom::mark_bounds_stale
// Access: Published
// Description: Marks the bounding volume of the Geom as stale so
// that it should be recomputed. Usually it is not
// necessary to call this explicitly.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
725 14 Dtool_qQJq_N_x 0 4 742 3042 0 14 Dtool_qQJq_N_x 969 ////////////////////////////////////////////////////////////////////
// Function: Geom::set_bounds_type
// Access: Published
// Description: Specifies the desired type of bounding volume that
// will be created for this Geom. This is normally
// BoundingVolume::BT_default, which means to set the
// type according to the config variable "bounds-type".
//
// If this is BT_sphere or BT_box, a BoundingSphere or
// BoundingBox is explicitly created. If it is BT_best,
// a BoundingBox is created.
//
// This affects the implicit bounding volume only. If
// an explicit bounding volume is set on the Geom with
// set_bounds(), that bounding volume type is used.
// (This is different behavior from the similar method
// on PandaNode.)
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 11 bounds_type 1 3187
726 14 Dtool_qQJqQxyc 0 6 743 3187 0 14 Dtool_qQJqQxyc 298 ////////////////////////////////////////////////////////////////////
// Function: Geom::get_bounds_type
// Access: Published
// Description: Returns the bounding volume type set with
// set_bounds_type().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3182
727 14 Dtool_qQJqnNw_ 0 4 744 3042 0 14 Dtool_qQJqnNw_ 726 ////////////////////////////////////////////////////////////////////
// Function: Geom::set_bounds
// Access: Published
// Description: Resets the bounding volume so that it is the
// indicated volume. When it is explicitly set, the
// bounding volume will no longer be automatically
// computed; call clear_bounds() if you would like to
// return the bounding volume to its default behavior.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 6 volume 1 3186
728 14 Dtool_qQJq92vG 0 4 745 3042 0 14 Dtool_qQJq92vG 614 ////////////////////////////////////////////////////////////////////
// Function: Geom::clear_bounds
// Access: Published
// Description: Reverses the effect of a previous call to
// set_bounds(), and allows the bounding volume to be
// automatically computed once more based on the
// vertices.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3181
729 14 Dtool_qQJqrXR3 0 4 746 3042 0 14 Dtool_qQJqrXR3 221 ////////////////////////////////////////////////////////////////////
// Function: Geom::output
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3182 3 out 1 3044
730 14 Dtool_qQJqC21S 0 4 747 3042 0 14 Dtool_qQJqC21S 220 ////////////////////////////////////////////////////////////////////
// Function: Geom::write
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3182 3 out 1 3044 12 indent_level 1 3046
731 14 Dtool_qQJq0uiX 0 4 747 3042 0 14 Dtool_qQJq0uiX 220 ////////////////////////////////////////////////////////////////////
// Function: Geom::write
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3182 3 out 1 3044
732 14 Dtool_qQJqr67p 0 4 748 3042 0 14 Dtool_qQJqr67p 546 ////////////////////////////////////////////////////////////////////
// Function: Geom::clear_cache
// Access: Published
// Description: Removes all of the previously-cached results of
// munge_geom().
//
// This blows away the entire cache, upstream and
// downstream the pipeline. Use clear_cache_stage()
// instead if you only want to blow away the cache at
// the current stage and upstream.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3181
733 14 Dtool_qQJqC0IT 0 4 749 3042 0 14 Dtool_qQJqC0IT 598 ////////////////////////////////////////////////////////////////////
// Function: Geom::clear_cache_stage
// Access: Published
// Description: Removes all of the previously-cached results of
// munge_geom(), at the current pipeline stage and
// upstream. Does not affect the downstream cache.
//
// Don't call this in a downstream thread unless you
// don't mind it blowing away other changes you might
// have recently made in an upstream thread.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 14 current_thread 1 3107
734 14 Dtool_qQJqkUN5 0 4 750 3042 0 14 Dtool_qQJqkUN5 640 ////////////////////////////////////////////////////////////////////
// Function: Geom::prepare
// Access: Published
// Description: Indicates that the geom should be enqueued to be
// prepared in the indicated prepared_objects at the
// beginning of the next frame. This will ensure the
// geom is already loaded into geom memory if it
// is expected to be rendered soon.
//
// Use this function instead of prepare_now() to preload
// geoms from a user interface standpoint.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 16 prepared_objects 1 3111
735 14 Dtool_qQJqir4R 0 6 751 3043 0 14 Dtool_qQJqir4R 368 ////////////////////////////////////////////////////////////////////
// Function: Geom::is_prepared
// Access: Published
// Description: Returns true if the geom has already been prepared
// or enqueued for preparation on the indicated GSG,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3182 16 prepared_objects 1 3111
736 14 Dtool_qQJqYDlG 0 6 752 3043 0 14 Dtool_qQJqYDlG 388 ////////////////////////////////////////////////////////////////////
// Function: Geom::release
// Access: Published
// Description: Frees the geom context only on the indicated object,
// if it exists there. Returns true if it was released,
// false if it had not been prepared.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3181 16 prepared_objects 1 3111
737 14 Dtool_qQJqtSn_ 0 6 753 3046 0 14 Dtool_qQJqtSn_ 386 ////////////////////////////////////////////////////////////////////
// Function: Geom::release_all
// Access: Published
// Description: Frees the context allocated on all objects for which
// the geom has been declared. Returns the number of
// contexts which have been freed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3181
738 14 Dtool_qQJqptAs 0 6 754 3188 0 14 Dtool_qQJqptAs 871 ////////////////////////////////////////////////////////////////////
// Function: Geom::prepare_now
// Access: Public
// Description: Creates a context for the geom on the particular
// GSG, if it does not already exist. Returns the new
// (or old) GeomContext. This assumes that the
// GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// geoms. If this is not necessarily the case, you
// should use prepare() instead.
//
// Normally, this is not called directly except by the
// GraphicsStateGuardian; a geom does not need to be
// explicitly prepared by the user before it may be
// rendered.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3181 16 prepared_objects 1 3111 3 gsg 1 3112
739 14 Dtool_qQJqyQKN 0 7 755 3058 0 14 Dtool_qQJqyQKN 0 0
740 14 Dtool_qQJqMO36 0 7 690 3119 0 14 Dtool_qQJqMO36 0 1 4 this 3 3181
741 14 Dtool_qQJq7MTJ 0 7 691 3181 2199 14 Dtool_qQJq7MTJ 0 1 4 this 3 3119
742 14 Dtool_qQJq9JLK 0 6 692 3068 0 14 Dtool_qQJq9JLK 0 1 4 this 3 3181
743 14 Dtool_qQJqcioB 0 7 693 3181 2199 14 Dtool_qQJqcioB 0 1 4 this 3 3068
744 14 Dtool_qQJqonzp 0 7 757 3181 2199 14 Dtool_qQJqonzp 220 ////////////////////////////////////////////////////////////////////
// Function: GeomContext::get_geom
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3189
745 14 Dtool_qQJqZbHT 0 7 758 3058 0 14 Dtool_qQJqZbHT 0 0
746 14 Dtool_qQJqlaZi 0 7 761 3191 2069 14 Dtool_qQJqlaZi 222 ////////////////////////////////////////////////////////////////////
// Function: GeomLines::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 10 usage_hint 1 2942
747 14 Dtool_qQJqZdk3 0 7 761 3191 2069 14 Dtool_qQJqZdk3 227 ////////////////////////////////////////////////////////////////////
// Function: GeomLines::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3192
748 14 Dtool_qQJqXicd 0 4 762 3042 0 14 Dtool_qQJqXicd 0 2 4 this 3 3191 4 size 1 3038
749 14 Dtool_qQJq_7pA 0 7 765 3058 0 14 Dtool_qQJq_7pA 0 0
750 14 Dtool_qQJq3Ci0 0 7 767 3194 2069 14 Dtool_qQJq3Ci0 227 ////////////////////////////////////////////////////////////////////
// Function: GeomLinestrips::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 10 usage_hint 1 2942
751 14 Dtool_qQJqRSrb 0 7 767 3194 2069 14 Dtool_qQJqRSrb 232 ////////////////////////////////////////////////////////////////////
// Function: GeomLinestrips::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3195
752 14 Dtool_qQJqYE9w 0 4 768 3042 0 14 Dtool_qQJqYE9w 0 2 4 this 3 3194 4 size 1 3038
753 14 Dtool_qQJqnUZ3 0 7 771 3058 0 14 Dtool_qQJqnUZ3 0 0
754 14 Dtool_qQJqFJ4N 0 7 773 3199 2069 14 Dtool_qQJqFJ4N 229 ////////////////////////////////////////////////////////////////////
// Function: GeomPatches::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3197
755 14 Dtool_qQJqA8Jl 0 7 773 3199 2069 14 Dtool_qQJqA8Jl 512 ////////////////////////////////////////////////////////////////////
// Function: GeomPatches::Constructor
// Access: Published
// Description: The number of vertices per patch must be specified to
// the GeomPatches constructor, and it may not be
// changed during the lifetime of the GeomPatches
// object. Create a new GeomPatches if you need to have
// a different value.
//////////////////////////////////////////////////////////////////// 2 22 num_vertices_per_patch 1 3046 10 usage_hint 1 2942
756 14 Dtool_qQJqVjrY 0 4 774 3042 0 14 Dtool_qQJqVjrY 0 2 4 this 3 3199 4 size 1 3038
757 14 Dtool_qQJqGuGr 0 7 777 3058 0 14 Dtool_qQJqGuGr 0 0
758 14 Dtool_qQJqDbke 0 7 779 3200 2069 14 Dtool_qQJqDbke 223 ////////////////////////////////////////////////////////////////////
// Function: GeomPoints::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 10 usage_hint 1 2942
759 14 Dtool_qQJq2L6_ 0 7 779 3200 2069 14 Dtool_qQJq2L6_ 228 ////////////////////////////////////////////////////////////////////
// Function: GeomPoints::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3201
760 14 Dtool_qQJq2jE2 0 4 780 3042 0 14 Dtool_qQJq2jE2 0 2 4 this 3 3200 4 size 1 3038
761 14 Dtool_qQJqmrqc 0 7 783 3058 0 14 Dtool_qQJqmrqc 0 0
762 14 Dtool_qQJqlM_V 0 7 785 3203 2069 14 Dtool_qQJqlM_V 226 ////////////////////////////////////////////////////////////////////
// Function: GeomTriangles::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 10 usage_hint 1 2942
763 14 Dtool_qQJql_JA 0 7 785 3203 2069 14 Dtool_qQJql_JA 231 ////////////////////////////////////////////////////////////////////
// Function: GeomTriangles::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3204
764 14 Dtool_qQJqVefL 0 4 786 3042 0 14 Dtool_qQJqVefL 0 2 4 this 3 3203 4 size 1 3038
765 14 Dtool_qQJqNvut 0 7 789 3058 0 14 Dtool_qQJqNvut 0 0
766 14 Dtool_qQJqBV_D 0 7 791 3206 2069 14 Dtool_qQJqBV_D 224 ////////////////////////////////////////////////////////////////////
// Function: GeomTrifans::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 10 usage_hint 1 2942
767 14 Dtool_qQJqHwh3 0 7 791 3206 2069 14 Dtool_qQJqHwh3 229 ////////////////////////////////////////////////////////////////////
// Function: GeomTrifans::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3207
768 14 Dtool_qQJqhH18 0 4 792 3042 0 14 Dtool_qQJqhH18 0 2 4 this 3 3206 4 size 1 3038
769 14 Dtool_qQJqe_RP 0 7 795 3058 0 14 Dtool_qQJqe_RP 0 0
770 14 Dtool_qQJqxfLD 0 7 797 3209 2069 14 Dtool_qQJqxfLD 226 ////////////////////////////////////////////////////////////////////
// Function: GeomTristrips::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 10 usage_hint 1 2942
771 14 Dtool_qQJqARnF 0 7 797 3209 2069 14 Dtool_qQJqARnF 231 ////////////////////////////////////////////////////////////////////
// Function: GeomTristrips::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3210
772 14 Dtool_qQJqEEoX 0 4 798 3042 0 14 Dtool_qQJqEEoX 0 2 4 this 3 3209 4 size 1 3038
773 14 Dtool_qQJqib35 0 7 801 3058 0 14 Dtool_qQJqib35 0 0
774 14 Dtool_qQJqeBP0 0 7 803 3212 2299 14 Dtool_qQJqeBP0 322 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated array only.
//////////////////////////////////////////////////////////////////// 2 10 array_data 1 3065 14 current_thread 1 3107
775 14 Dtool_qQJqmHyG 0 7 803 3212 2299 14 Dtool_qQJqmHyG 322 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated array only.
//////////////////////////////////////////////////////////////////// 1 10 array_data 1 3065
776 14 Dtool_qQJqHXtj 0 7 803 3212 2299 14 Dtool_qQJqHXtj 322 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated array only.
//////////////////////////////////////////////////////////////////// 3 10 array_data 1 3065 6 column 1 3046 14 current_thread 1 3107
777 14 Dtool_qQJqfOvI 0 7 803 3212 2299 14 Dtool_qQJqfOvI 322 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated array only.
//////////////////////////////////////////////////////////////////// 2 10 array_data 1 3065 6 column 1 3046
778 14 Dtool_qQJq_TF4 0 7 803 3212 2299 14 Dtool_qQJq_TF4 417 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated data object. This flavor creates the
// reader specifically to process the named data type.
//////////////////////////////////////////////////////////////////// 3 11 vertex_data 1 3072 4 name 1 3055 14 current_thread 1 3107
779 14 Dtool_qQJqFPmQ 0 7 803 3212 2299 14 Dtool_qQJqFPmQ 417 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated data object. This flavor creates the
// reader specifically to process the named data type.
//////////////////////////////////////////////////////////////////// 2 11 vertex_data 1 3072 4 name 1 3055
780 14 Dtool_qQJqzNo1 0 7 803 3212 2299 14 Dtool_qQJqzNo1 323 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated data object.
//////////////////////////////////////////////////////////////////// 2 11 vertex_data 1 3072 14 current_thread 1 3107
781 14 Dtool_qQJqUq8_ 0 7 803 3212 2299 14 Dtool_qQJqUq8_ 323 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated data object.
//////////////////////////////////////////////////////////////////// 1 11 vertex_data 1 3072
782 14 Dtool_qQJqBv7a 0 7 803 3212 2299 14 Dtool_qQJqBv7a 417 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated data object. This flavor creates the
// reader specifically to process the named data type.
//////////////////////////////////////////////////////////////////// 3 11 vertex_data 1 3072 4 name 1 3037 14 current_thread 1 3107
783 14 Dtool_qQJqxxdz 0 7 803 3212 2299 14 Dtool_qQJqxxdz 417 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Constructor
// Access: Published
// Description: Constructs a new reader to process the vertices of
// the indicated data object. This flavor creates the
// reader specifically to process the named data type.
//////////////////////////////////////////////////////////////////// 2 11 vertex_data 1 3072 4 name 1 3037
784 14 Dtool_qQJqr9yT 0 7 803 3212 2299 14 Dtool_qQJqr9yT 234 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3213
785 14 Dtool_qQJq0qj3 0 7 803 3212 2299 14 Dtool_qQJq0qj3 930 // Filename: geomVertexReader.I
// Created by: drose (25Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Default Constructor
// Access: Published
// Description: Constructs an invalid GeomVertexReader. You must use
// the assignment operator to assign a valid
// GeomVertexReader to this object before you can use
// it.
//////////////////////////////////////////////////////////////////// 1 14 current_thread 1 3107
786 14 Dtool_qQJqU4ZP 0 7 803 3212 2299 14 Dtool_qQJqU4ZP 930 // Filename: geomVertexReader.I
// Created by: drose (25Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Default Constructor
// Access: Published
// Description: Constructs an invalid GeomVertexReader. You must use
// the assignment operator to assign a valid
// GeomVertexReader to this object before you can use
// it.
//////////////////////////////////////////////////////////////////// 0
787 14 Dtool_qQJqDEdr 0 6 804 3212 0 14 Dtool_qQJqDEdr 242 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3212 4 copy 1 3213
788 14 Dtool_qQJq8urn 0 7 806 3072 0 14 Dtool_qQJq8urn 408 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_vertex_data
// Access: Published
// Description: Returns the vertex data object that the
// reader is processing. This may return NULL if the
// reader was constructed with just an array pointer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3213
789 14 Dtool_qQJq73al 0 7 807 3065 0 14 Dtool_qQJq73al 325 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_array_data
// Access: Published
// Description: Returns the particular array object that the
// reader is currently processing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3213
790 14 Dtool_qQJqF5IG 0 7 808 3109 0 14 Dtool_qQJqF5IG 400 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_array_handle
// Access: Published
// Description: Returns the read handle to the array object that the
// read is currently processing. This low-level call
// should be used with caution.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3213
791 14 Dtool_qQJqPakB 0 6 809 3038 0 14 Dtool_qQJqPakB 459 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_stride
// Access: Published
// Description: Returns the per-row stride (bytes between consecutive
// rows) of the underlying vertex array. This low-level
// information is normally not needed to use the
// GeomVertexReader directly.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3213
792 14 Dtool_qQJqmRbR 0 7 810 3107 0 14 Dtool_qQJqmRbR 359 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_current_thread
// Access: Published
// Description: Returns the Thread pointer of the currently-executing
// thread, as passed to the constructor of this object.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3213
793 14 Dtool_qQJqIfYI 0 4 811 3042 0 14 Dtool_qQJqIfYI 928 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_force
// Access: Published
// Description: Sets the value of the force flag. When this is true
// (the default), vertex data will be paged in from disk
// if necessary. When this is false, the GeomVertexData
// will simply return a failure code when attempting to
// read vertex data that is not resident (but will put
// it on the queue to become resident later).
//
// Normally, vertex data is always resident, so this
// will not be an issue. It is only possible for vertex
// data to be nonresident if you have enabled vertex
// paging via the GeomVertexArrayData and VertexDataPage
// interfaces.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3212 5 force 1 3043
794 14 Dtool_qQJqKuql 0 6 812 3043 0 14 Dtool_qQJqKuql 298 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_force
// Access: Published
// Description: Returns the value of the force flag. See
// set_force().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3213
795 14 Dtool_qQJquxhQ 0 6 813 3043 0 14 Dtool_qQJquxhQ 616 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_column
// Access: Published
// Description: Sets up the reader to use the data type with the
// indicated name.
//
// This also resets the read row number to the start row
// (the same value passed to a previous call to
// set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3212 4 name 1 3055
796 14 Dtool_qQJqR1Ec 0 6 813 3043 0 14 Dtool_qQJqR1Ec 616 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_column
// Access: Published
// Description: Sets up the reader to use the data type with the
// indicated name.
//
// This also resets the read row number to the start row
// (the same value passed to a previous call to
// set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3212 4 name 1 3037
797 14 Dtool_qQJqJFVC 0 6 813 3043 0 14 Dtool_qQJqJFVC 638 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_column
// Access: Published
// Description: Sets up the reader to use the nth data type of the
// GeomVertexFormat, numbering from 0.
//
// This also resets the read row number to the start row
// (the same value passed to a previous call to
// set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3212 6 column 1 3046
798 14 Dtool_qQJqIqjd 0 6 813 3043 0 14 Dtool_qQJqIqjd 638 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_column
// Access: Published
// Description: Sets up the reader to use the indicated column
// description on the given array.
//
// This also resets the current read row number to the
// start row (the same value passed to a previous call
// to set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3212 5 array 1 3046 6 column 1 3059
799 14 Dtool_qQJqQtEQ 0 4 814 3042 0 14 Dtool_qQJqQtEQ 272 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::clear
// Access: Published
// Description: Resets the GeomVertexReader to the initial state.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
800 14 Dtool_qQJqqVEq 0 6 815 3043 0 14 Dtool_qQJqqVEq 445 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::has_column
// Access: Published
// Description: Returns true if a valid data type has been
// successfully set, or false if the data type does not
// exist (or if get_force() is false and the vertex data
// is nonresident).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3213
801 14 Dtool_qQJqIsz6 0 6 816 3046 0 14 Dtool_qQJqIsz6 323 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_array
// Access: Published
// Description: Returns the array index containing the data type that
// the reader is working on.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3213
802 14 Dtool_qQJqiUaj 0 6 817 3059 0 14 Dtool_qQJqiUaj 316 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_column
// Access: Published
// Description: Returns the description of the data type that the
// reader is working on.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3213
803 14 Dtool_qQJqvEm8 0 4 818 3042 0 14 Dtool_qQJqvEm8 655 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_row_unsafe
// Access: Published
// Description: Sets the start row to the indicated value, without
// internal checks. This is the same as set_row(), but
// it does not check for the possibility that the array
// has been reallocated internally for some reason; use
// only when you are confident that the array is
// unchanged and you really need every bit of available
// performance.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3212 3 row 1 3046
804 14 Dtool_qQJq9pTB 0 4 819 3042 0 14 Dtool_qQJq9pTB 533 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::set_row
// Access: Published
// Description: Sets the start row to the indicated value. The
// reader will begin reading from the indicated row;
// each subsequent get_data*() call will return the data
// from the subsequent row. If set_column() is called,
// the reader will return to this row.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3212 3 row 1 3046
805 14 Dtool_qQJqVMpp 0 6 820 3046 0 14 Dtool_qQJqVMpp 375 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_start_row
// Access: Published
// Description: Returns the row index at which the reader started.
// It will return to this row if you reset the current
// column.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3213
806 14 Dtool_qQJqGqgQ 0 6 821 3046 0 14 Dtool_qQJqGqgQ 339 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_read_row
// Access: Published
// Description: Returns the row index from which the data will be
// retrieved by the next call to get_data*().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3213
807 14 Dtool_qQJqtH9p 0 6 822 3043 0 14 Dtool_qQJqtH9p 440 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::is_at_end
// Access: Published
// Description: Returns true if the reader is currently at the end of
// the list of vertices, false otherwise. If this is
// true, another call to get_data*() will result in a
// crash.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3213
808 14 Dtool_qQJqvgRZ 0 6 823 3047 0 14 Dtool_qQJqvgRZ 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data1f
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 1-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
809 14 Dtool_qQJqvQzs 0 6 824 3215 0 14 Dtool_qQJqvQzs 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data2f
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 2-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
810 14 Dtool_qQJqoAVA 0 6 825 3218 0 14 Dtool_qQJqoAVA 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data3f
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 3-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
811 14 Dtool_qQJqow2T 0 6 826 3160 0 14 Dtool_qQJqow2T 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data4f
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 4-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
812 14 Dtool_qQJqDgh3 0 6 827 3221 0 14 Dtool_qQJqDgh3 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data1d
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 1-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
813 14 Dtool_qQJqcQDL 0 6 828 3222 0 14 Dtool_qQJqcQDL 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data2d
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 2-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
814 14 Dtool_qQJqcAle 0 6 829 3225 0 14 Dtool_qQJqcAle 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data3d
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 3-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
815 14 Dtool_qQJqcwGy 0 6 830 3228 0 14 Dtool_qQJqcwGy 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data4d
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 4-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
816 14 Dtool_qQJqLRcd 0 6 831 3047 0 14 Dtool_qQJqLRcd 368 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data1
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 1-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
817 14 Dtool_qQJqLB_w 0 6 832 3215 0 14 Dtool_qQJqLB_w 368 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data2
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 2-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
818 14 Dtool_qQJqIxhE 0 6 833 3218 0 14 Dtool_qQJqIxhE 368 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data3
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 3-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
819 14 Dtool_qQJqIhDY 0 6 834 3160 0 14 Dtool_qQJqIhDY 368 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data4
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 4-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
820 14 Dtool_qQJqMh5r 0 6 835 3046 0 14 Dtool_qQJqMh5r 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data1i
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 1-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
821 14 Dtool_qQJqMRb_ 0 6 836 3231 0 14 Dtool_qQJqMRb_ 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data2i
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 2-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
822 14 Dtool_qQJqNB9S 0 6 837 3234 0 14 Dtool_qQJqNB9S 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data3i
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 3-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
823 14 Dtool_qQJqNxem 0 6 838 3237 0 14 Dtool_qQJqNxem 369 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::get_data4i
// Access: Published
// Description: Returns the data associated with the read row,
// expressed as a 4-component value, and advances the
// read row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3212
824 14 Dtool_qQJqWNtp 0 4 839 3042 0 14 Dtool_qQJqWNtp 224 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexReader::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3213 3 out 1 3044
825 14 Dtool_qQJqDYGf 0 7 841 3240 2336 14 Dtool_qQJqDYGf 322 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated array only.
//////////////////////////////////////////////////////////////////// 2 10 array_data 1 3103 14 current_thread 1 3107
826 14 Dtool_qQJqm1bv 0 7 841 3240 2336 14 Dtool_qQJqm1bv 322 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated array only.
//////////////////////////////////////////////////////////////////// 1 10 array_data 1 3103
827 14 Dtool_qQJqBk28 0 7 841 3240 2336 14 Dtool_qQJqBk28 322 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated array only.
//////////////////////////////////////////////////////////////////// 3 10 array_data 1 3103 6 column 1 3046 14 current_thread 1 3107
828 14 Dtool_qQJq8wdd 0 7 841 3240 2336 14 Dtool_qQJq8wdd 322 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated array only.
//////////////////////////////////////////////////////////////////// 2 10 array_data 1 3103 6 column 1 3046
829 14 Dtool_qQJqiSJf 0 7 841 3240 2336 14 Dtool_qQJqiSJf 417 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated data object. This flavor creates the
// writer specifically to process the named data type.
//////////////////////////////////////////////////////////////////// 3 11 vertex_data 1 3159 4 name 1 3055 14 current_thread 1 3107
830 14 Dtool_qQJqOMjg 0 7 841 3240 2336 14 Dtool_qQJqOMjg 417 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated data object. This flavor creates the
// writer specifically to process the named data type.
//////////////////////////////////////////////////////////////////// 2 11 vertex_data 1 3159 4 name 1 3055
831 14 Dtool_qQJq_sLT 0 7 841 3240 2336 14 Dtool_qQJq_sLT 323 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated data object.
//////////////////////////////////////////////////////////////////// 2 11 vertex_data 1 3159 14 current_thread 1 3107
832 14 Dtool_qQJqiuVb 0 7 841 3240 2336 14 Dtool_qQJqiuVb 323 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated data object.
//////////////////////////////////////////////////////////////////// 1 11 vertex_data 1 3159
833 14 Dtool_qQJqbStq 0 7 841 3240 2336 14 Dtool_qQJqbStq 417 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated data object. This flavor creates the
// writer specifically to process the named data type.
//////////////////////////////////////////////////////////////////// 3 11 vertex_data 1 3159 4 name 1 3037 14 current_thread 1 3107
834 14 Dtool_qQJqvIHs 0 7 841 3240 2336 14 Dtool_qQJqvIHs 417 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Constructor
// Access: Published
// Description: Constructs a new writer to process the vertices of
// the indicated data object. This flavor creates the
// writer specifically to process the named data type.
//////////////////////////////////////////////////////////////////// 2 11 vertex_data 1 3159 4 name 1 3037
835 14 Dtool_qQJq3jti 0 7 841 3240 2336 14 Dtool_qQJq3jti 234 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3241
836 14 Dtool_qQJqWOrH 0 7 841 3240 2336 14 Dtool_qQJqWOrH 930 // Filename: geomVertexWriter.I
// Created by: drose (25Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Default Constructor
// Access: Published
// Description: Constructs an invalid GeomVertexWriter. You must use
// the assignment operator to assign a valid
// GeomVertexWriter to this object before you can use
// it.
//////////////////////////////////////////////////////////////////// 1 14 current_thread 1 3107
837 14 Dtool_qQJq_1gf 0 7 841 3240 2336 14 Dtool_qQJq_1gf 930 // Filename: geomVertexWriter.I
// Created by: drose (25Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Default Constructor
// Access: Published
// Description: Constructs an invalid GeomVertexWriter. You must use
// the assignment operator to assign a valid
// GeomVertexWriter to this object before you can use
// it.
//////////////////////////////////////////////////////////////////// 0
838 14 Dtool_qQJqR3bG 0 6 842 3240 0 14 Dtool_qQJqR3bG 242 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 copy 1 3241
839 14 Dtool_qQJq1wqw 0 7 844 3159 1999 14 Dtool_qQJq1wqw 408 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_vertex_data
// Access: Published
// Description: Returns the vertex data object that the
// writer is processing. This may return NULL if the
// writer was constructed with just an array pointer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3241
840 14 Dtool_qQJq4pZu 0 7 845 3103 1847 14 Dtool_qQJq4pZu 325 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_array_data
// Access: Published
// Description: Returns the particular array object that the
// writer is currently processing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3241
841 14 Dtool_qQJqefIP 0 7 846 3110 1884 14 Dtool_qQJqefIP 523 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_array_handle
// Access: Published
// Description: Returns the write handle to the array object that the
// writer is currently processing. This low-level call
// should be used with caution; be careful with
// modifying the data in the handle out from under the
// GeomVertexWriter.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3241
842 14 Dtool_qQJqkglK 0 6 847 3038 0 14 Dtool_qQJqkglK 459 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_stride
// Access: Published
// Description: Returns the per-row stride (bytes between consecutive
// rows) of the underlying vertex array. This low-level
// information is normally not needed to use the
// GeomVertexWriter directly.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3241
843 14 Dtool_qQJqRIaa 0 7 848 3107 0 14 Dtool_qQJqRIaa 359 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_current_thread
// Access: Published
// Description: Returns the Thread pointer of the currently-executing
// thread, as passed to the constructor of this object.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3241
844 14 Dtool_qQJqnXgZ 0 6 849 3043 0 14 Dtool_qQJqnXgZ 613 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_column
// Access: Published
// Description: Sets up the writer to use the data type with the
// indicated name.
//
// This also resets the write number to the start row
// (the same value passed to a previous call to
// set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 name 1 3055
845 14 Dtool_qQJqAfCl 0 6 849 3043 0 14 Dtool_qQJqAfCl 617 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_column
// Access: Published
// Description: Sets up the writer to use the data type with the
// indicated name.
//
// This also resets the write row number to the start
// row (the same value passed to a previous call to
// set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 name 1 3037
846 14 Dtool_qQJq4bSL 0 6 849 3043 0 14 Dtool_qQJq4bSL 639 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_column
// Access: Published
// Description: Sets up the writer to use the nth data type of the
// GeomVertexFormat, numbering from 0.
//
// This also resets the write row number to the start
// row (the same value passed to a previous call to
// set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 6 column 1 3046
847 14 Dtool_qQJq5him 0 6 849 3043 0 14 Dtool_qQJq5him 639 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_column
// Access: Published
// Description: Sets up the writer to use the indicated column
// description on the given array.
//
// This also resets the current write row number to the
// start row (the same value passed to a previous call
// to set_row(), or 0 if set_row() was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3240 5 array 1 3046 6 column 1 3059
848 14 Dtool_qQJqh0DZ 0 4 850 3042 0 14 Dtool_qQJqh0DZ 272 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::clear
// Access: Published
// Description: Resets the GeomVertexWriter to the initial state.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3240
849 14 Dtool_qQJqTc4i 0 6 851 3043 0 14 Dtool_qQJqTc4i 597 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::reserve_num_rows
// Access: Published
// Description: This ensures that enough memory space for num_rows is
// allocated, so that you may add up to num_rows rows
// without causing a new memory allocation. This is a
// performance optimization only; it is especially
// useful when you know the number of rows you will be
// adding ahead of time.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 8 num_rows 1 3046
850 14 Dtool_qQJq7zCz 0 6 852 3043 0 14 Dtool_qQJq7zCz 364 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::has_column
// Access: Published
// Description: Returns true if a valid data type has been
// successfully set, or false if the data type does not
// exist.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3241
851 14 Dtool_qQJqImzD 0 6 853 3046 0 14 Dtool_qQJqImzD 323 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_array
// Access: Published
// Description: Returns the array index containing the data type that
// the writer is working on.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3241
852 14 Dtool_qQJqTOZs 0 6 854 3059 0 14 Dtool_qQJqTOZs 316 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_column
// Access: Published
// Description: Returns the description of the data type that the
// writer is working on.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3241
853 14 Dtool_qQJqX9mF 0 4 855 3042 0 14 Dtool_qQJqX9mF 655 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_row_unsafe
// Access: Published
// Description: Sets the start row to the indicated value, without
// internal checks. This is the same as set_row(), but
// it does not check for the possibility that the array
// has been reallocated internally for some reason; use
// only when you are confident that the array is
// unchanged and you really need every bit of available
// performance.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 3 row 1 3046
854 14 Dtool_qQJqk3SK 0 4 856 3042 0 14 Dtool_qQJqk3SK 530 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_row
// Access: Published
// Description: Sets the start row to the indicated value. The
// writer will begin writing to the indicated row;
// each subsequent set_data*() call will store the data
// into the subsequent row. If set_column() is called,
// the writer will return to this row.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 3 row 1 3046
855 14 Dtool_qQJqiCoy 0 6 857 3046 0 14 Dtool_qQJqiCoy 376 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_start_row
// Access: Published
// Description: Returns the row index at which the writer
// started. It will return to this row if you reset
// the current column.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3241
856 14 Dtool_qQJqDv2U 0 6 858 3046 0 14 Dtool_qQJqDv2U 368 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::get_write_row
// Access: Published
// Description: Returns the row index to which the data will be
// written at the next call to set_data*() or
// add_data*().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3241
857 14 Dtool_qQJqqN8y 0 6 859 3043 0 14 Dtool_qQJqqN8y 509 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::is_at_end
// Access: Published
// Description: Returns true if the writer is currently at the end of
// the list of vertices, false otherwise. If this is
// true, another call to set_data*() will result in a
// crash, but another call to add_data*() will add a new
// row.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3241
858 14 Dtool_qQJq8dnY 0 4 860 3042 0 14 Dtool_qQJq8dnY 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data1f
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3047
859 14 Dtool_qQJquO4g 0 4 861 3042 0 14 Dtool_qQJquO4g 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2f
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3215
860 14 Dtool_qQJqmeMu 0 4 861 3042 0 14 Dtool_qQJqmeMu 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2f
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3240 1 x 1 3047 1 y 1 3047
861 14 Dtool_qQJqH_73 0 4 862 3042 0 14 Dtool_qQJqH_73 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3f
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3218
862 14 Dtool_qQJq_DXP 0 4 862 3042 0 14 Dtool_qQJq_DXP 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3f
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3240 1 x 1 3047 1 y 1 3047 1 z 1 3047
863 14 Dtool_qQJqfh9O 0 4 863 3042 0 14 Dtool_qQJqfh9O 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4f
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3160
864 14 Dtool_qQJqKTZT 0 4 863 3042 0 14 Dtool_qQJqKTZT 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4f
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3240 1 x 1 3047 1 y 1 3047 1 z 1 3047 1 w 1 3047
865 14 Dtool_qQJqMHKv 0 4 864 3042 0 14 Dtool_qQJqMHKv 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data1d
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3221
866 14 Dtool_qQJqBWJf 0 4 865 3042 0 14 Dtool_qQJqBWJf 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2d
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3222
867 14 Dtool_qQJqzkV3 0 4 865 3042 0 14 Dtool_qQJqzkV3 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2d
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3240 1 x 1 3221 1 y 1 3221
868 14 Dtool_qQJqeZK2 0 4 866 3042 0 14 Dtool_qQJqeZK2 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3d
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3225
869 14 Dtool_qQJqEWjv 0 4 866 3042 0 14 Dtool_qQJqEWjv 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3d
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3240 1 x 1 3221 1 y 1 3221 1 z 1 3221
870 14 Dtool_qQJq2IMN 0 4 867 3042 0 14 Dtool_qQJq2IMN 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4d
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3228
871 14 Dtool_qQJqK68x 0 4 867 3042 0 14 Dtool_qQJqK68x 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4d
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3240 1 x 1 3221 1 y 1 3221 1 z 1 3221 1 w 1 3221
872 14 Dtool_qQJqALgB 0 4 868 3042 0 14 Dtool_qQJqALgB 428 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data1
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3047
873 14 Dtool_qQJqlmr8 0 4 869 3042 0 14 Dtool_qQJqlmr8 428 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3215
874 14 Dtool_qQJqoTF7 0 4 869 3042 0 14 Dtool_qQJqoTF7 428 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3240 1 x 1 3047 1 y 1 3047
875 14 Dtool_qQJq7WSe 0 4 870 3042 0 14 Dtool_qQJq7WSe 428 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3218
876 14 Dtool_qQJqkmAV 0 4 870 3042 0 14 Dtool_qQJqkmAV 428 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3240 1 x 1 3047 1 y 1 3047 1 z 1 3047
877 14 Dtool_qQJq4G9_ 0 4 871 3042 0 14 Dtool_qQJq4G9_ 428 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3160
878 14 Dtool_qQJqyjDS 0 4 871 3042 0 14 Dtool_qQJqyjDS 428 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3240 1 x 1 3047 1 y 1 3047 1 z 1 3047 1 w 1 3047
879 14 Dtool_qQJqWrrr 0 4 872 3042 0 14 Dtool_qQJqWrrr 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data1i
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3046
880 14 Dtool_qQJqLsiD 0 4 873 3042 0 14 Dtool_qQJqLsiD 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2i
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3231
881 14 Dtool_qQJqsRPt 0 4 873 3042 0 14 Dtool_qQJqsRPt 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data2i
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3240 1 a 1 3046 1 b 1 3046
882 14 Dtool_qQJqy8ka 0 4 874 3042 0 14 Dtool_qQJqy8ka 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3i
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3234
883 14 Dtool_qQJqRmzc 0 4 874 3042 0 14 Dtool_qQJqRmzc 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data3i
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3240 1 a 1 3046 1 b 1 3046 1 c 1 3046
884 14 Dtool_qQJqZNlx 0 4 875 3042 0 14 Dtool_qQJqZNlx 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4i
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3237
885 14 Dtool_qQJqdVco 0 4 875 3042 0 14 Dtool_qQJqdVco 429 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::set_data4i
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// It is an error for the write row to advance past
// the end of data.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3240 1 a 1 3046 1 b 1 3046 1 c 1 3046 1 d 1 3046
886 14 Dtool_qQJq5Qu1 0 4 876 3042 0 14 Dtool_qQJq5Qu1 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data1f
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3047
887 14 Dtool_qQJqsnA_ 0 4 877 3042 0 14 Dtool_qQJqsnA_ 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2f
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3215
888 14 Dtool_qQJqn5UL 0 4 877 3042 0 14 Dtool_qQJqn5UL 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2f
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3240 1 x 1 3047 1 y 1 3047
889 14 Dtool_qQJqEXCV 0 4 878 3042 0 14 Dtool_qQJqEXCV 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3f
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3218
890 14 Dtool_qQJq72es 0 4 878 3042 0 14 Dtool_qQJq72es 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3f
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3240 1 x 1 3047 1 y 1 3047 1 z 1 3047
891 14 Dtool_qQJqdGEs 0 4 879 3042 0 14 Dtool_qQJqdGEs 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4f
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3160
892 14 Dtool_qQJqNOgw 0 4 879 3042 0 14 Dtool_qQJqNOgw 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4f
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3240 1 x 1 3047 1 y 1 3047 1 z 1 3047 1 w 1 3047
893 14 Dtool_qQJqCaRM 0 4 880 3042 0 14 Dtool_qQJqCaRM 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data1d
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3221
894 14 Dtool_qQJq8cQ8 0 4 881 3042 0 14 Dtool_qQJq8cQ8 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2d
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3222
895 14 Dtool_qQJqwNcU 0 4 881 3042 0 14 Dtool_qQJqwNcU 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2d
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3240 1 x 1 3221 1 y 1 3221
896 14 Dtool_qQJqUsST 0 4 882 3042 0 14 Dtool_qQJqUsST 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3d
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3225
897 14 Dtool_qQJqODqM 0 4 882 3042 0 14 Dtool_qQJqODqM 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3d
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3240 1 x 1 3221 1 y 1 3221 1 z 1 3221
898 14 Dtool_qQJqt_Uq 0 4 883 3042 0 14 Dtool_qQJqt_Uq 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4d
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3228
899 14 Dtool_qQJqEFEP 0 4 883 3042 0 14 Dtool_qQJqEFEP 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4d
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3240 1 x 1 3221 1 y 1 3221 1 z 1 3221 1 w 1 3221
900 14 Dtool_qQJqHmpe 0 4 884 3042 0 14 Dtool_qQJqHmpe 449 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data1
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3047
901 14 Dtool_qQJqkZyZ 0 4 885 3042 0 14 Dtool_qQJqkZyZ 449 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3215
902 14 Dtool_qQJquGMY 0 4 885 3042 0 14 Dtool_qQJquGMY 449 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3240 1 x 1 3047 1 y 1 3047
903 14 Dtool_qQJqlJb7 0 4 886 3042 0 14 Dtool_qQJqlJb7 449 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3218
904 14 Dtool_qQJqr5Iy 0 4 886 3042 0 14 Dtool_qQJqr5Iy 449 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3240 1 x 1 3047 1 y 1 3047 1 z 1 3047
905 14 Dtool_qQJq75Dd 0 4 887 3042 0 14 Dtool_qQJq75Dd 449 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3160
906 14 Dtool_qQJq1OKv 0 4 887 3042 0 14 Dtool_qQJq1OKv 449 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3240 1 x 1 3047 1 y 1 3047 1 z 1 3047 1 w 1 3047
907 14 Dtool_qQJqMcyI 0 4 888 3042 0 14 Dtool_qQJqMcyI 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data1i
// Access: Published
// Description: Sets the write row to a particular 1-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3046
908 14 Dtool_qQJqQ5og 0 4 889 3042 0 14 Dtool_qQJqQ5og 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2i
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3231
909 14 Dtool_qQJqrwVK 0 4 889 3042 0 14 Dtool_qQJqrwVK 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data2i
// Access: Published
// Description: Sets the write row to a particular 2-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3240 1 a 1 3046 1 b 1 3046
910 14 Dtool_qQJq_pq3 0 4 890 3042 0 14 Dtool_qQJq_pq3 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3i
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3234
911 14 Dtool_qQJqWt75 0 4 890 3042 0 14 Dtool_qQJqWt75 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data3i
// Access: Published
// Description: Sets the write row to a particular 3-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3240 1 a 1 3046 1 b 1 3046 1 c 1 3046
912 14 Dtool_qQJqnasO 0 4 891 3042 0 14 Dtool_qQJqnasO 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4i
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3240 4 data 1 3237
913 14 Dtool_qQJqngjF 0 4 891 3042 0 14 Dtool_qQJqngjF 450 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::add_data4i
// Access: Published
// Description: Sets the write row to a particular 4-component
// value, and advances the write row.
//
// If the write row advances past the end of data,
// implicitly adds a new row to the data.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3240 1 a 1 3046 1 b 1 3046 1 c 1 3046 1 d 1 3046
914 14 Dtool_qQJqtLsy 0 4 892 3042 0 14 Dtool_qQJqtLsy 224 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexWriter::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3241 3 out 1 3044
915 14 Dtool_qQJq8imG 0 7 898 3243 2392 14 Dtool_qQJq8imG 326 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated array only.
//////////////////////////////////////////////////////////////////// 2 10 array_data 1 3103 14 current_thread 1 3107
916 14 Dtool_qQJq1co3 0 7 898 3243 2392 14 Dtool_qQJq1co3 326 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated array only.
//////////////////////////////////////////////////////////////////// 1 10 array_data 1 3103
917 14 Dtool_qQJqOzcs 0 7 898 3243 2392 14 Dtool_qQJqOzcs 326 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated array only.
//////////////////////////////////////////////////////////////////// 3 10 array_data 1 3103 6 column 1 3046 14 current_thread 1 3107
918 14 Dtool_qQJq9WgO 0 7 898 3243 2392 14 Dtool_qQJq9WgO 326 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated array only.
//////////////////////////////////////////////////////////////////// 2 10 array_data 1 3103 6 column 1 3046
919 14 Dtool_qQJq0Ah6 0 7 898 3243 2392 14 Dtool_qQJq0Ah6 423 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated data object. This flavor creates the
// rewriter specifically to process the named data type.
//////////////////////////////////////////////////////////////////// 3 11 vertex_data 1 3159 4 name 1 3055 14 current_thread 1 3107
920 14 Dtool_qQJq6OpO 0 7 898 3243 2392 14 Dtool_qQJq6OpO 423 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated data object. This flavor creates the
// rewriter specifically to process the named data type.
//////////////////////////////////////////////////////////////////// 2 11 vertex_data 1 3159 4 name 1 3055
921 14 Dtool_qQJqdx2Z 0 7 898 3243 2392 14 Dtool_qQJqdx2Z 327 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated data object.
//////////////////////////////////////////////////////////////////// 2 11 vertex_data 1 3159 14 current_thread 1 3107
922 14 Dtool_qQJqV_Yy 0 7 898 3243 2392 14 Dtool_qQJqV_Yy 327 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated data object.
//////////////////////////////////////////////////////////////////// 1 11 vertex_data 1 3159
923 14 Dtool_qQJqWJQ_ 0 7 898 3243 2392 14 Dtool_qQJqWJQ_ 423 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated data object. This flavor creates the
// rewriter specifically to process the named data type.
//////////////////////////////////////////////////////////////////// 3 11 vertex_data 1 3159 4 name 1 3037 14 current_thread 1 3107
924 14 Dtool_qQJqRgWT 0 7 898 3243 2392 14 Dtool_qQJqRgWT 423 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Constructor
// Access: Published
// Description: Constructs a new rewriter to process the vertices of
// the indicated data object. This flavor creates the
// rewriter specifically to process the named data type.
//////////////////////////////////////////////////////////////////// 2 11 vertex_data 1 3159 4 name 1 3037
925 14 Dtool_qQJqNKr7 0 7 898 3243 2392 14 Dtool_qQJqNKr7 236 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3244
926 14 Dtool_qQJqGqJ9 0 7 898 3243 2392 14 Dtool_qQJqGqJ9 938 // Filename: geomVertexRewriter.I
// Created by: drose (28Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Default Constructor
// Access: Published
// Description: Constructs an invalid GeomVertexRewriter. You must use
// the assignment operator to assign a valid
// GeomVertexRewriter to this object before you can use
// it.
//////////////////////////////////////////////////////////////////// 1 14 current_thread 1 3107
927 14 Dtool_qQJqy1ru 0 7 898 3243 2392 14 Dtool_qQJqy1ru 938 // Filename: geomVertexRewriter.I
// Created by: drose (28Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Default Constructor
// Access: Published
// Description: Constructs an invalid GeomVertexRewriter. You must use
// the assignment operator to assign a valid
// GeomVertexRewriter to this object before you can use
// it.
//////////////////////////////////////////////////////////////////// 0
928 14 Dtool_qQJq0WpY 0 6 899 3243 0 14 Dtool_qQJq0WpY 244 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3243 4 copy 1 3244
929 14 Dtool_qQJqwH9m 0 7 901 3159 1999 14 Dtool_qQJqwH9m 315 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_vertex_data
// Access: Published
// Description: Returns the vertex data object that the
// rewriter is processing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3244
930 14 Dtool_qQJqIWNZ 0 7 902 3103 1847 14 Dtool_qQJqIWNZ 329 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_array_data
// Access: Published
// Description: Returns the particular array object that the
// rewriter is currently processing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3244
931 14 Dtool_qQJqcvWQ 0 7 903 3110 1884 14 Dtool_qQJqcvWQ 529 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_array_handle
// Access: Published
// Description: Returns the write handle to the array object that the
// rewriter is currently processing. This low-level call
// should be used with caution; be careful with
// modifying the data in the handle out from under the
// GeomVertexRewriter.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3244
932 14 Dtool_qQJqT7B_ 0 6 904 3038 0 14 Dtool_qQJqT7B_ 463 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_stride
// Access: Published
// Description: Returns the per-row stride (bytes between consecutive
// rows) of the underlying vertex array. This low-level
// information is normally not needed to use the
// GeomVertexRewriter directly.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3244
933 14 Dtool_qQJqVgpy 0 7 905 3107 0 14 Dtool_qQJqVgpy 361 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_current_thread
// Access: Published
// Description: Returns the Thread pointer of the currently-executing
// thread, as passed to the constructor of this object.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3244
934 14 Dtool_qQJq9TSi 0 6 906 3043 0 14 Dtool_qQJq9TSi 653 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::set_column
// Access: Published
// Description: Sets up the rewriter to use the data type with the
// indicated name.
//
// This also resets both the read and write row
// numbers to the start row (the same value passed to
// a previous call to set_row(), or 0 if set_row()
// was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3243 4 name 1 3055
935 14 Dtool_qQJq5ySQ 0 6 906 3043 0 14 Dtool_qQJq5ySQ 653 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::set_column
// Access: Published
// Description: Sets up the rewriter to use the data type with the
// indicated name.
//
// This also resets both the read and write row
// numbers to the start row (the same value passed to
// a previous call to set_row(), or 0 if set_row()
// was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3243 4 name 1 3037
936 14 Dtool_qQJqXLoW 0 6 906 3043 0 14 Dtool_qQJqXLoW 675 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::set_column
// Access: Published
// Description: Sets up the rewriter to use the nth data type of the
// GeomVertexFormat, numbering from 0.
//
// This also resets both the read and write row
// numbers to the start row (the same value passed to
// a previous call to set_row(), or 0 if set_row()
// was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3243 6 column 1 3046
937 14 Dtool_qQJq46ti 0 6 906 3043 0 14 Dtool_qQJq46ti 667 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::set_column
// Access: Published
// Description: Sets up the rewriter to use the indicated column
// description on the given array.
//
// This also resets both the read and write row
// numbers to the start row (the same value passed to
// a previous call to set_row(), or 0 if set_row()
// was never called.)
//
// The return value is true if the data type is valid,
// false otherwise.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3243 5 array 1 3046 6 column 1 3059
938 14 Dtool_qQJqnxC8 0 4 907 3042 0 14 Dtool_qQJqnxC8 276 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::clear
// Access: Published
// Description: Resets the GeomVertexRewriter to the initial state.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3243
939 14 Dtool_qQJqboKu 0 6 908 3043 0 14 Dtool_qQJqboKu 366 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::has_column
// Access: Published
// Description: Returns true if a valid data type has been
// successfully set, or false if the data type does not
// exist.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3244
940 14 Dtool_qQJqvQZb 0 6 909 3046 0 14 Dtool_qQJqvQZb 327 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_array
// Access: Published
// Description: Returns the array index containing the data type that
// the rewriter is working on.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3244
941 14 Dtool_qQJqxqWN 0 6 910 3059 0 14 Dtool_qQJqxqWN 320 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_column
// Access: Published
// Description: Returns the description of the data type that the
// rewriter is working on.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3244
942 14 Dtool_qQJqDb_9 0 4 911 3042 0 14 Dtool_qQJqDb_9 657 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::set_row_unsafe
// Access: Published
// Description: Sets the start row to the indicated value, without
// internal checks. This is the same as set_row(), but
// it does not check for the possibility that the array
// has been reallocated internally for some reason; use
// only when you are confident that the array is
// unchanged and you really need every bit of available
// performance.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3243 3 row 1 3046
943 14 Dtool_qQJqYAs_ 0 4 912 3042 0 14 Dtool_qQJqYAs_ 379 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::set_row
// Access: Published
// Description: Sets the start, write, and write index to the
// indicated value. The rewriter will begin traversing
// from the given row.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3243 3 row 1 3046
944 14 Dtool_qQJqQVW0 0 6 913 3046 0 14 Dtool_qQJqQVW0 380 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::get_start_row
// Access: Published
// Description: Returns the row index at which the rewriter
// started. It will return to this row if you reset
// the current column.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3244
945 14 Dtool_qQJqVwyF 0 6 914 3043 0 14 Dtool_qQJqVwyF 348 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::is_at_end
// Access: Published
// Description: Returns true if the reader or writer is currently at
// the end of the list of vertices, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3244
946 14 Dtool_qQJqHXoX 0 4 915 3042 0 14 Dtool_qQJqHXoX 226 ////////////////////////////////////////////////////////////////////
// Function: GeomVertexRewriter::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3244 3 out 1 3044
947 14 Dtool_qQJqJzBL 0 6 894 3240 0 14 Dtool_qQJqJzBL 0 1 4 this 3 3243
948 14 Dtool_qQJq_ksb 0 6 895 3243 0 14 Dtool_qQJq_ksb 0 1 4 this 3 3240
949 14 Dtool_qQJqgjnL 0 6 896 3212 0 14 Dtool_qQJqgjnL 0 1 4 this 3 3243
950 14 Dtool_qQJqmisS 0 6 897 3243 0 14 Dtool_qQJqmisS 0 1 4 this 3 3212
951 14 Dtool_qQJqDKCe 0 7 928 3246 2413 14 Dtool_qQJqDKCe 446 ////////////////////////////////////////////////////////////////////
// Function: Texture::Constructor
// Access: Published
// Description: Constructs an empty texture. The default is to set
// up the texture as an empty 2-d texture; follow up
// with one of the variants of setup_texture() if this
// is not what you want.
//////////////////////////////////////////////////////////////////// 1 4 name 1 3037
952 14 Dtool_qQJqN0nZ 0 7 928 3246 2413 14 Dtool_qQJqN0nZ 446 ////////////////////////////////////////////////////////////////////
// Function: Texture::Constructor
// Access: Published
// Description: Constructs an empty texture. The default is to set
// up the texture as an empty 2-d texture; follow up
// with one of the variants of setup_texture() if this
// is not what you want.
//////////////////////////////////////////////////////////////////// 0
953 14 Dtool_qQJqdxyB 0 7 930 3246 2413 14 Dtool_qQJqdxyB 1236 // Filename: texture.I
// Created by: drose (05Feb99)
// Updated by: fperazzi, PandaSE(29Apr10) (added setup_2d_texture_array)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Texture::make_copy
// Access: Published
// Description: Returns a new copy of the same Texture. This copy,
// if applied to geometry, will be copied into texture
// as a separate texture from the original, so it will
// be duplicated in texture memory (and may be
// independently modified if desired).
//
// If the Texture is a VideoTexture, the resulting
// duplicate may be animated independently of the
// original.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
954 14 Dtool_qQJqadfr 0 4 931 3042 0 14 Dtool_qQJqadfr 316 ////////////////////////////////////////////////////////////////////
// Function: Texture::clear
// Access: Published, Virtual
// Description: Reinitializes the texture to its default, empty
// state (except for the name).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
955 14 Dtool_qQJqkdtv 0 4 932 3042 0 14 Dtool_qQJqkdtv 425 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_texture
// Access: Published
// Description: Sets the texture to the indicated type and
// dimensions, presumably in preparation for calling
// read() or load(), or set_ram_image() or
// modify_ram_image().
//////////////////////////////////////////////////////////////////// 7 4 this 3 3246 12 texture_type 1 3002 6 x_size 1 3046 6 y_size 1 3046 6 z_size 1 3046 14 component_type 1 3003 6 format 1 3004
956 14 Dtool_qQJq3hn1 0 4 933 3042 0 14 Dtool_qQJq3hn1 399 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_1d_texture
// Access: Published
// Description: Sets the texture as an empty 1-d texture with no
// dimensions. Follow up with read() or load() to fill
// the texture properties and image data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
957 14 Dtool_qQJqVMou 0 4 933 3042 0 14 Dtool_qQJqVMou 440 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_1d_texture
// Access: Published
// Description: Sets the texture as an empty 1-d texture with the
// specified dimensions and properties. Follow up with
// set_ram_image() or modify_ram_image() to fill the
// image data.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 6 x_size 1 3046 14 component_type 1 3003 6 format 1 3004
958 14 Dtool_qQJq_Wx1 0 4 934 3042 0 14 Dtool_qQJq_Wx1 399 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_2d_texture
// Access: Published
// Description: Sets the texture as an empty 2-d texture with no
// dimensions. Follow up with read() or load() to fill
// the texture properties and image data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
959 14 Dtool_qQJqHAEk 0 4 934 3042 0 14 Dtool_qQJqHAEk 440 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_2d_texture
// Access: Published
// Description: Sets the texture as an empty 2-d texture with the
// specified dimensions and properties. Follow up with
// set_ram_image() or modify_ram_image() to fill the
// image data.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3246 6 x_size 1 3046 6 y_size 1 3046 14 component_type 1 3003 6 format 1 3004
960 14 Dtool_qQJq31mJ 0 4 935 3042 0 14 Dtool_qQJq31mJ 515 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_3d_texture
// Access: Published
// Description: Sets the texture as an empty 3-d texture with no
// dimensions (though if you know the depth ahead
// of time, it saves a bit of reallocation later).
// Follow up with read() or load() to fill the texture
// properties and image data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 6 z_size 1 3046
961 14 Dtool_qQJqnH71 0 4 935 3042 0 14 Dtool_qQJqnH71 515 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_3d_texture
// Access: Published
// Description: Sets the texture as an empty 3-d texture with no
// dimensions (though if you know the depth ahead
// of time, it saves a bit of reallocation later).
// Follow up with read() or load() to fill the texture
// properties and image data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
962 14 Dtool_qQJqlbzO 0 4 935 3042 0 14 Dtool_qQJqlbzO 440 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_3d_texture
// Access: Published
// Description: Sets the texture as an empty 3-d texture with the
// specified dimensions and properties. Follow up with
// set_ram_image() or modify_ram_image() to fill the
// image data.
//////////////////////////////////////////////////////////////////// 6 4 this 3 3246 6 x_size 1 3046 6 y_size 1 3046 6 z_size 1 3046 14 component_type 1 3003 6 format 1 3004
963 14 Dtool_qQJqrJje 0 4 936 3042 0 14 Dtool_qQJqrJje 402 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_cube_map
// Access: Published
// Description: Sets the texture as an empty cube map texture with no
// dimensions. Follow up with read() or load() to fill
// the texture properties and image data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
964 14 Dtool_qQJqIwnH 0 4 936 3042 0 14 Dtool_qQJqIwnH 627 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_cube_map
// Access: Published
// Description: Sets the texture as an empty cube map texture with
// the specified dimensions and properties. Follow up
// with set_ram_image() or modify_ram_image() to fill
// the image data.
//
// Note that a cube map should always consist of six
// square images, so x_size and y_size will be the same,
// and z_size is always 6.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 4 size 1 3046 14 component_type 1 3003 6 format 1 3004
965 14 Dtool_qQJqDjNf 0 4 937 3042 0 14 Dtool_qQJqDjNf 527 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_2d_texture_array
// Access: Published
// Description: Sets the texture as an empty 2-d texture array with
// no dimensions (though if you know the depth ahead
// of time, it saves a bit of reallocation later).
// Follow up with read() or load() to fill the texture
// properties and image data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 6 z_size 1 3046
966 14 Dtool_qQJqOrCy 0 4 937 3042 0 14 Dtool_qQJqOrCy 527 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_2d_texture_array
// Access: Published
// Description: Sets the texture as an empty 2-d texture array with
// no dimensions (though if you know the depth ahead
// of time, it saves a bit of reallocation later).
// Follow up with read() or load() to fill the texture
// properties and image data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
967 14 Dtool_qQJq9eC1 0 4 937 3042 0 14 Dtool_qQJq9eC1 451 ////////////////////////////////////////////////////////////////////
// Function: Texture::setup_2d_texture_array
// Access: Published
// Description: Sets the texture as an empty 2-d texture array with the
// specified dimensions and properties. Follow up with
// set_ram_image() or modify_ram_image() to fill the
// image data.
//////////////////////////////////////////////////////////////////// 6 4 this 3 3246 6 x_size 1 3046 6 y_size 1 3046 6 z_size 1 3046 14 component_type 1 3003 6 format 1 3004
968 14 Dtool_qQJqAcPV 0 4 938 3042 0 14 Dtool_qQJqAcPV 601 ////////////////////////////////////////////////////////////////////
// Function: Texture::generate_normalization_cube_map
// Access: Published
// Description: Generates a special cube map image in the texture
// that can be used to apply bump mapping effects: for
// each texel in the cube map that is indexed by the 3-d
// texture coordinates (x, y, z), the resulting value is
// the normalized vector (x, y, z) (compressed from
// -1..1 into 0..1).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 4 size 1 3046
969 14 Dtool_qQJq8Ql8 0 4 939 3042 0 14 Dtool_qQJq8Ql8 534 ////////////////////////////////////////////////////////////////////
// Function: Texture::generate_alpha_scale_map
// Access: Published
// Description: Generates a special 256x1 1-d texture that can be
// used to apply an arbitrary alpha scale to objects by
// judicious use of texture matrix. The texture is a
// gradient, with an alpha of 0 on the left (U = 0), and
// 255 on the right (U = 1).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
970 14 Dtool_qQJqK0KH 0 6 940 3043 0 14 Dtool_qQJqK0KH 519 ////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Combine a 3-component image with a grayscale image
// to get a 4-component image.
//
// See the description of the full-parameter read()
// method for the meaning of the
// primary_file_num_channels and alpha_file_channel
// parameters.
//////////////////////////////////////////////////////////////////// 6 4 this 3 3246 8 fullpath 1 3249 14 alpha_fullpath 1 3249 25 primary_file_num_channels 1 3046 18 alpha_file_channel 1 3046 7 options 1 3252
971 14 Dtool_qQJqoATv 0 6 940 3043 0 14 Dtool_qQJqoATv 519 ////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Combine a 3-component image with a grayscale image
// to get a 4-component image.
//
// See the description of the full-parameter read()
// method for the meaning of the
// primary_file_num_channels and alpha_file_channel
// parameters.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3246 8 fullpath 1 3249 14 alpha_fullpath 1 3249 25 primary_file_num_channels 1 3046 18 alpha_file_channel 1 3046
972 14 Dtool_qQJqWYJ9 0 6 940 3043 0 14 Dtool_qQJqWYJ9 3902 ////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Reads the texture from the indicated filename. If
// primary_file_num_channels is not 0, it specifies the
// number of components to downgrade the image to if it
// is greater than this number.
//
// If the filename has the extension .txo, this
// implicitly reads a texture object instead of a
// filename (which replaces all of the texture
// properties). In this case, all the rest of the
// parameters are ignored, and the filename should not
// contain any hash marks; just the one named file will
// be read, since a single .txo file can contain all
// pages and mipmaps necessary to define a texture.
//
// If alpha_fullpath is not empty, it specifies the name
// of a file from which to retrieve the alpha. In this
// case, alpha_file_channel represents the numeric
// channel of this image file to use as the resulting
// texture's alpha channel; usually, this is 0 to
// indicate the grayscale combination of r, g, b; or it
// may be a one-based channel number, e.g. 1 for the red
// channel, 2 for the green channel, and so on.
//
// If read pages is false, then z indicates the page
// number into which this image will be assigned.
// Normally this is 0 for the first (or only) page of
// the texture. 3-D textures have one page for each
// level of depth, and cube map textures always have six
// pages.
//
// If read_pages is true, multiple images will be read
// at once, one for each page of a cube map or a 3-D
// texture. In this case, the filename should contain a
// sequence of one or more hash marks ("#") which will
// be filled in with the z value of each page,
// zero-based. In this case, the z parameter indicates
// the maximum z value that will be loaded, or 0 to load
// all filenames that exist.
//
// If read_mipmaps is false, then n indicates the mipmap
// level to which this image will be assigned. Normally
// this is 0 for the base texture image, but it is
// possible to load custom mipmap levels into the later
// images. After the base texture image is loaded (thus
// defining the size of the texture), you can call
// get_expected_num_mipmap_levels() to determine the
// maximum sensible value for n.
//
// If read_mipmaps is true, multiple images will be read
// as above, but this time the images represent the
// different mipmap levels of the texture image. In
// this case, the n parameter indicates the maximum n
// value that will be loaded, or 0 to load all filenames
// that exist (up to the expected number of mipmap
// levels).
//
// If both read_pages and read_mipmaps is true, then
// both sequences will be read; the filename should
// contain two sequences of hash marks, separated by
// some character such as a hyphen, underscore, or dot.
// The first hash mark sequence will be filled in with
// the mipmap level, while the second hash mark sequence
// will be the page index.
//
// This method implicitly sets keep_ram_image to false.
//////////////////////////////////////////////////////////////////// 11 4 this 3 3246 8 fullpath 1 3249 14 alpha_fullpath 1 3249 25 primary_file_num_channels 1 3046 18 alpha_file_channel 1 3046 1 z 1 3046 1 n 1 3046 10 read_pages 1 3043 12 read_mipmaps 1 3043 6 record 1 3255 7 options 1 3252
973 14 Dtool_qQJqnxxV 0 6 940 3043 0 14 Dtool_qQJqnxxV 3902 ////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Reads the texture from the indicated filename. If
// primary_file_num_channels is not 0, it specifies the
// number of components to downgrade the image to if it
// is greater than this number.
//
// If the filename has the extension .txo, this
// implicitly reads a texture object instead of a
// filename (which replaces all of the texture
// properties). In this case, all the rest of the
// parameters are ignored, and the filename should not
// contain any hash marks; just the one named file will
// be read, since a single .txo file can contain all
// pages and mipmaps necessary to define a texture.
//
// If alpha_fullpath is not empty, it specifies the name
// of a file from which to retrieve the alpha. In this
// case, alpha_file_channel represents the numeric
// channel of this image file to use as the resulting
// texture's alpha channel; usually, this is 0 to
// indicate the grayscale combination of r, g, b; or it
// may be a one-based channel number, e.g. 1 for the red
// channel, 2 for the green channel, and so on.
//
// If read pages is false, then z indicates the page
// number into which this image will be assigned.
// Normally this is 0 for the first (or only) page of
// the texture. 3-D textures have one page for each
// level of depth, and cube map textures always have six
// pages.
//
// If read_pages is true, multiple images will be read
// at once, one for each page of a cube map or a 3-D
// texture. In this case, the filename should contain a
// sequence of one or more hash marks ("#") which will
// be filled in with the z value of each page,
// zero-based. In this case, the z parameter indicates
// the maximum z value that will be loaded, or 0 to load
// all filenames that exist.
//
// If read_mipmaps is false, then n indicates the mipmap
// level to which this image will be assigned. Normally
// this is 0 for the base texture image, but it is
// possible to load custom mipmap levels into the later
// images. After the base texture image is loaded (thus
// defining the size of the texture), you can call
// get_expected_num_mipmap_levels() to determine the
// maximum sensible value for n.
//
// If read_mipmaps is true, multiple images will be read
// as above, but this time the images represent the
// different mipmap levels of the texture image. In
// this case, the n parameter indicates the maximum n
// value that will be loaded, or 0 to load all filenames
// that exist (up to the expected number of mipmap
// levels).
//
// If both read_pages and read_mipmaps is true, then
// both sequences will be read; the filename should
// contain two sequences of hash marks, separated by
// some character such as a hyphen, underscore, or dot.
// The first hash mark sequence will be filled in with
// the mipmap level, while the second hash mark sequence
// will be the page index.
//
// This method implicitly sets keep_ram_image to false.
//////////////////////////////////////////////////////////////////// 10 4 this 3 3246 8 fullpath 1 3249 14 alpha_fullpath 1 3249 25 primary_file_num_channels 1 3046 18 alpha_file_channel 1 3046 1 z 1 3046 1 n 1 3046 10 read_pages 1 3043 12 read_mipmaps 1 3043 6 record 1 3255
974 14 Dtool_qQJqf347 0 6 940 3043 0 14 Dtool_qQJqf347 3902 ////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Reads the texture from the indicated filename. If
// primary_file_num_channels is not 0, it specifies the
// number of components to downgrade the image to if it
// is greater than this number.
//
// If the filename has the extension .txo, this
// implicitly reads a texture object instead of a
// filename (which replaces all of the texture
// properties). In this case, all the rest of the
// parameters are ignored, and the filename should not
// contain any hash marks; just the one named file will
// be read, since a single .txo file can contain all
// pages and mipmaps necessary to define a texture.
//
// If alpha_fullpath is not empty, it specifies the name
// of a file from which to retrieve the alpha. In this
// case, alpha_file_channel represents the numeric
// channel of this image file to use as the resulting
// texture's alpha channel; usually, this is 0 to
// indicate the grayscale combination of r, g, b; or it
// may be a one-based channel number, e.g. 1 for the red
// channel, 2 for the green channel, and so on.
//
// If read pages is false, then z indicates the page
// number into which this image will be assigned.
// Normally this is 0 for the first (or only) page of
// the texture. 3-D textures have one page for each
// level of depth, and cube map textures always have six
// pages.
//
// If read_pages is true, multiple images will be read
// at once, one for each page of a cube map or a 3-D
// texture. In this case, the filename should contain a
// sequence of one or more hash marks ("#") which will
// be filled in with the z value of each page,
// zero-based. In this case, the z parameter indicates
// the maximum z value that will be loaded, or 0 to load
// all filenames that exist.
//
// If read_mipmaps is false, then n indicates the mipmap
// level to which this image will be assigned. Normally
// this is 0 for the base texture image, but it is
// possible to load custom mipmap levels into the later
// images. After the base texture image is loaded (thus
// defining the size of the texture), you can call
// get_expected_num_mipmap_levels() to determine the
// maximum sensible value for n.
//
// If read_mipmaps is true, multiple images will be read
// as above, but this time the images represent the
// different mipmap levels of the texture image. In
// this case, the n parameter indicates the maximum n
// value that will be loaded, or 0 to load all filenames
// that exist (up to the expected number of mipmap
// levels).
//
// If both read_pages and read_mipmaps is true, then
// both sequences will be read; the filename should
// contain two sequences of hash marks, separated by
// some character such as a hyphen, underscore, or dot.
// The first hash mark sequence will be filled in with
// the mipmap level, while the second hash mark sequence
// will be the page index.
//
// This method implicitly sets keep_ram_image to false.
//////////////////////////////////////////////////////////////////// 9 4 this 3 3246 8 fullpath 1 3249 14 alpha_fullpath 1 3249 25 primary_file_num_channels 1 3046 18 alpha_file_channel 1 3046 1 z 1 3046 1 n 1 3046 10 read_pages 1 3043 12 read_mipmaps 1 3043
975 14 Dtool_qQJqgNgF 0 6 940 3043 0 14 Dtool_qQJqgNgF 255 ////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Reads the named filename into the texture.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 8 fullpath 1 3249 7 options 1 3252
976 14 Dtool_qQJq3IDU 0 6 940 3043 0 14 Dtool_qQJq3IDU 255 ////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Reads the named filename into the texture.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 8 fullpath 1 3249
977 14 Dtool_qQJqf1WO 0 6 940 3043 0 14 Dtool_qQJqf1WO 524 ////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Reads a single file into a single page or mipmap
// level, or automatically reads a series of files into
// a series of pages and/or mipmap levels.
//
// See the description of the full-parameter read()
// method for the meaning of the various parameters.
//////////////////////////////////////////////////////////////////// 7 4 this 3 3246 8 fullpath 1 3249 1 z 1 3046 1 n 1 3046 10 read_pages 1 3043 12 read_mipmaps 1 3043 7 options 1 3252
978 14 Dtool_qQJq1czw 0 6 940 3043 0 14 Dtool_qQJq1czw 524 ////////////////////////////////////////////////////////////////////
// Function: Texture::read
// Access: Published
// Description: Reads a single file into a single page or mipmap
// level, or automatically reads a series of files into
// a series of pages and/or mipmap levels.
//
// See the description of the full-parameter read()
// method for the meaning of the various parameters.
//////////////////////////////////////////////////////////////////// 6 4 this 3 3246 8 fullpath 1 3249 1 z 1 3046 1 n 1 3046 10 read_pages 1 3043 12 read_mipmaps 1 3043
979 14 Dtool_qQJqHtFt 0 6 941 3043 0 14 Dtool_qQJqHtFt 255 ////////////////////////////////////////////////////////////////////
// Function: Texture::write
// Access: Published
// Description: Writes the texture to the named filename.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 8 fullpath 1 3249
980 14 Dtool_qQJqyISG 0 6 941 3043 0 14 Dtool_qQJqyISG 3125 ////////////////////////////////////////////////////////////////////
// Function: Texture::write
// Access: Published
// Description: Writes a single page or mipmap level to a single
// file, or automatically writes a series of pages
// and/or mipmap levels to a numbered series of files.
//
// If the filename ends in the extension .txo, this
// implicitly writes a Panda texture object (.txo)
// instead of an image file. In this case, the
// remaining parameters are ignored, and only one file
// is written, which will contain all of the pages and
// resident mipmap levels in the texture.
//
// If write_pages is false, then z indicates the page
// number to write. 3-D textures have one page number
// for each level of depth; cube maps have six pages
// number 0 through 5. Other kinds of textures have
// only one page, numbered 0. If there are multiple
// views, the range of z is increased; the total range
// is [0, get_num_pages()).
//
// If write_pages is true, then all pages of the texture
// will be written. In this case z is ignored, and the
// filename should contain a sequence of hash marks
// ("#") which will be filled in with the page index
// number.
//
// If write_mipmaps is false, then n indicates the
// mipmap level number to write. Normally, this is 0,
// for the base texture image. Normally, the mipmap
// levels of a texture are not available in RAM (they
// are generated automatically by the graphics card).
// However, if you have the mipmap levels available, for
// instance because you called
// generate_ram_mipmap_images() to generate them
// internally, or you called
// GraphicsEngine::extract_texture_data() to retrieve
// them from the graphics card, then you may write out
// each mipmap level with this parameter.
//
// If write_mipmaps is true, then all mipmap levels of
// the texture will be written. In this case n is
// ignored, and the filename should contain a sequence
// of hash marks ("#") which will be filled in with the
// mipmap level number.
//
// If both write_pages and write_mipmaps is true, then
// all pages and all mipmap levels will be written. In
// this case, the filename should contain two different
// sequences of hash marks, separated by a character
// such as a hyphen, underscore, or dot. The first hash
// mark sequence will be filled in with the mipmap
// level, while the second hash mark sequence will be
// the page index.
//////////////////////////////////////////////////////////////////// 6 4 this 3 3246 8 fullpath 1 3249 1 z 1 3046 1 n 1 3046 11 write_pages 1 3043 13 write_mipmaps 1 3043
981 14 Dtool_qQJqR4MB 0 4 941 3042 0 14 Dtool_qQJqR4MB 324 ////////////////////////////////////////////////////////////////////
// Function: Texture::write
// Access: Published
// Description: Not to be confused with write(Filename), this method
// simply describes the texture properties.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3247 3 out 1 3044 12 indent_level 1 3046
982 14 Dtool_qQJqaEMT 0 6 942 3043 0 14 Dtool_qQJqaEMT 692 ////////////////////////////////////////////////////////////////////
// Function: Texture::read_txo
// Access: Published
// Description: Reads the texture from a Panda texture object. This
// defines the complete Texture specification, including
// the image data as well as all texture properties.
// This only works if the txo file contains a static
// Texture image, as opposed to a subclass of Texture
// such as a movie texture.
//
// Pass a real filename if it is available, or empty
// string if it is not.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 2 in 1 3257 8 filename 1 3037
983 14 Dtool_qQJqXtbC 0 6 942 3043 0 14 Dtool_qQJqXtbC 692 ////////////////////////////////////////////////////////////////////
// Function: Texture::read_txo
// Access: Published
// Description: Reads the texture from a Panda texture object. This
// defines the complete Texture specification, including
// the image data as well as all texture properties.
// This only works if the txo file contains a static
// Texture image, as opposed to a subclass of Texture
// such as a movie texture.
//
// Pass a real filename if it is available, or empty
// string if it is not.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 2 in 1 3257
984 14 Dtool_qQJqzerW 0 7 943 3246 2413 14 Dtool_qQJqzerW 621 ////////////////////////////////////////////////////////////////////
// Function: Texture::make_from_txo
// Access: Published, Static
// Description: Constructs a new Texture object from the txo file.
// This is similar to Texture::read_txo(), but it
// constructs and returns a new object, which allows it
// to return a subclass of Texture (for instance, a
// movie texture).
//
// Pass a real filename if it is available, or empty
// string if it is not.
//////////////////////////////////////////////////////////////////// 2 2 in 1 3257 8 filename 1 3037
985 14 Dtool_qQJqO0E1 0 7 943 3246 2413 14 Dtool_qQJqO0E1 621 ////////////////////////////////////////////////////////////////////
// Function: Texture::make_from_txo
// Access: Published, Static
// Description: Constructs a new Texture object from the txo file.
// This is similar to Texture::read_txo(), but it
// constructs and returns a new object, which allows it
// to return a subclass of Texture (for instance, a
// movie texture).
//
// Pass a real filename if it is available, or empty
// string if it is not.
//////////////////////////////////////////////////////////////////// 1 2 in 1 3257
986 14 Dtool_qQJq9lbk 0 6 944 3043 0 14 Dtool_qQJq9lbk 463 ////////////////////////////////////////////////////////////////////
// Function: Texture::write_txo
// Access: Published
// Description: Writes the texture to a Panda texture object. This
// defines the complete Texture specification, including
// the image data as well as all texture properties.
//
// The filename is just for reference.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3247 3 out 1 3044 8 filename 1 3037
987 14 Dtool_qQJqdBCU 0 6 944 3043 0 14 Dtool_qQJqdBCU 463 ////////////////////////////////////////////////////////////////////
// Function: Texture::write_txo
// Access: Published
// Description: Writes the texture to a Panda texture object. This
// defines the complete Texture specification, including
// the image data as well as all texture properties.
//
// The filename is just for reference.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 3 out 1 3044
988 14 Dtool_qQJqDJc5 0 6 945 3043 0 14 Dtool_qQJqDJc5 674 ////////////////////////////////////////////////////////////////////
// Function: Texture::read_dds
// Access: Published
// Description: Reads the texture from a DDS file object. This is a
// Microsoft-defined file format; it is similar in
// principle to a txo object, in that it is designed to
// contain the texture image in a form as similar as
// possible to its runtime image, and it can contain
// mipmaps, pre-compressed textures, and so on.
//
// As with read_txo, the filename is just for reference.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 2 in 1 3257 8 filename 1 3037 11 header_only 1 3043
989 14 Dtool_qQJqeulj 0 6 945 3043 0 14 Dtool_qQJqeulj 674 ////////////////////////////////////////////////////////////////////
// Function: Texture::read_dds
// Access: Published
// Description: Reads the texture from a DDS file object. This is a
// Microsoft-defined file format; it is similar in
// principle to a txo object, in that it is designed to
// contain the texture image in a form as similar as
// possible to its runtime image, and it can contain
// mipmaps, pre-compressed textures, and so on.
//
// As with read_txo, the filename is just for reference.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 2 in 1 3257 8 filename 1 3037
990 14 Dtool_qQJqTL1S 0 6 945 3043 0 14 Dtool_qQJqTL1S 674 ////////////////////////////////////////////////////////////////////
// Function: Texture::read_dds
// Access: Published
// Description: Reads the texture from a DDS file object. This is a
// Microsoft-defined file format; it is similar in
// principle to a txo object, in that it is designed to
// contain the texture image in a form as similar as
// possible to its runtime image, and it can contain
// mipmaps, pre-compressed textures, and so on.
//
// As with read_txo, the filename is just for reference.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 2 in 1 3257
991 14 Dtool_qQJq9q5b 0 6 946 3043 0 14 Dtool_qQJq9q5b 259 ////////////////////////////////////////////////////////////////////
// Function: Texture::load
// Access: Published
// Description: Replaces the texture with the indicated image.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 8 pnmimage 1 3259 7 options 1 3252
992 14 Dtool_qQJqBHdq 0 6 946 3043 0 14 Dtool_qQJqBHdq 259 ////////////////////////////////////////////////////////////////////
// Function: Texture::load
// Access: Published
// Description: Replaces the texture with the indicated image.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 8 pnmimage 1 3259
993 14 Dtool_qQJq5L4C 0 6 946 3043 0 14 Dtool_qQJq5L4C 305 ////////////////////////////////////////////////////////////////////
// Function: Texture::load
// Access: Published
// Description: Stores the indicated image in the given page and
// mipmap level. See read().
//////////////////////////////////////////////////////////////////// 5 4 this 3 3246 8 pnmimage 1 3259 1 z 1 3046 1 n 1 3046 7 options 1 3252
994 14 Dtool_qQJqQG98 0 6 946 3043 0 14 Dtool_qQJqQG98 305 ////////////////////////////////////////////////////////////////////
// Function: Texture::load
// Access: Published
// Description: Stores the indicated image in the given page and
// mipmap level. See read().
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 8 pnmimage 1 3259 1 z 1 3046 1 n 1 3046
995 14 Dtool_qQJqu96Y 0 6 946 3043 0 14 Dtool_qQJqu96Y 259 ////////////////////////////////////////////////////////////////////
// Function: Texture::load
// Access: Published
// Description: Replaces the texture with the indicated image.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 3 pfm 1 3262 7 options 1 3252
996 14 Dtool_qQJqtQal 0 6 946 3043 0 14 Dtool_qQJqtQal 259 ////////////////////////////////////////////////////////////////////
// Function: Texture::load
// Access: Published
// Description: Replaces the texture with the indicated image.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 3 pfm 1 3262
997 14 Dtool_qQJqIkGs 0 6 946 3043 0 14 Dtool_qQJqIkGs 305 ////////////////////////////////////////////////////////////////////
// Function: Texture::load
// Access: Published
// Description: Stores the indicated image in the given page and
// mipmap level. See read().
//////////////////////////////////////////////////////////////////// 5 4 this 3 3246 3 pfm 1 3262 1 z 1 3046 1 n 1 3046 7 options 1 3252
998 14 Dtool_qQJqQS_d 0 6 946 3043 0 14 Dtool_qQJqQS_d 305 ////////////////////////////////////////////////////////////////////
// Function: Texture::load
// Access: Published
// Description: Stores the indicated image in the given page and
// mipmap level. See read().
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 3 pfm 1 3262 1 z 1 3046 1 n 1 3046
999 14 Dtool_qQJqfuOO 0 6 947 3043 0 14 Dtool_qQJqfuOO 306 ////////////////////////////////////////////////////////////////////
// Function: Texture::store
// Access: Published
// Description: Saves the texture to the indicated PNMImage, but does
// not write it to disk.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 8 pnmimage 1 3265
1000 14 Dtool_qQJqGqUB 0 6 947 3043 0 14 Dtool_qQJqGqUB 304 ////////////////////////////////////////////////////////////////////
// Function: Texture::store
// Access: Published
// Description: Saves the indicated page and mipmap level of the
// texture to the PNMImage.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3247 8 pnmimage 1 3265 1 z 1 3046 1 n 1 3046
1001 14 Dtool_qQJqYUfX 0 6 947 3043 0 14 Dtool_qQJqYUfX 305 ////////////////////////////////////////////////////////////////////
// Function: Texture::store
// Access: Published
// Description: Saves the texture to the indicated PfmFile, but does
// not write it to disk.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 3 pfm 1 3266
1002 14 Dtool_qQJqMVCz 0 6 947 3043 0 14 Dtool_qQJqMVCz 303 ////////////////////////////////////////////////////////////////////
// Function: Texture::store
// Access: Published
// Description: Saves the indicated page and mipmap level of the
// texture to the PfmFile.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3247 3 pfm 1 3266 1 z 1 3046 1 n 1 3046
1003 14 Dtool_qQJqCVZW 0 6 948 3043 0 14 Dtool_qQJqCVZW 532 ////////////////////////////////////////////////////////////////////
// Function: Texture::reload
// Access: Published
// Description: Re-reads the Texture from its disk file. Useful when
// you know the image on disk has recently changed, and
// you want to update the Texture image.
//
// Returns true on success, false on failure (in which
// case, the Texture may or may not still be valid).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1004 14 Dtool_qQJqJ8Qn 0 7 949 3246 2413 14 Dtool_qQJqJ8Qn 444 ////////////////////////////////////////////////////////////////////
// Function: Texture::load_related
// Access: Published
// Description: Loads a texture whose filename is derived by
// concatenating a suffix to the filename of this
// texture. May return NULL, for example, if this
// texture doesn't have a filename.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 6 suffix 1 3055
1005 14 Dtool_qQJqW7Cs 0 6 950 3043 0 14 Dtool_qQJqW7Cs 318 ////////////////////////////////////////////////////////////////////
// Function: Texture::has_filename
// Access: Published
// Description: Returns true if the filename has been set and
// is available. See set_filename().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1006 14 Dtool_qQJqMiw2 0 6 951 3249 0 14 Dtool_qQJqMiw2 371 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_filename
// Access: Published
// Description: Returns the filename that has been set. This is the
// name of the file as it was requested. Also see
// get_fullpath().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1007 14 Dtool_qQJqc1WY 0 6 952 3043 0 14 Dtool_qQJqc1WY 336 ////////////////////////////////////////////////////////////////////
// Function: Texture::has_alpha_filename
// Access: Published
// Description: Returns true if the alpha_filename has been set and
// is available. See set_alpha_filename().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1008 14 Dtool_qQJqBYEj 0 6 953 3249 0 14 Dtool_qQJqBYEj 475 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_alpha_filename
// Access: Published
// Description: Returns the alpha_filename that has been set. If
// this is set, it represents the name of the alpha
// component, which is stored in a separate file. See
// also get_filename(), and get_alpha_fullpath().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1009 14 Dtool_qQJqestn 0 6 954 3043 0 14 Dtool_qQJqestn 318 ////////////////////////////////////////////////////////////////////
// Function: Texture::has_fullpath
// Access: Published
// Description: Returns true if the fullpath has been set and
// is available. See set_fullpath().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1010 14 Dtool_qQJqEHay 0 6 955 3249 0 14 Dtool_qQJqEHay 376 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_fullpath
// Access: Published
// Description: Returns the fullpath that has been set. This is the
// full path to the file as it was found along the
// texture search path.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1011 14 Dtool_qQJqQ97B 0 6 956 3043 0 14 Dtool_qQJqQ97B 336 ////////////////////////////////////////////////////////////////////
// Function: Texture::has_alpha_fullpath
// Access: Published
// Description: Returns true if the alpha_fullpath has been set and
// is available. See set_alpha_fullpath().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1012 14 Dtool_qQJqKSqM 0 6 957 3249 0 14 Dtool_qQJqKSqM 430 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_alpha_fullpath
// Access: Published
// Description:
// Returns the alpha_fullpath that has been set. This
// is the full path to the alpha part of the image file
// as it was found along the texture search path.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1013 14 Dtool_qQJqp9VG 0 6 958 3046 0 14 Dtool_qQJqp9VG 268 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_x_size
// Access: Published
// Description: Returns the width of the texture image in texels.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1014 14 Dtool_qQJqA91J 0 6 959 3046 0 14 Dtool_qQJqA91J 321 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_y_size
// Access: Published
// Description: Returns the height of the texture image in texels.
// For a 1-d texture, this will be 1.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1015 14 Dtool_qQJqf_VN 0 6 960 3046 0 14 Dtool_qQJqf_VN 392 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_z_size
// Access: Published
// Description: Returns the depth of the texture image in texels.
// For a 1-d texture or 2-d texture, this will be 1.
// For a cube map texture, this will be 6.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1016 14 Dtool_qQJq4jq1 0 6 961 3046 0 14 Dtool_qQJq4jq1 758 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_num_views
// Access: Published
// Description: Returns the number of "views" in the texture. A view
// is a completely separate image stored within the
// Texture object. Most textures have only one view,
// but a stereo texture, for instance, may have two
// views, a left and a right image. Other uses for
// multiple views are not yet defined.
//
// If this value is greater than one, the additional
// views are accessed as additional pages beyond
// get_z_size().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1017 14 Dtool_qQJqSk4O 0 6 962 3046 0 14 Dtool_qQJqSk4O 604 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_num_pages
// Access: Published
// Description: Returns the total number of pages in the texture.
// Each "page" is a 2-d texture image within the larger
// image--a face of a cube map, or a level of a 3-d
// texture. Normally, get_num_pages() is the same as
// get_z_size(). However, in a multiview texture, this
// returns get_z_size() * get_num_views().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1018 14 Dtool_qQJqWv_P 0 6 963 3046 0 14 Dtool_qQJqWv_P 456 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_num_components
// Access: Published
// Description: Returns the number of color components for each texel
// of the texture image. This is 3 for an rgb texture
// or 4 for an rgba texture; it may also be 1 or 2 for a
// grayscale texture.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1019 14 Dtool_qQJqqXBq 0 6 964 3046 0 14 Dtool_qQJqqXBq 390 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_component_width
// Access: Published
// Description: Returns the number of bytes stored for each color
// component of a texel. Typically this is 1, but it
// may be 2 for 16-bit texels.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1020 14 Dtool_qQJqvw9T 0 6 965 3002 0 14 Dtool_qQJqvw9T 275 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_texture_type
// Access: Published
// Description: Returns the overall interpretation of the texture.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1021 14 Dtool_qQJqN7UC 0 6 966 3004 0 14 Dtool_qQJqN7UC 392 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_format
// Access: Published
// Description: Returns the format of the texture, which represents
// both the semantic meaning of the texels and, to some
// extent, their storage information.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1022 14 Dtool_qQJqrqBI 0 6 967 3003 0 14 Dtool_qQJqrqBI 312 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_component_type
// Access: Published
// Description: Returns the numeric interpretation of each component
// of the texture.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1023 14 Dtool_qQJqkX83 0 4 968 3042 0 14 Dtool_qQJqkX83 218 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_wrap_u
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 4 wrap 1 3006
1024 14 Dtool_qQJqSp8_ 0 4 969 3042 0 14 Dtool_qQJqSp8_ 218 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_wrap_v
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 4 wrap 1 3006
1025 14 Dtool_qQJqBo8F 0 4 970 3042 0 14 Dtool_qQJqBo8F 270 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_wrap_w
// Access: Published
// Description: The W wrap direction is only used for 3-d textures.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 4 wrap 1 3006
1026 14 Dtool_qQJqmEu7 0 4 971 3042 0 14 Dtool_qQJqmEu7 221 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_minfilter
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 6 filter 1 3005
1027 14 Dtool_qQJq8Kn6 0 4 972 3042 0 14 Dtool_qQJq8Kn6 221 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_magfilter
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 6 filter 1 3005
1028 14 Dtool_qQJqGRw3 0 4 973 3042 0 14 Dtool_qQJqGRw3 733 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_anisotropic_degree
// Access: Published
// Description: Specifies the level of anisotropic filtering to apply
// to the texture. Set this 0 to indicate the default
// value, which is specified in the
// texture-anisotropic-degree config variable.
//
// To explicitly disable anisotropic filtering, set this
// value to 1. To explicitly enable anisotropic
// filtering, set it to a value higher than 1; larger
// numbers indicate greater degrees of filtering.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 18 anisotropic_degree 1 3046
1029 14 Dtool_qQJq2r4a 0 4 974 3042 0 14 Dtool_qQJq2r4a 446 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_border_color
// Access: Published
// Description: Specifies the solid color of the texture's border.
// Some OpenGL implementations use a border for tiling
// textures; in Panda, it is only used for specifying
// the clamp color.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 5 color 1 3160
1030 14 Dtool_qQJqHB8q 0 4 975 3042 0 14 Dtool_qQJqHB8q 1037 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_compression
// Access: Published
// Description: Requests that this particular Texture be compressed
// when it is loaded into texture memory.
//
// This refers to the internal compression of the
// texture image within texture memory; it is not
// related to jpeg or png compression, which are disk
// file compression formats. The actual disk file that
// generated this texture may be stored in a compressed
// or uncompressed format supported by Panda; it will be
// decompressed on load, and then recompressed by the
// graphics API if this parameter is not CM_off.
//
// If the GSG does not support this texture compression
// mode, the texture will silently be loaded
// uncompressed.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 11 compression 1 3007
1031 14 Dtool_qQJqGh2R 0 4 976 3042 0 14 Dtool_qQJqGh2R 905 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_render_to_texture
// Access: Published
// Description: Sets a flag on the texture that indicates whether the
// texture is intended to be used as a direct-render
// target, by binding a framebuffer to a texture and
// rendering directly into the texture.
//
// This controls some low-level choices made about the
// texture object itself. For instance, compressed
// textures are disallowed when this flag is set true.
//
// Normally, a user should not need to set this flag
// directly; it is set automatically by the low-level
// display code when a texture is bound to a
// framebuffer.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 17 render_to_texture 1 3043
1032 14 Dtool_qQJqDAco 0 6 977 3006 0 14 Dtool_qQJqDAco 292 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_wrap_u
// Access: Published
// Description: Returns the wrap mode of the texture in the U
// direction.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1033 14 Dtool_qQJqVHcv 0 6 978 3006 0 14 Dtool_qQJqVHcv 292 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_wrap_v
// Access: Published
// Description: Returns the wrap mode of the texture in the V
// direction.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1034 14 Dtool_qQJqnFc2 0 6 979 3006 0 14 Dtool_qQJqnFc2 355 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_wrap_w
// Access: Published
// Description: Returns the wrap mode of the texture in the W
// direction. This is the depth direction of 3-d
// textures.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1035 14 Dtool_qQJqmseL 0 6 980 3005 0 14 Dtool_qQJqmseL 487 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_minfilter
// Access: Published
// Description: Returns the filter mode of the texture for
// minification. If this is one of the mipmap
// constants, then the texture requires mipmaps. This
// may return FT_default; see also
// get_effective_minfilter().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1036 14 Dtool_qQJq8eYK 0 6 981 3005 0 14 Dtool_qQJq8eYK 435 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_magfilter
// Access: Published
// Description: Returns the filter mode of the texture for
// magnification. The mipmap constants are invalid
// here. This may return FT_default; see also
// get_effective_minfilter().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1037 14 Dtool_qQJq_kUZ 0 6 982 3005 0 14 Dtool_qQJq_kUZ 465 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_effective_minfilter
// Access: Published
// Description: Returns the filter mode of the texture for
// minification, with special treatment for FT_default.
// This will normally not return FT_default, unless
// there is an error in the config file.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1038 14 Dtool_qQJqGq5U 0 6 983 3005 0 14 Dtool_qQJqGq5U 466 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_effective_magfilter
// Access: Published
// Description: Returns the filter mode of the texture for
// magnification, with special treatment for FT_default.
// This will normally not return FT_default, unless
// there is an error in the config file.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1039 14 Dtool_qQJqRCMk 0 6 984 3046 0 14 Dtool_qQJqRCMk 463 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_anisotropic_degree
// Access: Published
// Description: Returns the degree of anisotropic filtering that
// should be applied to the texture. This value may
// return 0, indicating the default value; see also
// get_effective_anisotropic_degree.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1040 14 Dtool_qQJqYHP8 0 6 985 3046 0 14 Dtool_qQJqYHP8 459 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_effective_anisotropic_degree
// Access: Published
// Description: Returns the degree of anisotropic filtering that
// should be applied to the texture. This value will
// normally not return 0, unless there is an error in
// the config file.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1041 14 Dtool_qQJqrLZH 0 7 986 3180 0 14 Dtool_qQJqrLZH 444 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_border_color
// Access: Published
// Description: Returns the solid color of the texture's border.
// Some OpenGL implementations use a border for tiling
// textures; in Panda, it is only used for specifying
// the clamp color.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1042 14 Dtool_qQJqekiK 0 6 987 3007 0 14 Dtool_qQJqekiK 765 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_compression
// Access: Published
// Description: Returns the compression mode requested for this
// particular texture, or CM_off if the texture is not
// to be compressed.
//
// If a value other than CM_off is returned, this is
// not a guarantee that the texture is actually
// successfully compressed on the GSG. It may be that
// the GSG does not support the requested compression
// mode, in which case the texture may actually be
// stored uncompressed in texture memory.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1043 14 Dtool_qQJqnJ0_ 0 6 988 3043 0 14 Dtool_qQJqnJ0_ 764 ////////////////////////////////////////////////////////////////////
// Function: Texture::has_compression
// Access: Published
// Description: Returns true if the texture indicates it wants to be
// compressed, either with CM_on or higher, or
// CM_default and compressed-textures is true.
//
// If true returned, this is not a guarantee that the
// texture is actually successfully compressed on the
// GSG. It may be that the GSG does not support the
// requested compression mode, in which case the texture
// may actually be stored uncompressed in texture
// memory.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1044 14 Dtool_qQJqh_qK 0 6 989 3043 0 14 Dtool_qQJqh_qK 701 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_render_to_texture
// Access: Published
// Description: Returns a flag on the texture that indicates whether the
// texture is intended to be used as a direct-render
// target, by binding a framebuffer to a texture and
// rendering directly into the texture.
//
// Normally, a user should not need to set this flag
// directly; it is set automatically by the low-level
// display code when a texture is bound to a
// framebuffer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1045 14 Dtool_qQJqYXSi 0 6 990 3043 0 14 Dtool_qQJqYXSi 355 ////////////////////////////////////////////////////////////////////
// Function: Texture::uses_mipmaps
// Access: Public
// Description: Returns true if the minfilter settings on this
// texture indicate the use of mipmapping, false
// otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1046 14 Dtool_qQJqLupG 0 4 991 3042 0 14 Dtool_qQJqLupG 535 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_quality_level
// Access: Public
// Description: Sets a hint to the renderer about the desired
// performance / quality tradeoff for this particular
// texture. This is most useful for the tinydisplay
// software renderer; for normal, hardware-accelerated
// renderers, this may have little or no effect.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 13 quality_level 1 3008
1047 14 Dtool_qQJqr4ct 0 6 992 3008 0 14 Dtool_qQJqr4ct 392 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_quality_level
// Access: Public
// Description: Returns the current quality_level hint. See
// set_quality_level(). This value may return
// QL_default; see get_effective_quality_level().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1048 14 Dtool_qQJqycUh 0 6 993 3008 0 14 Dtool_qQJqycUh 519 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_effective_quality_level
// Access: Public
// Description: Returns the current quality_level hint, or the global
// default quality_level if this texture doesn't specify
// a quality level. This value will not normally return
// QL_default (unless there is an error in the config
// file)
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1049 14 Dtool_qQJq9PeO 0 6 994 3046 0 14 Dtool_qQJq9PeO 536 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_num_mipmap_levels
// Access: Published
// Description: Returns the number of mipmap levels that should be
// defined for this texture, given the texture's size.
//
// Note that this returns a number appropriate for
// mipmapping, even if the texture does not currently
// have mipmapping enabled.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1050 14 Dtool_qQJq_Vjv 0 6 995 3046 0 14 Dtool_qQJq_Vjv 338 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_mipmap_x_size
// Access: Published
// Description: Returns the x_size that the nth mipmap level should
// have, based on the texture's size.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1051 14 Dtool_qQJqAwmv 0 6 996 3046 0 14 Dtool_qQJqAwmv 338 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_mipmap_y_size
// Access: Published
// Description: Returns the y_size that the nth mipmap level should
// have, based on the texture's size.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1052 14 Dtool_qQJqScov 0 6 997 3046 0 14 Dtool_qQJqScov 338 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_mipmap_z_size
// Access: Published
// Description: Returns the z_size that the nth mipmap level should
// have, based on the texture's size.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1053 14 Dtool_qQJq6Oji 0 6 998 3046 0 14 Dtool_qQJq6Oji 566 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_mipmap_num_pages
// Access: Published
// Description: Returns the total number of pages that the nth mipmap
// level should have, based on the texture's size. This
// is usually the same as get_expected_mipmap_z_size(),
// except for a multiview texture, in which case it is
// get_expected_mipmap_z_size() * get_num_views().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1054 14 Dtool_qQJq6jZY 0 6 999 3043 0 14 Dtool_qQJq6jZY 1616 ////////////////////////////////////////////////////////////////////
// Function: Texture::has_ram_image
// Access: Published
// Description: Returns true if the Texture has its image contents
// available in main RAM, false if it exists only in
// texture memory or in the prepared GSG context.
//
// Note that this has nothing to do with whether
// get_ram_image() will fail or not. Even if
// has_ram_image() returns false, get_ram_image() may
// still return a valid RAM image, because
// get_ram_image() will automatically load the texture
// from disk if necessary. The only thing
// has_ram_image() tells you is whether the texture is
// available right now without hitting the disk first.
//
// Note also that if an application uses only one GSG,
// it may appear that has_ram_image() returns true if
// the texture has not yet been loaded by the GSG, but
// this correlation is not true in general and should
// not be depended on. Specifically, if an application
// ever uses multiple GSG's in its lifetime (for
// instance, by opening more than one window, or by
// closing its window and opening another one later),
// then has_ram_image() may well return false on
// textures that have never been loaded on the current
// GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1055 14 Dtool_qQJqFOOW 0 6 1000 3043 0 14 Dtool_qQJqFOOW 401 ////////////////////////////////////////////////////////////////////
// Function: Texture::has_uncompressed_ram_image
// Access: Published
// Description: Returns true if the Texture has its image contents
// available in main RAM and is uncompressed, false
// otherwise. See has_ram_image().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1056 14 Dtool_qQJqbDJE 0 6 1001 3043 0 14 Dtool_qQJqbDJE 578 ////////////////////////////////////////////////////////////////////
// Function: Texture::might_have_ram_image
// Access: Published
// Description: Returns true if the texture's image contents are
// currently available in main RAM, or there is reason
// to believe it can be loaded on demand. That is, this
// function returns a "best guess" as to whether
// get_ram_image() will succeed without actually calling
// it first.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1057 14 Dtool_qQJqxRV8 0 6 1002 3038 0 14 Dtool_qQJqxRV8 388 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_image_size
// Access: Published
// Description: Returns the total number of bytes used by the
// in-memory image, across all pages and views, or 0 if
// there is no in-memory image.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1058 14 Dtool_qQJqUCh5 0 6 1003 3038 0 14 Dtool_qQJqUCh5 467 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_view_size
// Access: Published
// Description: Returns the number of bytes used by the in-memory
// image per view, or 0 if there is no in-memory image.
// Since each view is a stack of z_size pages, this is
// get_z_size() * get_ram_page_size().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1059 14 Dtool_qQJqyOvS 0 6 1004 3038 0 14 Dtool_qQJqyOvS 647 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_page_size
// Access: Published
// Description: Returns the number of bytes used by the in-memory
// image per page, or 0 if there is no in-memory image.
//
// For a non-compressed texture, this is the same as
// get_expected_ram_page_size(). For a compressed
// texture, this may be a smaller value. (We do assume
// that all pages will be the same size on a compressed
// texture).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1060 14 Dtool_qQJqR2lC 0 6 1005 3038 0 14 Dtool_qQJqR2lC 378 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_ram_image_size
// Access: Published
// Description: Returns the number of bytes that *ought* to be used
// by the in-memory image, based on the texture
// parameters.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1061 14 Dtool_qQJqCoXN 0 6 1006 3038 0 14 Dtool_qQJqCoXN 447 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_ram_page_size
// Access: Published
// Description: Returns the number of bytes that should be used per
// each Z page of the 3-d texture. For a 2-d or 1-d
// texture, this is the same as
// get_expected_ram_image_size().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1062 14 Dtool_qQJqptvV 0 7 1007 3268 0 14 Dtool_qQJqptvV 1676 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_image
// Access: Published
// Description: Returns the system-RAM image data associated with the
// texture. If the texture does not currently have an
// associated RAM image, and the texture was generated
// by loading an image from a disk file (the most common
// case), this forces the reload of the same texture.
// This can happen if keep_texture_ram is configured to
// false, and we have previously prepared this texture
// with a GSG.
//
// Note that it is not correct to call has_ram_image()
// first to test whether this function will fail. A
// false return value from has_ram_image() indicates
// only that get_ram_image() may need to reload the
// texture from disk, which it will do automatically.
// However, you can call might_have_ram_image(), which
// will return true if the ram image exists, or there is
// a reasonable reason to believe it can be loaded.
//
// On the other hand, it is possible that the texture
// cannot be found on disk or is otherwise unavailable.
// If that happens, this function will return NULL.
// There is no way to predict with 100% accuracy whether
// get_ram_image() will return NULL without calling it
// first; might_have_ram_image() is the closest.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1063 14 Dtool_qQJqEnmq 0 6 1008 3007 0 14 Dtool_qQJqEnmq 633 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_image_compression
// Access: Published
// Description: Returns the compression mode in which the ram image
// is already stored pre-compressed. If this is other
// than CM_off, you cannot rely on the contents of the
// ram image to be anything predicatable (it will not be
// an array of x by y pixels, and it probably won't have
// the same length as get_expected_ram_image_size()).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1064 14 Dtool_qQJqgWYd 0 7 1009 3268 0 14 Dtool_qQJqgWYd 973 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_uncompressed_ram_image
// Access: Published
// Description: Returns the system-RAM image associated with the
// texture, in an uncompressed form if at all possible.
//
// If get_ram_image_compression() is CM_off, then the
// system-RAM image is already uncompressed, and this
// returns the same thing as get_ram_image().
//
// If get_ram_image_compression() is anything else, then
// the system-RAM image is compressed. In this case,
// the image will be reloaded from the *original* file
// (not from the cache), in the hopes that an
// uncompressed image will be found there.
//
// If an uncompressed image cannot be found, returns
// NULL.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1065 14 Dtool_qQJq2ylx 0 7 1010 3268 0 14 Dtool_qQJq2ylx 1762 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_image_as
// Access: Published
// Description: Returns the uncompressed system-RAM image data
// associated with the texture. Rather than
// just returning a pointer to the data, like
// get_uncompressed_ram_image, this function first
// processes the data and reorders the components
// using the specified format string, and places these
// into a new char array. The 'format' argument should
// specify in which order the components of the texture
// must be. For example, valid format strings are
// "RGBA", "GA", "ABRG" or "AAA". A component can
// also be written as "0" or "1", which means an
// empty/black or a full/white channel, respectively.
// This function is particularly useful to
// copy an image in-memory to a different library
// (for example, PIL or wxWidgets) that require
// a different component order than Panda's internal
// format, BGRA. Note, however, that this conversion
// can still be too slow if you want to do it every
// frame, and should thus be avoided for that purpose.
// The only requirement for the reordering is that
// an uncompressed image must be available. If the
// RAM image is compressed, it will attempt to re-load
// the texture from disk, if it doesn't find an
// uncompressed image there, it will return NULL.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 16 requested_format 1 3037
1066 14 Dtool_qQJq3zLa 0 7 1011 3270 0 14 Dtool_qQJq3zLa 517 ////////////////////////////////////////////////////////////////////
// Function: Texture::modify_ram_image
// Access: Published
// Description: Returns a modifiable pointer to the system-RAM image.
// This assumes the RAM image should be uncompressed.
// If the RAM image has been dumped, or is stored
// compressed, creates a new one.
//
// This does *not* affect keep_ram_image.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1067 14 Dtool_qQJqODVV 0 7 1012 3270 0 14 Dtool_qQJqODVV 455 ////////////////////////////////////////////////////////////////////
// Function: Texture::make_ram_image
// Access: Published
// Description: Discards the current system-RAM image for the
// texture, if any, and allocates a new buffer of the
// appropriate size. Returns the new buffer.
//
// This does *not* affect keep_ram_image.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1068 14 Dtool_qQJqj2am 0 4 1013 3042 0 14 Dtool_qQJqj2am 501 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_ram_image
// Access: Published
// Description: Replaces the current system-RAM image with the new
// data. If compression is not CM_off, it indicates
// that the new data is already pre-compressed in the
// indicated format.
//
// This does *not* affect keep_ram_image.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 5 image 1 3268 11 compression 1 3007 9 page_size 1 3038
1069 14 Dtool_qQJqWlIK 0 4 1013 3042 0 14 Dtool_qQJqWlIK 501 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_ram_image
// Access: Published
// Description: Replaces the current system-RAM image with the new
// data. If compression is not CM_off, it indicates
// that the new data is already pre-compressed in the
// indicated format.
//
// This does *not* affect keep_ram_image.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 5 image 1 3268 11 compression 1 3007
1070 14 Dtool_qQJqdI4d 0 4 1013 3042 0 14 Dtool_qQJqdI4d 501 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_ram_image
// Access: Published
// Description: Replaces the current system-RAM image with the new
// data. If compression is not CM_off, it indicates
// that the new data is already pre-compressed in the
// indicated format.
//
// This does *not* affect keep_ram_image.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 5 image 1 3268
1071 14 Dtool_qQJqShS5 0 4 1014 3042 0 14 Dtool_qQJqShS5 597 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_ram_image_as
// Access: Published
// Description: Replaces the current system-RAM image with the new
// data, converting it first if necessary from the
// indicated component-order format. See
// get_ram_image_as() for specifications about the
// format. This method cannot support compressed image
// data or sub-pages; use set_ram_image() for that.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 5 image 1 3268 15 provided_format 1 3037
1072 14 Dtool_qQJqpFgH 0 4 1015 3042 0 14 Dtool_qQJqpFgH 262 ////////////////////////////////////////////////////////////////////
// Function: Texture::clear_ram_image
// Access: Published
// Description: Discards the current system-RAM image.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1073 14 Dtool_qQJq_1DJ 0 4 1016 3042 0 14 Dtool_qQJq_1DJ 827 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_keep_ram_image
// Access: Published
// Description: Sets the flag that indicates whether this Texture is
// eligible to have its main RAM copy of the texture
// memory dumped when the texture is prepared for
// rendering.
//
// This will be false for most textures, which can
// reload their images if needed by rereading the input
// file. However, textures that were generated
// dynamically and cannot be easily reloaded will want
// to set this flag to true, so that the texture will
// always keep its image copy around.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 14 keep_ram_image 1 3043
1074 14 Dtool_qQJqprTa 0 6 1017 3043 0 14 Dtool_qQJqprTa 477 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_keep_ram_image
// Access: Published, Virtual
// Description: Returns the flag that indicates whether this Texture
// is eligible to have its main RAM copy of the texture
// memory dumped when the texture is prepared for
// rendering. See set_keep_ram_image().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1075 14 Dtool_qQJq8zCz 0 6 1018 3043 0 14 Dtool_qQJq8zCz 464 ////////////////////////////////////////////////////////////////////
// Function: Texture::is_cacheable
// Access: Published, Virtual
// Description: Returns true if there is enough information in this
// Texture object to write it to the bam cache
// successfully, false otherwise. For most textures,
// this is the same as has_ram_image().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1076 14 Dtool_qQJq4X6Q 0 6 1019 3043 0 14 Dtool_qQJq4X6Q 1257 ////////////////////////////////////////////////////////////////////
// Function: Texture::compress_ram_image
// Access: Published
// Description: Attempts to compress the texture's RAM image
// internally, to a format supported by the indicated
// GSG. In order for this to work, the squish library
// must have been compiled into Panda.
//
// If compression is CM_on, then an appropriate
// compression method that is supported by the indicated
// GSG is automatically chosen. If the GSG pointer is
// NULL, any of the standard DXT1/3/5 compression
// methods will be used, regardless of whether it is
// supported.
//
// If compression is any specific compression method,
// that method is used regardless of whether the GSG
// supports it.
//
// quality_level determines the speed/quality tradeoff
// of the compression. If it is QL_default, the
// texture's own quality_level parameter is used.
//
// Returns true if successful, false otherwise.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 11 compression 1 3007 13 quality_level 1 3008 3 gsg 1 3112
1077 14 Dtool_qQJqn3DR 0 6 1019 3043 0 14 Dtool_qQJqn3DR 1257 ////////////////////////////////////////////////////////////////////
// Function: Texture::compress_ram_image
// Access: Published
// Description: Attempts to compress the texture's RAM image
// internally, to a format supported by the indicated
// GSG. In order for this to work, the squish library
// must have been compiled into Panda.
//
// If compression is CM_on, then an appropriate
// compression method that is supported by the indicated
// GSG is automatically chosen. If the GSG pointer is
// NULL, any of the standard DXT1/3/5 compression
// methods will be used, regardless of whether it is
// supported.
//
// If compression is any specific compression method,
// that method is used regardless of whether the GSG
// supports it.
//
// quality_level determines the speed/quality tradeoff
// of the compression. If it is QL_default, the
// texture's own quality_level parameter is used.
//
// Returns true if successful, false otherwise.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 11 compression 1 3007 13 quality_level 1 3008
1078 14 Dtool_qQJq50a4 0 6 1019 3043 0 14 Dtool_qQJq50a4 1257 ////////////////////////////////////////////////////////////////////
// Function: Texture::compress_ram_image
// Access: Published
// Description: Attempts to compress the texture's RAM image
// internally, to a format supported by the indicated
// GSG. In order for this to work, the squish library
// must have been compiled into Panda.
//
// If compression is CM_on, then an appropriate
// compression method that is supported by the indicated
// GSG is automatically chosen. If the GSG pointer is
// NULL, any of the standard DXT1/3/5 compression
// methods will be used, regardless of whether it is
// supported.
//
// If compression is any specific compression method,
// that method is used regardless of whether the GSG
// supports it.
//
// quality_level determines the speed/quality tradeoff
// of the compression. If it is QL_default, the
// texture's own quality_level parameter is used.
//
// Returns true if successful, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 11 compression 1 3007
1079 14 Dtool_qQJqHzZo 0 6 1019 3043 0 14 Dtool_qQJqHzZo 1257 ////////////////////////////////////////////////////////////////////
// Function: Texture::compress_ram_image
// Access: Published
// Description: Attempts to compress the texture's RAM image
// internally, to a format supported by the indicated
// GSG. In order for this to work, the squish library
// must have been compiled into Panda.
//
// If compression is CM_on, then an appropriate
// compression method that is supported by the indicated
// GSG is automatically chosen. If the GSG pointer is
// NULL, any of the standard DXT1/3/5 compression
// methods will be used, regardless of whether it is
// supported.
//
// If compression is any specific compression method,
// that method is used regardless of whether the GSG
// supports it.
//
// quality_level determines the speed/quality tradeoff
// of the compression. If it is QL_default, the
// texture's own quality_level parameter is used.
//
// Returns true if successful, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1080 14 Dtool_qQJqrKga 0 6 1020 3043 0 14 Dtool_qQJqrKga 573 ////////////////////////////////////////////////////////////////////
// Function: Texture::uncompress_ram_image
// Access: Published
// Description: Attempts to uncompress the texture's RAM image
// internally. In order for this to work, the squish
// library must have been compiled into Panda, and the
// ram image must be compressed in a format supported by
// squish.
//
// Returns true if successful, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1081 14 Dtool_qQJqsZCn 0 6 1021 3046 0 14 Dtool_qQJqsZCn 584 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_num_ram_mipmap_images
// Access: Published
// Description: Returns the maximum number of mipmap level images
// available in system memory. The actual number may be
// less than this (that is, there might be gaps in the
// sequence); use has_ram_mipmap_image() to verify each
// level.
//
// Also see get_num_loadable_ram_mipmap_images().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1082 14 Dtool_qQJqPYfR 0 6 1022 3043 0 14 Dtool_qQJqPYfR 608 ////////////////////////////////////////////////////////////////////
// Function: Texture::has_ram_mipmap_image
// Access: Published
// Description: Returns true if the Texture has the nth mipmap level
// available in system memory, false otherwise. If the
// texture's minfilter mode requires mipmapping (see
// uses_mipmaps()), and all the texture's mipmap levels
// are not available when the texture is rendered, they
// will be generated automatically.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1083 14 Dtool_qQJqUZqM 0 6 1023 3046 0 14 Dtool_qQJqUZqM 955 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_num_loadable_ram_mipmap_images
// Access: Published
// Description: Returns the number of contiguous mipmap levels that
// exist in RAM, up until the first gap in the sequence.
// It is guaranteed that at least mipmap levels [0,
// get_num_ram_mipmap_images()) exist.
//
// The number returned will never exceed the number of
// required mipmap images based on the size of the
// texture and its filter mode.
//
// This method is different from
// get_num_ram_mipmap_images() in that it returns only
// the number of mipmap levels that can actually be
// usefully loaded, regardless of the actual number that
// may be stored.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1084 14 Dtool_qQJquUo_ 0 6 1024 3043 0 14 Dtool_qQJquUo_ 403 ////////////////////////////////////////////////////////////////////
// Function: Texture::has_all_ram_mipmap_images
// Access: Published
// Description: Returns true if all expected mipmap levels have been
// defined and exist in the system RAM, or false if even
// one mipmap level is missing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1085 14 Dtool_qQJqIt9g 0 6 1025 3038 0 14 Dtool_qQJqIt9g 402 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_mipmap_image_size
// Access: Published
// Description: Returns the number of bytes used by the in-memory
// image for mipmap level n, or 0 if there is no
// in-memory image for this mipmap level.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1086 14 Dtool_qQJqql85 0 6 1026 3038 0 14 Dtool_qQJqql85 913 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_mipmap_view_size
// Access: Published
// Description: Returns the number of bytes used by the in-memory
// image per view for mipmap level n, or 0 if there is
// no in-memory image for this mipmap level.
//
// A "view" is a collection of z_size pages for each
// mipmap level. Most textures have only one view,
// except for multiview or stereo textures.
//
// For a non-compressed texture, this is the same as
// get_expected_ram_mipmap_view_size(). For a compressed
// texture, this may be a smaller value. (We do assume
// that all pages will be the same size on a compressed
// texture).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1087 14 Dtool_qQJqrxQs 0 6 1027 3038 0 14 Dtool_qQJqrxQs 719 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_mipmap_page_size
// Access: Published
// Description: Returns the number of bytes used by the in-memory
// image per page for mipmap level n, or 0 if there is
// no in-memory image for this mipmap level.
//
// For a non-compressed texture, this is the same as
// get_expected_ram_mipmap_page_size(). For a compressed
// texture, this may be a smaller value. (We do assume
// that all pages will be the same size on a compressed
// texture).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1088 14 Dtool_qQJq18J3 0 6 1028 3038 0 14 Dtool_qQJq18J3 404 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_ram_mipmap_image_size
// Access: Published
// Description: Returns the number of bytes that *ought* to be used
// by the in-memory image for mipmap level n, based on
// the texture parameters.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1089 14 Dtool_qQJqKTPS 0 6 1029 3038 0 14 Dtool_qQJqKTPS 547 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_ram_mipmap_view_size
// Access: Published
// Description: Returns the number of bytes that *ought* to be used
// by each view of the in-memory image for mipmap level
// n, based on the texture parameters. For a normal,
// non-multiview texture, this is the same as
// get_expected_ram_mipmap_image_size(n).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1090 14 Dtool_qQJqmvjI 0 6 1030 3038 0 14 Dtool_qQJqmvjI 480 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_expected_ram_mipmap_page_size
// Access: Published
// Description: Returns the number of bytes that should be used per
// each Z page of the 3-d texture, for mipmap level n.
// For a 2-d or 1-d texture, this is the same as
// get_expected_ram_mipmap_view_size(n).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1091 14 Dtool_qQJqnFOc 0 7 1031 3268 0 14 Dtool_qQJqnFOc 400 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_mipmap_image
// Access: Published
// Description: Returns the system-RAM image data associated with the
// nth mipmap level, if present. Returns NULL if the
// nth mipmap level is not present.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1092 14 Dtool_qQJqT52p 0 4 1032 3042 0 14 Dtool_qQJqT52p 447 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_ram_mipmap_pointer
// Access: Published
// Description: Similiar to get_ram_mipmap_image(), however, in this
// case the void pointer for the given ram image is
// returned. This will be NULL unless it has been
// explicitly set.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 1 n 1 3046
1093 14 Dtool_qQJqFscn 0 7 1033 3270 0 14 Dtool_qQJqFscn 511 ////////////////////////////////////////////////////////////////////
// Function: Texture::modify_ram_mipmap_image
// Access: Published
// Description: Returns a modifiable pointer to the system-RAM image
// for the nth mipmap level. This assumes the RAM image
// is uncompressed; if this is not the case, raises an
// assertion.
//
// This does *not* affect keep_ram_image.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 1 n 1 3046
1094 14 Dtool_qQJq0yn2 0 7 1034 3270 0 14 Dtool_qQJq0yn2 471 ////////////////////////////////////////////////////////////////////
// Function: Texture::make_ram_mipmap_image
// Access: Published
// Description: Discards the current system-RAM image for the
// nth mipmap level, if any, and allocates a new buffer
// of the appropriate size. Returns the new buffer.
//
// This does *not* affect keep_ram_image.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 1 n 1 3046
1095 14 Dtool_qQJqIzqO 0 4 1036 3042 0 14 Dtool_qQJqIzqO 592 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_ram_mipmap_pointer_from_int
// Access: Published
// Description: Accepts a raw pointer cast as an int, which is then
// passed to set_ram_mipmap_pointer(); see the
// documentation for that method.
//
// This variant is particularly useful to set an
// external pointer from a language like Python, which
// doesn't support void pointers directly.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 7 pointer 1 3271 1 n 1 3046 9 page_size 1 3046
1096 14 Dtool_qQJqNhUE 0 4 1037 3042 0 14 Dtool_qQJqNhUE 556 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_ram_mipmap_image
// Access: Published
// Description: Replaces the current system-RAM image for the
// indicated mipmap level with the new data. If
// compression is not CM_off, it indicates that the new
// data is already pre-compressed in the indicated
// format.
//
// This does *not* affect keep_ram_image.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 1 n 1 3046 5 image 1 3268 9 page_size 1 3038
1097 14 Dtool_qQJqtuFT 0 4 1037 3042 0 14 Dtool_qQJqtuFT 556 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_ram_mipmap_image
// Access: Published
// Description: Replaces the current system-RAM image for the
// indicated mipmap level with the new data. If
// compression is not CM_off, it indicates that the new
// data is already pre-compressed in the indicated
// format.
//
// This does *not* affect keep_ram_image.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 1 n 1 3046 5 image 1 3268
1098 14 Dtool_qQJqYq5x 0 4 1038 3042 0 14 Dtool_qQJqYq5x 311 ////////////////////////////////////////////////////////////////////
// Function: Texture::clear_ram_mipmap_image
// Access: Published
// Description: Discards the current system-RAM image for the nth
// mipmap level.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 1 n 1 3046
1099 14 Dtool_qQJq_KKM 0 4 1039 3042 0 14 Dtool_qQJq_KKM 342 ////////////////////////////////////////////////////////////////////
// Function: Texture::clear_ram_mipmap_images
// Access: Published
// Description: Discards the current system-RAM image for all
// mipmap levels, except level 0 (the base image).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1100 14 Dtool_qQJqvPAg 0 4 1040 3042 0 14 Dtool_qQJqvPAg 794 ////////////////////////////////////////////////////////////////////
// Function: Texture::generate_ram_mipmap_images
// Access: Published
// Description: Automatically fills in the n mipmap levels of the
// Texture, based on the texture's source image. This
// requires the texture's uncompressed ram image to be
// available in system memory. If it is not already, it
// will be fetched if possible.
//
// This call is not normally necessary, since the mipmap
// levels will be generated automatically if needed.
// But there may be certain cases in which you would
// like to call this explicitly.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1101 14 Dtool_qQJqjKHa 0 6 1041 3046 0 14 Dtool_qQJqjKHa 276 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_simple_x_size
// Access: Published
// Description: Returns the width of the "simple" image in texels.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1102 14 Dtool_qQJqzoaa 0 6 1042 3046 0 14 Dtool_qQJqzoaa 277 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_simple_y_size
// Access: Published
// Description: Returns the height of the "simple" image in texels.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1103 14 Dtool_qQJqF9NW 0 6 1043 3043 0 14 Dtool_qQJqF9NW 326 ////////////////////////////////////////////////////////////////////
// Function: Texture::has_simple_ram_image
// Access: Published, Virtual
// Description: Returns true if the Texture has a "simple" image
// available in main RAM.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1104 14 Dtool_qQJqHF_T 0 6 1044 3038 0 14 Dtool_qQJqHF_T 340 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_simple_ram_image_size
// Access: Published
// Description: Returns the number of bytes used by the "simple"
// image, or 0 if there is no simple image.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1105 14 Dtool_qQJqtR6g 0 7 1045 3268 0 14 Dtool_qQJqtR6g 879 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_simple_ram_image
// Access: Published
// Description: Returns the image data associated with the "simple"
// texture image. This is provided for some textures as
// an option to display while the main texture image is
// being loaded from disk.
//
// Unlike get_ram_image(), this function will always
// return immediately. Either the simple image is
// available, or it is not.
//
// The "simple" image is always 4 components, 1 byte
// each, regardless of the parameters of the full
// texture. The simple image is only supported for
// ordinary 2-d textures.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1106 14 Dtool_qQJqVbFL 0 4 1046 3042 0 14 Dtool_qQJqVbFL 1051 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_simple_ram_image
// Access: Published
// Description: Replaces the internal "simple" texture image. This
// can be used as an option to display while the main
// texture image is being loaded from disk. It is
// normally a very small image, 16x16 or smaller (and
// maybe even 1x1), that is designed to give just enough
// sense of color to serve as a placeholder until the
// full texture is available.
//
// The "simple" image is always 4 components, 1 byte
// each, regardless of the parameters of the full
// texture. The simple image is only supported for
// ordinary 2-d textures.
//
// Also see generate_simple_ram_image(),
// modify_simple_ram_image(), and
// new_simple_ram_image().
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 5 image 1 3268 6 x_size 1 3046 6 y_size 1 3046
1107 14 Dtool_qQJqnWcl 0 7 1047 3270 0 14 Dtool_qQJqnWcl 346 ////////////////////////////////////////////////////////////////////
// Function: Texture::modify_simple_ram_image
// Access: Published
// Description: Returns a modifiable pointer to the internal "simple"
// texture image. See set_simple_ram_image().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1108 14 Dtool_qQJqlEaN 0 7 1048 3270 0 14 Dtool_qQJqlEaN 413 ////////////////////////////////////////////////////////////////////
// Function: Texture::new_simple_ram_image
// Access: Published
// Description: Creates an empty array for the simple ram image of
// the indicated size, and returns a modifiable pointer
// to the new array. See set_simple_ram_image().
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 6 x_size 1 3046 6 y_size 1 3046
1109 14 Dtool_qQJqi9_G 0 4 1049 3042 0 14 Dtool_qQJqi9_G 453 ////////////////////////////////////////////////////////////////////
// Function: Texture::generate_simple_ram_image
// Access: Published
// Description: Computes the "simple" ram image by loading the main
// RAM image, if it is not already available, and
// reducing it to 16x16 or smaller. This may be an
// expensive operation.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1110 14 Dtool_qQJq3521 0 4 1050 3042 0 14 Dtool_qQJq3521 267 ////////////////////////////////////////////////////////////////////
// Function: Texture::clear_simple_ram_image
// Access: Published
// Description: Discards the current "simple" image.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1111 14 Dtool_qQJq0K12 0 7 1051 3272 2926 14 Dtool_qQJq0K12 826 ////////////////////////////////////////////////////////////////////
// Function: Texture::peek
// Access: Published
// Description: Returns a TexturePeeker object that can be used to
// examine the individual texels stored within this
// Texture by (u, v) coordinate.
//
// If the texture has a ram image resident, that image
// is used. If it does not have a full ram image but
// does have a simple_ram_image resident, that image is
// used instead. If neither image is resident the full
// image is reloaded.
//
// Returns NULL if the texture cannot find an image to
// load, or the texture format is incompatible.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1112 14 Dtool_qQJqhBtw 0 7 1052 3105 0 14 Dtool_qQJqhBtw 403 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_properties_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the texture properties
// (unrelated to the image) are modified.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1113 14 Dtool_qQJqTeDG 0 7 1053 3105 0 14 Dtool_qQJqTeDG 399 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_image_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the texture image data
// (including mipmap levels) are modified.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1114 14 Dtool_qQJq12pR 0 7 1054 3105 0 14 Dtool_qQJq12pR 390 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_simple_image_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the texture's "simple"
// image data is modified.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1115 14 Dtool_qQJq7xr7 0 4 1055 3042 0 14 Dtool_qQJq7xr7 421 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_auto_texture_scale
// Access: Published
// Description: Specifies the power-of-2 texture-scaling mode that
// will be applied to this particular texture when it is
// next loaded from disk. See set_textures_power_2().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 5 scale 1 3273
1116 14 Dtool_qQJqu3_O 0 6 1056 3273 0 14 Dtool_qQJqu3_O 419 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_auto_texture_scale
// Access: Published
// Description: Returns the power-of-2 texture-scaling mode that will
// be applied to this particular texture when it is next
// loaded from disk. See set_textures_power_2().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1117 14 Dtool_qQJq0fRE 0 6 1057 3043 0 14 Dtool_qQJq0fRE 387 ////////////////////////////////////////////////////////////////////
// Function: Texture::has_auto_texture_scale
// Access: Published
// Description: Returns true if set_auto_texture_scale() has been set
// to something other than ATS_unspecified for this
// particular texture.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1118 14 Dtool_qQJqLFHv 0 4 1058 3042 0 14 Dtool_qQJqLFHv 655 ////////////////////////////////////////////////////////////////////
// Function: Texture::prepare
// Access: Published
// Description: Indicates that the texture should be enqueued to be
// prepared in the indicated prepared_objects at the
// beginning of the next frame. This will ensure the
// texture is already loaded into texture memory if it
// is expected to be rendered soon.
//
// Use this function instead of prepare_now() to preload
// textures from a user interface standpoint.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 16 prepared_objects 1 3111
1119 14 Dtool_qQJqgvjn 0 6 1059 3043 0 14 Dtool_qQJqgvjn 374 ////////////////////////////////////////////////////////////////////
// Function: Texture::is_prepared
// Access: Published
// Description: Returns true if the texture has already been prepared
// or enqueued for preparation on the indicated GSG,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 16 prepared_objects 1 3111
1120 14 Dtool_qQJqUPgs 0 6 1060 3043 0 14 Dtool_qQJqUPgs 437 ////////////////////////////////////////////////////////////////////
// Function: Texture::was_image_modified
// Access: Published
// Description: Returns true if the texture needs to be re-loaded
// onto the indicated GSG, either because its image data
// is out-of-date, or because it's not fully prepared
// now.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 16 prepared_objects 1 3111
1121 14 Dtool_qQJqWC_V 0 6 1061 3038 0 14 Dtool_qQJqWC_V 639 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_data_size_bytes
// Access: Public
// Description: Returns the number of bytes which the texture is
// reported to consume within graphics memory, for the
// indicated GSG. This may return a nonzero value even
// if the texture is not currently resident; you should
// also check get_resident() if you want to know how
// much space the texture is actually consuming right
// now.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 16 prepared_objects 1 3111
1122 14 Dtool_qQJqo8z_ 0 6 1062 3043 0 14 Dtool_qQJqo8z_ 325 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_active
// Access: Public
// Description: Returns true if this Texture was rendered in the most
// recent frame within the indicated GSG.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 16 prepared_objects 1 3111
1123 14 Dtool_qQJqUPUd 0 6 1063 3043 0 14 Dtool_qQJqUPUd 353 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_resident
// Access: Public
// Description: Returns true if this Texture is reported to be
// resident within graphics memory for the indicated
// GSG.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 16 prepared_objects 1 3111
1124 14 Dtool_qQJqv3AE 0 6 1064 3043 0 14 Dtool_qQJqv3AE 394 ////////////////////////////////////////////////////////////////////
// Function: Texture::release
// Access: Published
// Description: Frees the texture context only on the indicated object,
// if it exists there. Returns true if it was released,
// false if it had not been prepared.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 16 prepared_objects 1 3111
1125 14 Dtool_qQJqH_Et 0 6 1065 3046 0 14 Dtool_qQJqH_Et 392 ////////////////////////////////////////////////////////////////////
// Function: Texture::release_all
// Access: Published
// Description: Frees the context allocated on all objects for which
// the texture has been declared. Returns the number of
// contexts which have been freed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1126 14 Dtool_qQJqp5Zg 0 6 1066 3038 0 14 Dtool_qQJqp5Zg 775 ////////////////////////////////////////////////////////////////////
// Function: Texture::estimate_texture_memory
// Access: Published
// Description: Estimates the amount of texture memory that will be
// consumed by loading this texture. This returns a
// value that is not specific to any particular graphics
// card or driver; it tries to make a reasonable
// assumption about how a driver will load the texture.
// It does not account for texture compression or
// anything fancy. This is mainly useful for debugging
// and reporting purposes.
//
// Returns a value in bytes.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1127 14 Dtool_qQJqNHbm 0 4 1067 3042 0 14 Dtool_qQJqNHbm 523 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_aux_data
// Access: Published
// Description: Records an arbitrary object in the Texture,
// associated with a specified key. The object may
// later be retrieved by calling get_aux_data() with the
// same key.
//
// These data objects are not recorded to a bam or txo
// file.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 3 key 1 3037 8 aux_data 1 3274
1128 14 Dtool_qQJq8EWP 0 4 1068 3042 0 14 Dtool_qQJq8EWP 296 ////////////////////////////////////////////////////////////////////
// Function: Texture::clear_aux_data
// Access: Published
// Description: Removes a record previously recorded via
// set_aux_data().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 3 key 1 3037
1129 14 Dtool_qQJqkzsv 0 7 1069 3274 0 14 Dtool_qQJqkzsv 383 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_aux_data
// Access: Published
// Description: Returns a record previously recorded via
// set_aux_data(). Returns NULL if there was no record
// associated with the indicated key.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3247 3 key 1 3037
1130 14 Dtool_qQJqesKC 0 4 1070 3042 0 14 Dtool_qQJqesKC 520 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_textures_power_2
// Access: Published, Static
// Description: Set this flag to ATS_none, ATS_up, ATS_down, or
// ATS_pad to control the scaling of textures in
// general, if a particular texture does not override
// this. See also set_auto_texture_scale() for the
// per-texture override.
//////////////////////////////////////////////////////////////////// 1 5 scale 1 3273
1131 14 Dtool_qQJqvjA4 0 6 1071 3273 0 14 Dtool_qQJqvjA4 536 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_textures_power_2
// Access: Published, Static
// Description: This flag returns ATS_none, ATS_up, or ATS_down
// and controls the scaling of textures in general. It
// is initialized from the config variable of the same
// name, but it can be subsequently adjusted. See also
// get_auto_texture_scale().
//////////////////////////////////////////////////////////////////// 0
1132 14 Dtool_qQJqHLSt 0 6 1072 3043 0 14 Dtool_qQJqHLSt 452 ////////////////////////////////////////////////////////////////////
// Function: Texture::has_textures_power_2
// Access: Published, Static
// Description: If true, then get_textures_power_2 has been
// set using set_textures_power_2.
// If false, then get_textures_power_2 simply
// returns the config variable of the same name.
//////////////////////////////////////////////////////////////////// 0
1133 14 Dtool_qQJqxxu1 0 4 1073 3042 0 14 Dtool_qQJqxxu1 690 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_filename
// Access: Published
// Description: Sets the name of the file that contains the image's
// contents. Normally, this is set automatically when
// the image is loaded, for instance via
// Texture::read().
//
// The Texture's get_name() function used to return
// the filename, but now returns just the basename
// (without the extension), which is a more useful name
// for identifying an image in show code.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 8 filename 1 3249
1134 14 Dtool_qQJq1EJs 0 4 1074 3042 0 14 Dtool_qQJq1EJs 313 ////////////////////////////////////////////////////////////////////
// Function: Texture::clear_filename
// Access: Published
// Description: Removes the alpha filename, if it was previously set.
// See set_filename().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1135 14 Dtool_qQJqm10_ 0 4 1075 3042 0 14 Dtool_qQJqm10_ 915 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_alpha_filename
// Access: Published
// Description: Sets the name of the file that contains the image's
// alpha channel contents. Normally, this is set
// automatically when the image is loaded, for instance
// via Texture::read().
//
// The Texture's get_filename() function returns the
// name of the image file that was loaded into the
// buffer. In the case where a texture specified two
// separate files to load, a 1- or 3-channel color image
// and a 1-channel alpha image, this Filename is update
// to contain the name of the image file that was loaded
// into the buffer's alpha channel.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 14 alpha_filename 1 3249
1136 14 Dtool_qQJqniFu 0 4 1076 3042 0 14 Dtool_qQJqniFu 325 ////////////////////////////////////////////////////////////////////
// Function: Texture::clear_alpha_filename
// Access: Published
// Description: Removes the alpha filename, if it was previously set.
// See set_alpha_filename().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1137 14 Dtool_qQJqwCYx 0 4 1077 3042 0 14 Dtool_qQJqwCYx 470 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_fullpath
// Access: Published
// Description: Sets the full pathname to the file that contains the
// image's contents, as found along the search path.
// Normally, this is set automatically when the image is
// loaded, for instance via Texture::read().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 8 fullpath 1 3249
1138 14 Dtool_qQJq_nbF 0 4 1078 3042 0 14 Dtool_qQJq_nbF 313 ////////////////////////////////////////////////////////////////////
// Function: Texture::clear_fullpath
// Access: Published
// Description: Removes the alpha fullpath, if it was previously set.
// See set_fullpath().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1139 14 Dtool_qQJq66Zo 0 4 1079 3042 0 14 Dtool_qQJq66Zo 508 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_alpha_fullpath
// Access: Published
// Description: Sets the full pathname to the file that contains the
// image's alpha channel contents, as found along the
// search path. Normally, this is set automatically
// when the image is loaded, for instance via
// Texture::read().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 14 alpha_fullpath 1 3249
1140 14 Dtool_qQJqQc0_ 0 4 1080 3042 0 14 Dtool_qQJqQc0_ 325 ////////////////////////////////////////////////////////////////////
// Function: Texture::clear_alpha_fullpath
// Access: Published
// Description: Removes the alpha fullpath, if it was previously set.
// See set_alpha_fullpath().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1141 14 Dtool_qQJqzob9 0 4 1081 3042 0 14 Dtool_qQJqzob9 371 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_x_size
// Access: Published
// Description: Changes the x size indicated for the texture. This
// also implicitly unloads the texture if it has already
// been loaded.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 6 x_size 1 3046
1142 14 Dtool_qQJqLp7A 0 4 1082 3042 0 14 Dtool_qQJqLp7A 371 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_y_size
// Access: Published
// Description: Changes the y size indicated for the texture. This
// also implicitly unloads the texture if it has already
// been loaded.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 6 y_size 1 3046
1143 14 Dtool_qQJqipbE 0 4 1083 3042 0 14 Dtool_qQJqipbE 371 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_z_size
// Access: Published
// Description: Changes the z size indicated for the texture. This
// also implicitly unloads the texture if it has already
// been loaded.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 6 z_size 1 3046
1144 14 Dtool_qQJqaw4x 0 4 1084 3042 0 14 Dtool_qQJqaw4x 866 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_num_views
// Access: Published
// Description: Sets the number of "views" within a texture. A view
// is a completely separate image stored within the
// Texture object. Most textures have only one view,
// but a stereo texture, for instance, may have two
// views, a left and a right image. Other uses for
// multiple views are not yet defined.
//
// If this value is greater than one, the additional
// views are accessed as additional pages beyond
// get_z_size().
//
// This also implicitly unloads the texture if it has
// already been loaded.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 9 num_views 1 3046
1145 14 Dtool_qQJq6S4x 0 6 1085 3046 0 14 Dtool_qQJq6S4x 273 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_pad_x_size
// Access: Published
// Description: Returns size of the pad region. See set_pad_size.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1146 14 Dtool_qQJq_SGO 0 6 1086 3046 0 14 Dtool_qQJq_SGO 273 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_pad_y_size
// Access: Published
// Description: Returns size of the pad region. See set_pad_size.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1147 14 Dtool_qQJqBSUq 0 6 1087 3046 0 14 Dtool_qQJqBSUq 273 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_pad_z_size
// Access: Published
// Description: Returns size of the pad region. See set_pad_size.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1148 14 Dtool_qQJqpphB 0 7 1088 3276 0 14 Dtool_qQJqpphB 866 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_tex_scale
// Access: Published
// Description: Returns a scale pair that is suitable for applying to
// geometry via NodePath::set_tex_scale(), which will
// convert texture coordinates on the geometry from the
// range 0..1 into the appropriate range to render the
// video part of the texture.
//
// This is necessary only if a padding size has been set
// via set_pad_size() (or implicitly via something like
// "textures-power-2 pad" in the config.prc file). In
// this case, this is a convenient way to generate UV's
// that reflect the built-in padding size.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1149 14 Dtool_qQJqNa2k 0 4 1089 3042 0 14 Dtool_qQJqNa2k 813 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_pad_size
// Access: Published
// Description: Sets the size of the pad region.
//
// Sometimes, when a video card demands power-of-two
// textures, it is necessary to create a big texture
// and then only use a portion of it. The pad region
// indicates which portion of the texture is not
// really in use. All operations use the texture
// as a whole, including the pad region, unless they
// explicitly state that they use only the non-pad
// region.
//
// Changing the texture's size clears the pad region.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 1 x 1 3046 1 y 1 3046 1 z 1 3046
1150 14 Dtool_qQJqI6hq 0 4 1089 3042 0 14 Dtool_qQJqI6hq 813 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_pad_size
// Access: Published
// Description: Sets the size of the pad region.
//
// Sometimes, when a video card demands power-of-two
// textures, it is necessary to create a big texture
// and then only use a portion of it. The pad region
// indicates which portion of the texture is not
// really in use. All operations use the texture
// as a whole, including the pad region, unless they
// explicitly state that they use only the non-pad
// region.
//
// Changing the texture's size clears the pad region.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 1 x 1 3046 1 y 1 3046
1151 14 Dtool_qQJqzpXt 0 4 1089 3042 0 14 Dtool_qQJqzpXt 813 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_pad_size
// Access: Published
// Description: Sets the size of the pad region.
//
// Sometimes, when a video card demands power-of-two
// textures, it is necessary to create a big texture
// and then only use a portion of it. The pad region
// indicates which portion of the texture is not
// really in use. All operations use the texture
// as a whole, including the pad region, unless they
// explicitly state that they use only the non-pad
// region.
//
// Changing the texture's size clears the pad region.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 1 x 1 3046
1152 14 Dtool_qQJqsnEy 0 4 1089 3042 0 14 Dtool_qQJqsnEy 813 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_pad_size
// Access: Published
// Description: Sets the size of the pad region.
//
// Sometimes, when a video card demands power-of-two
// textures, it is necessary to create a big texture
// and then only use a portion of it. The pad region
// indicates which portion of the texture is not
// really in use. All operations use the texture
// as a whole, including the pad region, unless they
// explicitly state that they use only the non-pad
// region.
//
// Changing the texture's size clears the pad region.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1153 14 Dtool_qQJqP_Qd 0 4 1090 3042 0 14 Dtool_qQJqP_Qd 348 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_size_padded
// Access: Published
// Description: Changes the size of the texture, padding
// if necessary, and setting the pad region
// as well.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 1 x 1 3046 1 y 1 3046 1 z 1 3046
1154 14 Dtool_qQJqf7Uc 0 4 1090 3042 0 14 Dtool_qQJqf7Uc 348 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_size_padded
// Access: Published
// Description: Changes the size of the texture, padding
// if necessary, and setting the pad region
// as well.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 1 x 1 3046 1 y 1 3046
1155 14 Dtool_qQJq0f17 0 4 1090 3042 0 14 Dtool_qQJq0f17 348 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_size_padded
// Access: Published
// Description: Changes the size of the texture, padding
// if necessary, and setting the pad region
// as well.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 1 x 1 3046
1156 14 Dtool_qQJq5TOP 0 4 1090 3042 0 14 Dtool_qQJq5TOP 348 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_size_padded
// Access: Published
// Description: Changes the size of the texture, padding
// if necessary, and setting the pad region
// as well.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1157 14 Dtool_qQJqhkHc 0 6 1091 3046 0 14 Dtool_qQJqhkHc 414 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_orig_file_x_size
// Access: Published
// Description: Returns the X size of the original disk image that
// this Texture was loaded from (if it came from a disk
// file), before any automatic rescaling by Panda.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1158 14 Dtool_qQJqdmHq 0 6 1092 3046 0 14 Dtool_qQJqdmHq 414 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_orig_file_y_size
// Access: Published
// Description: Returns the Y size of the original disk image that
// this Texture was loaded from (if it came from a disk
// file), before any automatic rescaling by Panda.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1159 14 Dtool_qQJq5rH4 0 6 1093 3046 0 14 Dtool_qQJq5rH4 414 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_orig_file_z_size
// Access: Published
// Description: Returns the Z size of the original disk image that
// this Texture was loaded from (if it came from a disk
// file), before any automatic rescaling by Panda.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1160 14 Dtool_qQJqpqd5 0 4 1094 3042 0 14 Dtool_qQJqpqd5 343 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_orig_file_size
// Access: Published
// Description: Specifies the size of the texture as it exists in its
// original disk file, before any Panda scaling.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 1 x 1 3046 1 y 1 3046 1 z 1 3046
1161 14 Dtool_qQJqPjli 0 4 1094 3042 0 14 Dtool_qQJqPjli 343 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_orig_file_size
// Access: Published
// Description: Specifies the size of the texture as it exists in its
// original disk file, before any Panda scaling.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3246 1 x 1 3046 1 y 1 3046
1162 14 Dtool_qQJqtpDw 0 4 1095 3042 0 14 Dtool_qQJqtpDw 333 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_format
// Access: Published
// Description: Changes the format value for the texture components.
// This implicitly sets num_components as well.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 6 format 1 3004
1163 14 Dtool_qQJqQhrN 0 4 1096 3042 0 14 Dtool_qQJqQhrN 340 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_component_type
// Access: Published
// Description: Changes the data value for the texture components.
// This implicitly sets component_width as well.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 14 component_type 1 3003
1164 14 Dtool_qQJq2KhW 0 4 1097 3042 0 14 Dtool_qQJq2KhW 553 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_loaded_from_image
// Access: Published
// Description: Sets the flag that indicates the texture has been
// loaded from a disk file or PNMImage. You should also
// ensure the filename has been set correctly. When
// this flag is true, the texture may be automatically
// reloaded when its ram image needs to be replaced.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1165 14 Dtool_qQJqLfRY 0 6 1098 3043 0 14 Dtool_qQJqLfRY 383 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_loaded_from_image
// Access: Published
// Description: Returns the flag that indicates the texture has been
// loaded from a disk file or PNMImage. See
// set_loaded_from_image().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1166 14 Dtool_qQJqh42H 0 4 1099 3042 0 14 Dtool_qQJqh42H 452 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_loaded_from_txo
// Access: Published
// Description: Sets the flag that indicates the texture has been
// loaded from a txo file. You probably shouldn't be
// setting this directly; it is set automatically when a
// Texture is loaded.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1167 14 Dtool_qQJqmAs_ 0 6 1100 3043 0 14 Dtool_qQJqmAs_ 321 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_loaded_from_txo
// Access: Published
// Description: Returns the flag that indicates the texture has been
// loaded from a txo file.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1168 14 Dtool_qQJqscHG 0 6 1101 3043 0 14 Dtool_qQJqscHG 338 ////////////////////////////////////////////////////////////////////
// Function: Texture::is_mipmap
// Access: Published, Static
// Description: Returns true if the indicated filter type requires
// the use of mipmaps, or false if it does not.
//////////////////////////////////////////////////////////////////// 1 4 type 1 3005
1169 14 Dtool_qQJq608G 0 6 1102 3043 0 14 Dtool_qQJq608G 588 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_match_framebuffer_format
// Access: Public
// Description: Returns true if the special flag was set that
// indicates to the GSG that the Texture's format should
// be chosen to exactly match the framebuffer's format,
// presumably because the application intends to copy
// image data from the framebuffer into the Texture (or
// vice-versa).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1170 14 Dtool_qQJqsRvh 0 4 1103 3042 0 14 Dtool_qQJqsRvh 743 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_match_framebuffer_format
// Access: Public
// Description: Sets the special flag that, if true, indicates to the
// GSG that the Texture's format should be chosen to
// exactly match the framebuffer's format, presumably
// because the application intends to copy image data
// from the framebuffer into the Texture (or
// vice-versa).
//
// This sets only the graphics card's idea of the
// texture format; it is not related to the
// system-memory format.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 4 flag 1 3043
1171 14 Dtool_qQJqZVP_ 0 6 1104 3043 0 14 Dtool_qQJqZVP_ 336 ////////////////////////////////////////////////////////////////////
// Function: Texture::get_post_load_store_cache
// Access: Public
// Description: Returns the setting of the post_load_store_cache
// flag. See set_post_load_store_cache().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3247
1172 14 Dtool_qQJquxvY 0 4 1105 3042 0 14 Dtool_qQJquxvY 742 ////////////////////////////////////////////////////////////////////
// Function: Texture::set_post_load_store_cache
// Access: Public
// Description: Sets the post_load_store_cache flag. When this is
// set, the next time the texture is loaded on a GSG, it
// will automatically extract its RAM image from the GSG
// and save it to the global BamCache.
//
// This is used to store compressed RAM images in the
// BamCache. This flag should not be set explicitly; it
// is set automatically by the TexturePool when
// model-cache-compressed-textures is set true.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 4 flag 1 3043
1173 14 Dtool_qQJqufIe 0 6 1106 3277 0 14 Dtool_qQJqufIe 889 ////////////////////////////////////////////////////////////////////
// Function: Texture::prepare_now
// Access: Published
// Description: Creates a context for the texture on the particular
// GSG, if it does not already exist. Returns the new
// (or old) TextureContext. This assumes that the
// GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// textures. If this is not necessarily the case, you
// should use prepare() instead.
//
// Normally, this is not called directly except by the
// GraphicsStateGuardian; a texture does not need to be
// explicitly prepared by the user before it may be
// rendered.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3246 4 view 1 3046 16 prepared_objects 1 3111 3 gsg 1 3112
1174 14 Dtool_qQJqRUGo 0 6 1107 3046 0 14 Dtool_qQJqRUGo 310 ////////////////////////////////////////////////////////////////////
// Function: Texture::up_to_power_2
// Access: Published, Static
// Description: Returns the smallest power of 2 greater than or equal
// to value.
//////////////////////////////////////////////////////////////////// 1 5 value 1 3046
1175 14 Dtool_qQJqO34N 0 6 1108 3046 0 14 Dtool_qQJqO34N 308 ////////////////////////////////////////////////////////////////////
// Function: Texture::down_to_power_2
// Access: Published, Static
// Description: Returns the largest power of 2 less than or equal
// to value.
//////////////////////////////////////////////////////////////////// 1 5 value 1 3046
1176 14 Dtool_qQJq2TNp 0 4 1109 3042 0 14 Dtool_qQJq2TNp 782 ////////////////////////////////////////////////////////////////////
// Function: Texture::consider_rescale
// Access: Published
// Description: Asks the PNMImage to change its scale when it reads
// the image, according to the whims of the Config.prc
// file.
//
// For most efficient results, this method should be
// called after pnmimage.read_header() has been called,
// but before pnmimage.read(). This method may also be
// called after pnmimage.read(), i.e. when the pnmimage
// is already loaded; in this case it will rescale the
// image on the spot. Also see rescale_texture().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3246 8 pnmimage 1 3265
1177 14 Dtool_qQJqCZYI 0 4 1109 3042 0 14 Dtool_qQJqCZYI 790 ////////////////////////////////////////////////////////////////////
// Function: Texture::consider_rescale
// Access: Published, Static
// Description: Asks the PNMImage to change its scale when it reads
// the image, according to the whims of the Config.prc
// file.
//
// For most efficient results, this method should be
// called after pnmimage.read_header() has been called,
// but before pnmimage.read(). This method may also be
// called after pnmimage.read(), i.e. when the pnmimage
// is already loaded; in this case it will rescale the
// image on the spot. Also see rescale_texture().
//////////////////////////////////////////////////////////////////// 3 8 pnmimage 1 3265 4 name 1 3037 18 auto_texture_scale 1 3273
1178 14 Dtool_qQJqt_Or 0 4 1109 3042 0 14 Dtool_qQJqt_Or 790 ////////////////////////////////////////////////////////////////////
// Function: Texture::consider_rescale
// Access: Published, Static
// Description: Asks the PNMImage to change its scale when it reads
// the image, according to the whims of the Config.prc
// file.
//
// For most efficient results, this method should be
// called after pnmimage.read_header() has been called,
// but before pnmimage.read(). This method may also be
// called after pnmimage.read(), i.e. when the pnmimage
// is already loaded; in this case it will rescale the
// image on the spot. Also see rescale_texture().
//////////////////////////////////////////////////////////////////// 2 8 pnmimage 1 3265 4 name 1 3037
1179 14 Dtool_qQJqAcI4 0 6 1110 3043 0 14 Dtool_qQJqAcI4 711 ////////////////////////////////////////////////////////////////////
// Function: Texture::rescale_texture
// Access: Published
// Description: This method is similar to consider_rescale(), but
// instead of scaling a separate PNMImage, it will ask
// the Texture to rescale its own internal image to a
// power of 2, according to the config file
// requirements. This may be useful after loading a
// Texture image by hand, instead of reading it from a
// disk file. Returns true if the texture is changed,
// false if it was not.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3246
1180 14 Dtool_qQJqaQx8 0 6 1111 3037 0 14 Dtool_qQJqaQx8 314 ////////////////////////////////////////////////////////////////////
// Function: Texture::format_texture_type
// Access: Published, Static
// Description: Returns the indicated TextureType converted to a
// string word.
//////////////////////////////////////////////////////////////////// 1 2 tt 1 3002
1181 14 Dtool_qQJq_WYZ 0 6 1112 3002 0 14 Dtool_qQJq_WYZ 320 ////////////////////////////////////////////////////////////////////
// Function: Texture::string_texture_type
// Access: Published, Static
// Description: Returns the TextureType corresponding to the
// indicated string word.
//////////////////////////////////////////////////////////////////// 1 3 str 1 3037
1182 14 Dtool_qQJqpkXc 0 6 1113 3037 0 14 Dtool_qQJqpkXc 318 ////////////////////////////////////////////////////////////////////
// Function: Texture::format_component_type
// Access: Published, Static
// Description: Returns the indicated ComponentType converted to a
// string word.
//////////////////////////////////////////////////////////////////// 1 2 ct 1 3003
1183 14 Dtool_qQJqK8YF 0 6 1114 3003 0 14 Dtool_qQJqK8YF 324 ////////////////////////////////////////////////////////////////////
// Function: Texture::string_component_type
// Access: Published, Static
// Description: Returns the ComponentType corresponding to the
// indicated string word.
//////////////////////////////////////////////////////////////////// 1 3 str 1 3037
1184 14 Dtool_qQJqs0zV 0 6 1115 3037 0 14 Dtool_qQJqs0zV 303 ////////////////////////////////////////////////////////////////////
// Function: Texture::format_format
// Access: Published, Static
// Description: Returns the indicated Format converted to a
// string word.
//////////////////////////////////////////////////////////////////// 1 1 f 1 3004
1185 14 Dtool_qQJqW1Ht 0 6 1116 3004 0 14 Dtool_qQJqW1Ht 309 ////////////////////////////////////////////////////////////////////
// Function: Texture::string_format
// Access: Published, Static
// Description: Returns the Format corresponding to the
// indicated string word.
//////////////////////////////////////////////////////////////////// 1 3 str 1 3037
1186 14 Dtool_qQJq2Nj6 0 6 1117 3037 0 14 Dtool_qQJq2Nj6 312 ////////////////////////////////////////////////////////////////////
// Function: Texture::format_filter_type
// Access: Published, Static
// Description: Returns the indicated FilterType converted to a
// string word.
//////////////////////////////////////////////////////////////////// 1 2 ft 1 3005
1187 14 Dtool_qQJqS9la 0 6 1118 3005 0 14 Dtool_qQJqS9la 406 ////////////////////////////////////////////////////////////////////
// Function: Texture::string_filter_type
// Access: Public
// Description: Returns the FilterType value associated with the given
// string representation, or FT_invalid if the string
// does not match any known FilterType value.
//////////////////////////////////////////////////////////////////// 1 3 str 1 3037
1188 14 Dtool_qQJqHmVJ 0 6 1119 3037 0 14 Dtool_qQJqHmVJ 308 ////////////////////////////////////////////////////////////////////
// Function: Texture::format_wrap_mode
// Access: Published, Static
// Description: Returns the indicated WrapMode converted to a
// string word.
//////////////////////////////////////////////////////////////////// 1 2 wm 1 3006
1189 14 Dtool_qQJqyzim 0 6 1120 3006 0 14 Dtool_qQJqyzim 400 ////////////////////////////////////////////////////////////////////
// Function: Texture::string_wrap_mode
// Access: Public
// Description: Returns the WrapMode value associated with the given
// string representation, or WM_invalid if the string
// does not match any known WrapMode value.
//////////////////////////////////////////////////////////////////// 1 3 str 1 3037
1190 14 Dtool_qQJqBL3k 0 6 1121 3037 0 14 Dtool_qQJqBL3k 322 ////////////////////////////////////////////////////////////////////
// Function: Texture::format_compression_mode
// Access: Published, Static
// Description: Returns the indicated CompressionMode converted to a
// string word.
//////////////////////////////////////////////////////////////////// 1 2 cm 1 3007
1191 14 Dtool_qQJqCA1d 0 6 1122 3007 0 14 Dtool_qQJqCA1d 328 ////////////////////////////////////////////////////////////////////
// Function: Texture::string_compression_mode
// Access: Public
// Description: Returns the CompressionMode value associated with the
// given string representation.
//////////////////////////////////////////////////////////////////// 1 3 str 1 3037
1192 14 Dtool_qQJqgZEo 0 6 1123 3037 0 14 Dtool_qQJqgZEo 316 ////////////////////////////////////////////////////////////////////
// Function: Texture::format_quality_level
// Access: Published, Static
// Description: Returns the indicated QualityLevel converted to a
// string word.
//////////////////////////////////////////////////////////////////// 1 3 tql 1 3008
1193 14 Dtool_qQJqENGH 0 6 1124 3008 0 14 Dtool_qQJqENGH 322 ////////////////////////////////////////////////////////////////////
// Function: Texture::string_quality_level
// Access: Public
// Description: Returns the QualityLevel value associated with the
// given string representation.
//////////////////////////////////////////////////////////////////// 1 3 str 1 3037
1194 14 Dtool_qQJqoC2_ 0 7 1125 3058 0 14 Dtool_qQJqoC2_ 0 0
1195 14 Dtool_qQJqYako 0 7 917 3067 0 14 Dtool_qQJqYako 0 1 4 this 3 3246
1196 14 Dtool_qQJqc1xv 0 7 918 3246 2413 14 Dtool_qQJqc1xv 0 1 4 this 3 3067
1197 14 Dtool_qQJqOTYU 0 6 919 3078 0 14 Dtool_qQJqOTYU 0 1 4 this 3 3246
1198 14 Dtool_qQJqSRIH 0 7 920 3246 2413 14 Dtool_qQJqSRIH 0 1 4 this 3 3078
1199 14 Dtool_qQJqlkb4 0 7 1131 3278 0 14 Dtool_qQJqlkb4 261 ////////////////////////////////////////////////////////////////////
// Function: Shader::load
// Access: Published, Static
// Description: Loads the shader with the given filename.
//////////////////////////////////////////////////////////////////// 2 4 file 1 3249 4 lang 1 3010
1200 14 Dtool_qQJqJQge 0 7 1131 3278 0 14 Dtool_qQJqJQge 261 ////////////////////////////////////////////////////////////////////
// Function: Shader::load
// Access: Published, Static
// Description: Loads the shader with the given filename.
//////////////////////////////////////////////////////////////////// 1 4 file 1 3249
1201 14 Dtool_qQJqcNl2 0 7 1131 3278 0 14 Dtool_qQJqcNl2 303 ////////////////////////////////////////////////////////////////////
// Function: Shader::load
// Access: Published, Static
// Description: This variant of Shader::load loads all shader
// programs separately.
//////////////////////////////////////////////////////////////////// 6 4 lang 1 3010 6 vertex 1 3249 8 fragment 1 3249 8 geometry 1 3249 12 tess_control 1 3249 15 tess_evaluation 1 3249
1202 14 Dtool_qQJqBaKU 0 7 1131 3278 0 14 Dtool_qQJqBaKU 303 ////////////////////////////////////////////////////////////////////
// Function: Shader::load
// Access: Published, Static
// Description: This variant of Shader::load loads all shader
// programs separately.
//////////////////////////////////////////////////////////////////// 5 4 lang 1 3010 6 vertex 1 3249 8 fragment 1 3249 8 geometry 1 3249 12 tess_control 1 3249
1203 14 Dtool_qQJqHylL 0 7 1131 3278 0 14 Dtool_qQJqHylL 303 ////////////////////////////////////////////////////////////////////
// Function: Shader::load
// Access: Published, Static
// Description: This variant of Shader::load loads all shader
// programs separately.
//////////////////////////////////////////////////////////////////// 4 4 lang 1 3010 6 vertex 1 3249 8 fragment 1 3249 8 geometry 1 3249
1204 14 Dtool_qQJq7Ee5 0 7 1131 3278 0 14 Dtool_qQJq7Ee5 303 ////////////////////////////////////////////////////////////////////
// Function: Shader::load
// Access: Published, Static
// Description: This variant of Shader::load loads all shader
// programs separately.
//////////////////////////////////////////////////////////////////// 3 4 lang 1 3010 6 vertex 1 3249 8 fragment 1 3249
1205 14 Dtool_qQJqw3gG 0 7 1132 3278 0 14 Dtool_qQJqw3gG 277 //////////////////////////////////////////////////////////////////////
// Function: Shader::make
// Access: Published, Static
// Description: Loads the shader, using the strings as shader bodies.
////////////////////////////////////////////////////////////////////// 6 4 lang 1 3010 6 vertex 1 3037 8 fragment 1 3037 8 geometry 1 3037 12 tess_control 1 3037 15 tess_evaluation 1 3037
1206 14 Dtool_qQJqUIw1 0 7 1132 3278 0 14 Dtool_qQJqUIw1 277 //////////////////////////////////////////////////////////////////////
// Function: Shader::make
// Access: Published, Static
// Description: Loads the shader, using the strings as shader bodies.
////////////////////////////////////////////////////////////////////// 5 4 lang 1 3010 6 vertex 1 3037 8 fragment 1 3037 8 geometry 1 3037 12 tess_control 1 3037
1207 14 Dtool_qQJqXaSs 0 7 1132 3278 0 14 Dtool_qQJqXaSs 277 //////////////////////////////////////////////////////////////////////
// Function: Shader::make
// Access: Published, Static
// Description: Loads the shader, using the strings as shader bodies.
////////////////////////////////////////////////////////////////////// 4 4 lang 1 3010 6 vertex 1 3037 8 fragment 1 3037 8 geometry 1 3037
1208 14 Dtool_qQJqTwTL 0 7 1132 3278 0 14 Dtool_qQJqTwTL 277 //////////////////////////////////////////////////////////////////////
// Function: Shader::make
// Access: Published, Static
// Description: Loads the shader, using the strings as shader bodies.
////////////////////////////////////////////////////////////////////// 3 4 lang 1 3010 6 vertex 1 3037 8 fragment 1 3037
1209 14 Dtool_qQJq8uJm 0 7 1132 3278 0 14 Dtool_qQJq8uJm 274 //////////////////////////////////////////////////////////////////////
// Function: Shader::make
// Access: Published, Static
// Description: Loads the shader, using the string as shader body.
////////////////////////////////////////////////////////////////////// 2 4 body 1 3037 4 lang 1 3010
1210 14 Dtool_qQJqZPVQ 0 7 1132 3278 0 14 Dtool_qQJqZPVQ 274 //////////////////////////////////////////////////////////////////////
// Function: Shader::make
// Access: Published, Static
// Description: Loads the shader, using the string as shader body.
////////////////////////////////////////////////////////////////////// 1 4 body 1 3037
1211 14 Dtool_qQJqZRki 0 7 1133 3278 0 14 Dtool_qQJqZRki 251 ////////////////////////////////////////////////////////////////////
// Function: Shader::load_compute
// Access: Published, Static
// Description: Loads a compute shader.
//////////////////////////////////////////////////////////////////// 2 4 lang 1 3010 2 fn 1 3249
1212 14 Dtool_qQJq60Ve 0 7 1134 3278 0 14 Dtool_qQJq60Ve 279 //////////////////////////////////////////////////////////////////////
// Function: Shader::make_compute
// Access: Published, Static
// Description: Loads the compute shader from the given string.
////////////////////////////////////////////////////////////////////// 2 4 lang 1 3010 4 body 1 3037
1213 14 Dtool_qQJqz0qU 0 7 1135 3249 0 14 Dtool_qQJqz0qU 815 // Filename: shader.I
// Heavily Modified: jyelon (Sep05)
// Updated by: fperazzi, PandaSE(06Apr10)
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Shader::get_filename
// Access: Public
// Description: Return the Shader's filename for the given shader
// type.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3279 4 type 1 3011
1214 14 Dtool_qQJqlNEW 0 7 1135 3249 0 14 Dtool_qQJqlNEW 815 // Filename: shader.I
// Heavily Modified: jyelon (Sep05)
// Updated by: fperazzi, PandaSE(06Apr10)
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Shader::get_filename
// Access: Public
// Description: Return the Shader's filename for the given shader
// type.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3279
1215 14 Dtool_qQJq_cue 0 6 1136 3037 0 14 Dtool_qQJq_cue 264 ////////////////////////////////////////////////////////////////////
// Function: Shader::get_text
// Access: Public
// Description: Return the Shader's text for the given shader type.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3279 4 type 1 3011
1216 14 Dtool_qQJqdfN0 0 6 1136 3037 0 14 Dtool_qQJqdfN0 264 ////////////////////////////////////////////////////////////////////
// Function: Shader::get_text
// Access: Public
// Description: Return the Shader's text for the given shader type.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3279
1217 14 Dtool_qQJqcUW2 0 6 1137 3043 0 14 Dtool_qQJqcUW2 399 ////////////////////////////////////////////////////////////////////
// Function: Shader::get_error_flag
// Access: Public
// Description: Returns true if the shader contains a compile-time
// error. This doesn't tell you whether or not the
// shader is supported on the current video card.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3279
1218 14 Dtool_qQJqXpMn 0 6 1138 3010 0 14 Dtool_qQJqXpMn 298 ////////////////////////////////////////////////////////////////////
// Function: Shader::get_language
// Access: Published
// Description: Returns the shader language in which this shader
// was written.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3279
1219 14 Dtool_qQJqhnk1 0 6 1139 2966 0 14 Dtool_qQJqhnk1 510 ////////////////////////////////////////////////////////////////////
// Function: Shader::get_shader_utilization
// Access: Published, Static
// Description: This flag returns SUT_none, SUT_basic, or
// SUT_advanced and controls the automatic generation
// of shaders. It is initialized from the config
// variable of the same name, but it can be
// subsequently adjusted.
//////////////////////////////////////////////////////////////////// 0
1220 14 Dtool_qQJqlu7c 0 4 1140 3042 0 14 Dtool_qQJqlu7c 382 ////////////////////////////////////////////////////////////////////
// Function: Shader::set_shader_utilization
// Access: Published, Static
// Description: Set this flag to SUT_none, SUT_basic, or
// SUT_advanced to limit panda's automatic shader
// generation facilities.
//////////////////////////////////////////////////////////////////// 1 3 utl 1 2966
1221 14 Dtool_qQJqlvLD 0 6 1141 3043 0 14 Dtool_qQJqlvLD 460 ////////////////////////////////////////////////////////////////////
// Function: Shader::have_shader_utilization
// Access: Published, Static
// Description: If true, then get_shader_utilization has been
// set using set_shader_utilization.
// If false, then get_shader_utilization simply
// returns the config variable of the same name.
//////////////////////////////////////////////////////////////////// 0
1222 14 Dtool_qQJq_Ayr 0 4 1142 3042 0 14 Dtool_qQJq_Ayr 653 ////////////////////////////////////////////////////////////////////
// Function: Shader::prepare
// Access: Published
// Description: Indicates that the shader should be enqueued to be
// prepared in the indicated prepared_objects at the
// beginning of the next frame. This will ensure the
// texture is already loaded into texture memory if it
// is expected to be rendered soon.
//
// Use this function instead of prepare_now() to preload
// textures from a user interface standpoint.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3278 16 prepared_objects 1 3111
1223 14 Dtool_qQJq5KiR 0 6 1143 3043 0 14 Dtool_qQJq5KiR 372 ////////////////////////////////////////////////////////////////////
// Function: Shader::is_prepared
// Access: Published
// Description: Returns true if the shader has already been prepared
// or enqueued for preparation on the indicated GSG,
// false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3279 16 prepared_objects 1 3111
1224 14 Dtool_qQJqnXbA 0 6 1144 3043 0 14 Dtool_qQJqnXbA 393 ////////////////////////////////////////////////////////////////////
// Function: Shader::release
// Access: Published
// Description: Frees the texture context only on the indicated object,
// if it exists there. Returns true if it was released,
// false if it had not been prepared.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3278 16 prepared_objects 1 3111
1225 14 Dtool_qQJqr_x5 0 6 1145 3046 0 14 Dtool_qQJqr_x5 391 ////////////////////////////////////////////////////////////////////
// Function: Shader::release_all
// Access: Published
// Description: Frees the context allocated on all objects for which
// the texture has been declared. Returns the number of
// contexts which have been freed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3278
1226 14 Dtool_qQJqLkrK 0 6 1146 3281 0 14 Dtool_qQJqLkrK 885 ////////////////////////////////////////////////////////////////////
// Function: Shader::prepare_now
// Access: Published
// Description: Creates a context for the shader on the particular
// GSG, if it does not already exist. Returns the new
// (or old) ShaderContext. This assumes that the
// GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// textures. If this is not necessarily the case, you
// should use prepare() instead.
//
// Normally, this is not called directly except by the
// GraphicsStateGuardian; a shader does not need to be
// explicitly prepared by the user before it may be
// rendered.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3278 16 prepared_objects 1 3111 3 gsg 1 3112
1227 14 Dtool_qQJqshVA 0 7 1147 3058 0 14 Dtool_qQJqshVA 0 0
1228 14 Dtool_qQJqYQCx 0 6 1149 3037 0 14 Dtool_qQJqYQCx 913 // Filename: preparedGraphicsObjects.I
// Created by: drose (23Feb04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_name
// Access: Public
// Description: Returns the name of the PreparedGraphicsObjects
// structure. This is an arbitrary name that serves
// mainly to uniquify the context for PStats reporting.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1229 14 Dtool_qQJqrCqr 0 4 1150 3042 0 14 Dtool_qQJqrCqr 873 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::set_graphics_memory_limit
// Access: Public
// Description: Sets an artificial cap on graphics memory that
// will be imposed on this GSG.
//
// This limits the total amount of graphics memory,
// including texture memory and vertex buffer memory,
// that will be consumed by the GSG, regardless of
// whether the hardware claims to provide more graphics
// memory than this. It is useful to put a ceiling on
// graphics memory consumed, since some drivers seem to
// allow the application to consume more memory than the
// hardware can realistically support.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 5 limit 1 3038
1230 14 Dtool_qQJqHVn7 0 6 1151 3038 0 14 Dtool_qQJqHVn7 394 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_graphics_memory_limit
// Access: Public
// Description: Returns the artificial cap on graphics memory that
// will be imposed on this GSG. See
// set_graphics_memory_limit().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1231 14 Dtool_qQJq7kCt 0 4 1152 3042 0 14 Dtool_qQJq7kCt 393 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::show_graphics_memory_lru
// Access: Public
// Description: Writes to the indicated ostream a report of how the
// various textures and vertex buffers are allocated in
// the LRU.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3282 3 out 1 3044
1232 14 Dtool_qQJq_dtz 0 4 1153 3042 0 14 Dtool_qQJq_dtz 392 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::show_residency_trackers
// Access: Public
// Description: Writes to the indicated ostream a report of how the
// various textures and vertex buffers are allocated in
// the LRU.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3282 3 out 1 3044
1233 14 Dtool_qQJqPjRE 0 4 1154 3042 0 14 Dtool_qQJqPjRE 284 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_all
// Access: Public
// Description: Releases all prepared objects of all kinds at once.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3111
1234 14 Dtool_qQJqd65a 0 6 1155 3046 0 14 Dtool_qQJqd65a 346 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_queued
// Access: Public
// Description: Returns the number of objects of any kind that have
// been enqueued to be prepared on this GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1235 14 Dtool_qQJqHyvR 0 6 1156 3046 0 14 Dtool_qQJqHyvR 341 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_prepared
// Access: Public
// Description: Returns the number of objects of any kind that have
// already been prepared on this GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1236 14 Dtool_qQJqNPdY 0 4 1157 3042 0 14 Dtool_qQJqNPdY 413 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::enqueue_texture
// Access: Public
// Description: Indicates that a texture would like to be put on the
// list to be prepared when the GSG is next ready to
// do this (presumably at the next frame).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 3 tex 1 3246
1237 14 Dtool_qQJqoYyp 0 6 1158 3043 0 14 Dtool_qQJqoYyp 329 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_texture_queued
// Access: Public
// Description: Returns true if the texture has been queued on this
// GSG, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3282 3 tex 1 3247
1238 14 Dtool_qQJqg8Go 0 6 1159 3043 0 14 Dtool_qQJqg8Go 733 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::dequeue_texture
// Access: Public
// Description: Removes a texture from the queued list of textures to
// be prepared. Normally it is not necessary to call
// this, unless you change your mind about preparing it
// at the last minute, since the texture will
// automatically be dequeued and prepared at the next
// frame.
//
// The return value is true if the texture is
// successfully dequeued, false if it had not been
// queued.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 3 tex 1 3246
1239 14 Dtool_qQJqQPDT 0 6 1160 3043 0 14 Dtool_qQJqQPDT 333 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_texture_prepared
// Access: Public
// Description: Returns true if the texture has been prepared on
// this GSG, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3282 3 tex 1 3247
1240 14 Dtool_qQJqeQq5 0 4 1161 3042 0 14 Dtool_qQJqeQq5 347 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_texture
// Access: Public
// Description: Releases a texture if it has already been prepared,
// or removes it from the preparation queue.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 3 tex 1 3246
1241 14 Dtool_qQJqdS7O 0 4 1161 3042 0 14 Dtool_qQJqdS7O 822 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_texture
// Access: Public
// Description: Indicates that a texture context, created by a
// previous call to prepare_texture(), is no longer
// needed. The driver resources will not be freed until
// some GSG calls update(), indicating it is at a
// stage where it is ready to release textures--this
// prevents conflicts from threading or multiple GSG's
// sharing textures (we have no way of knowing which
// graphics context is currently active, or what state
// it's in, at the time release_texture is called).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 2 tc 1 3277
1242 14 Dtool_qQJquR_j 0 6 1162 3046 0 14 Dtool_qQJquR_j 460 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_all_textures
// Access: Public
// Description: Releases all textures at once. This will force them
// to be reloaded into texture memory for all GSG's that
// share this object. Returns the number of textures
// released.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3111
1243 14 Dtool_qQJqICur 0 6 1163 3046 0 14 Dtool_qQJqICur 344 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_queued_textures
// Access: Public
// Description: Returns the number of textures that have been
// enqueued to be prepared on this GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1244 14 Dtool_qQJqXCZH 0 6 1164 3046 0 14 Dtool_qQJqXCZH 339 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_prepared_textures
// Access: Public
// Description: Returns the number of textures that have already been
// prepared on this GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1245 14 Dtool_qQJqZBOa 0 6 1165 3277 0 14 Dtool_qQJqZBOa 1165 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::prepare_texture_now
// Access: Public
// Description: Immediately creates a new TextureContext for the
// indicated texture and returns it. This assumes that
// the GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// textures. If this is not necessarily the case, you
// should use enqueue_texture() instead.
//
// Normally, this function is not called directly. Call
// Texture::prepare_now() instead.
//
// The TextureContext contains all of the pertinent
// information needed by the GSG to keep track of this
// one particular texture, and will exist as long as the
// texture is ready to be rendered.
//
// When either the Texture or the
// PreparedGraphicsObjects object destructs, the
// TextureContext will be deleted.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3111 3 tex 1 3246 4 view 1 3046 3 gsg 1 3112
1246 14 Dtool_qQJq2FRy 0 4 1166 3042 0 14 Dtool_qQJq2FRy 407 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::enqueue_geom
// Access: Public
// Description: Indicates that a geom would like to be put on the
// list to be prepared when the GSG is next ready to
// do this (presumably at the next frame).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 4 geom 1 3181
1247 14 Dtool_qQJqTyPQ 0 6 1167 3043 0 14 Dtool_qQJqTyPQ 323 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_geom_queued
// Access: Public
// Description: Returns true if the geom has been queued on this
// GSG, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3282 4 geom 1 3182
1248 14 Dtool_qQJqYS6B 0 6 1168 3043 0 14 Dtool_qQJqYS6B 718 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::dequeue_geom
// Access: Public
// Description: Removes a geom from the queued list of geoms to
// be prepared. Normally it is not necessary to call
// this, unless you change your mind about preparing it
// at the last minute, since the geom will
// automatically be dequeued and prepared at the next
// frame.
//
// The return value is true if the geom is
// successfully dequeued, false if it had not been
// queued.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 4 geom 1 3181
1249 14 Dtool_qQJqRZ4p 0 6 1169 3043 0 14 Dtool_qQJqRZ4p 336 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_geom_prepared
// Access: Public
// Description: Returns true if the vertex buffer has been prepared on
// this GSG, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3282 4 geom 1 3182
1250 14 Dtool_qQJqEwwc 0 4 1170 3042 0 14 Dtool_qQJqEwwc 804 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_geom
// Access: Public
// Description: Indicates that a geom context, created by a
// previous call to prepare_geom(), is no longer
// needed. The driver resources will not be freed until
// some GSG calls update(), indicating it is at a
// stage where it is ready to release geoms--this
// prevents conflicts from threading or multiple GSG's
// sharing geoms (we have no way of knowing which
// graphics context is currently active, or what state
// it's in, at the time release_geom is called).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 2 gc 1 3188
1251 14 Dtool_qQJqXAXg 0 6 1171 3046 0 14 Dtool_qQJqXAXg 448 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_all_geoms
// Access: Public
// Description: Releases all geoms at once. This will force them
// to be reloaded into geom memory for all GSG's that
// share this object. Returns the number of geoms
// released.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3111
1252 14 Dtool_qQJqju5r 0 6 1172 3046 0 14 Dtool_qQJqju5r 338 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_queued_geoms
// Access: Public
// Description: Returns the number of geoms that have been
// enqueued to be prepared on this GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1253 14 Dtool_qQJqlNOP 0 6 1173 3046 0 14 Dtool_qQJqlNOP 333 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_prepared_geoms
// Access: Public
// Description: Returns the number of geoms that have already been
// prepared on this GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1254 14 Dtool_qQJqWiMo 0 6 1174 3188 0 14 Dtool_qQJqWiMo 1132 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::prepare_geom_now
// Access: Public
// Description: Immediately creates a new GeomContext for the
// indicated geom and returns it. This assumes that
// the GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// geoms. If this is not necessarily the case, you
// should use enqueue_geom() instead.
//
// Normally, this function is not called directly. Call
// Geom::prepare_now() instead.
//
// The GeomContext contains all of the pertinent
// information needed by the GSG to keep track of this
// one particular geom, and will exist as long as the
// geom is ready to be rendered.
//
// When either the Geom or the
// PreparedGraphicsObjects object destructs, the
// GeomContext will be deleted.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3111 4 geom 1 3181 3 gsg 1 3112
1255 14 Dtool_qQJqh4uF 0 4 1175 3042 0 14 Dtool_qQJqh4uF 411 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::enqueue_shader
// Access: Public
// Description: Indicates that a shader would like to be put on the
// list to be prepared when the GSG is next ready to
// do this (presumably at the next frame).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 6 shader 1 3278
1256 14 Dtool_qQJqDjcB 0 6 1176 3043 0 14 Dtool_qQJqDjcB 327 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_shader_queued
// Access: Public
// Description: Returns true if the shader has been queued on this
// GSG, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3282 6 shader 1 3279
1257 14 Dtool_qQJqCMYV 0 6 1177 3043 0 14 Dtool_qQJqCMYV 728 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::dequeue_shader
// Access: Public
// Description: Removes a shader from the queued list of shaders to
// be prepared. Normally it is not necessary to call
// this, unless you change your mind about preparing it
// at the last minute, since the shader will
// automatically be dequeued and prepared at the next
// frame.
//
// The return value is true if the shader is
// successfully dequeued, false if it had not been
// queued.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 6 shader 1 3278
1258 14 Dtool_qQJqaDD4 0 6 1178 3043 0 14 Dtool_qQJqaDD4 331 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_shader_prepared
// Access: Public
// Description: Returns true if the shader has been prepared on
// this GSG, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3282 6 shader 1 3279
1259 14 Dtool_qQJqz1gv 0 4 1179 3042 0 14 Dtool_qQJqz1gv 816 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_shader
// Access: Public
// Description: Indicates that a shader context, created by a
// previous call to prepare_shader(), is no longer
// needed. The driver resources will not be freed until
// some GSG calls update(), indicating it is at a
// stage where it is ready to release shaders--this
// prevents conflicts from threading or multiple GSG's
// sharing shaders (we have no way of knowing which
// graphics context is currently active, or what state
// it's in, at the time release_shader is called).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 2 sc 1 3281
1260 14 Dtool_qQJqw9cE 0 6 1180 3046 0 14 Dtool_qQJqw9cE 456 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_all_shaders
// Access: Public
// Description: Releases all shaders at once. This will force them
// to be reloaded into shader memory for all GSG's that
// share this object. Returns the number of shaders
// released.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3111
1261 14 Dtool_qQJqsW_l 0 6 1181 3046 0 14 Dtool_qQJqsW_l 342 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_queued_shaders
// Access: Public
// Description: Returns the number of shaders that have been
// enqueued to be prepared on this GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1262 14 Dtool_qQJqJ4b8 0 6 1182 3046 0 14 Dtool_qQJqJ4b8 337 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_prepared_shaders
// Access: Public
// Description: Returns the number of shaders that have already been
// prepared on this GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1263 14 Dtool_qQJqtzQ6 0 6 1183 3281 0 14 Dtool_qQJqtzQ6 1154 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::prepare_shader_now
// Access: Public
// Description: Immediately creates a new ShaderContext for the
// indicated shader and returns it. This assumes that
// the GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// shaders. If this is not necessarily the case, you
// should use enqueue_shader() instead.
//
// Normally, this function is not called directly. Call
// Shader::prepare_now() instead.
//
// The ShaderContext contains all of the pertinent
// information needed by the GSG to keep track of this
// one particular shader, and will exist as long as the
// shader is ready to be rendered.
//
// When either the Shader or the
// PreparedGraphicsObjects object destructs, the
// ShaderContext will be deleted.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3111 6 shader 1 3278 3 gsg 1 3112
1264 14 Dtool_qQJqu6up 0 4 1184 3042 0 14 Dtool_qQJqu6up 418 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::enqueue_vertex_buffer
// Access: Public
// Description: Indicates that a buffer would like to be put on the
// list to be prepared when the GSG is next ready to
// do this (presumably at the next frame).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 4 data 1 3103
1265 14 Dtool_qQJqquoX 0 6 1185 3043 0 14 Dtool_qQJqquoX 341 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_vertex_buffer_queued
// Access: Public
// Description: Returns true if the vertex buffer has been queued on
// this GSG, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3282 4 data 1 3065
1266 14 Dtool_qQJqLJX5 0 6 1186 3043 0 14 Dtool_qQJqLJX5 737 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::dequeue_vertex_buffer
// Access: Public
// Description: Removes a buffer from the queued list of data
// arrays to be prepared. Normally it is not necessary
// to call this, unless you change your mind about
// preparing it at the last minute, since the data will
// automatically be dequeued and prepared at the next
// frame.
//
// The return value is true if the buffer is
// successfully dequeued, false if it had not been
// queued.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 4 data 1 3103
1267 14 Dtool_qQJqk_iN 0 6 1187 3043 0 14 Dtool_qQJqk_iN 345 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_vertex_buffer_prepared
// Access: Public
// Description: Returns true if the vertex buffer has been prepared on
// this GSG, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3282 4 data 1 3065
1268 14 Dtool_qQJqG_cY 0 4 1188 3042 0 14 Dtool_qQJqG_cY 831 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_vertex_buffer
// Access: Public
// Description: Indicates that a data context, created by a
// previous call to prepare_vertex_buffer(), is no longer
// needed. The driver resources will not be freed until
// some GSG calls update(), indicating it is at a
// stage where it is ready to release datas--this
// prevents conflicts from threading or multiple GSG's
// sharing datas (we have no way of knowing which
// graphics context is currently active, or what state
// it's in, at the time release_vertex_buffer is called).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 3 vbc 1 3114
1269 14 Dtool_qQJqVTDu 0 6 1189 3046 0 14 Dtool_qQJqVTDu 457 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_all_vertex_buffers
// Access: Public
// Description: Releases all datas at once. This will force them
// to be reloaded into data memory for all GSG's that
// share this object. Returns the number of datas
// released.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3111
1270 14 Dtool_qQJqfJRJ 0 6 1190 3046 0 14 Dtool_qQJqfJRJ 356 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_queued_vertex_buffers
// Access: Public
// Description: Returns the number of vertex buffers that have been
// enqueued to be prepared on this GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1271 14 Dtool_qQJqJAM0 0 6 1191 3046 0 14 Dtool_qQJqJAM0 351 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_prepared_vertex_buffers
// Access: Public
// Description: Returns the number of vertex buffers that have
// already been prepared on this GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1272 14 Dtool_qQJqaZFQ 0 6 1192 3114 0 14 Dtool_qQJqaZFQ 1174 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::prepare_vertex_buffer_now
// Access: Public
// Description: Immediately creates a new VertexBufferContext for the
// indicated data and returns it. This assumes that
// the GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// datas. If this is not necessarily the case, you
// should use enqueue_vertex_buffer() instead.
//
// Normally, this function is not called directly. Call
// Data::prepare_now() instead.
//
// The VertexBufferContext contains all of the pertinent
// information needed by the GSG to keep track of this
// one particular data, and will exist as long as the
// data is ready to be rendered.
//
// When either the Data or the
// PreparedGraphicsObjects object destructs, the
// VertexBufferContext will be deleted.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3111 4 data 1 3103 3 gsg 1 3112
1273 14 Dtool_qQJqZjaO 0 4 1193 3042 0 14 Dtool_qQJqZjaO 417 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::enqueue_index_buffer
// Access: Public
// Description: Indicates that a buffer would like to be put on the
// list to be prepared when the GSG is next ready to
// do this (presumably at the next frame).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 4 data 1 3170
1274 14 Dtool_qQJqT7He 0 6 1194 3043 0 14 Dtool_qQJqT7He 339 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_index_buffer_queued
// Access: Public
// Description: Returns true if the index buffer has been queued on
// this GSG, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3282 4 data 1 3171
1275 14 Dtool_qQJq63Fe 0 6 1195 3043 0 14 Dtool_qQJq63Fe 736 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::dequeue_index_buffer
// Access: Public
// Description: Removes a buffer from the queued list of data
// arrays to be prepared. Normally it is not necessary
// to call this, unless you change your mind about
// preparing it at the last minute, since the data will
// automatically be dequeued and prepared at the next
// frame.
//
// The return value is true if the buffer is
// successfully dequeued, false if it had not been
// queued.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 4 data 1 3170
1276 14 Dtool_qQJqgEBh 0 6 1196 3043 0 14 Dtool_qQJqgEBh 343 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::is_index_buffer_prepared
// Access: Public
// Description: Returns true if the index buffer has been prepared on
// this GSG, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3282 4 data 1 3171
1277 14 Dtool_qQJqZTVa 0 4 1197 3042 0 14 Dtool_qQJqZTVa 828 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_index_buffer
// Access: Public
// Description: Indicates that a data context, created by a
// previous call to prepare_index_buffer(), is no longer
// needed. The driver resources will not be freed until
// some GSG calls update(), indicating it is at a
// stage where it is ready to release datas--this
// prevents conflicts from threading or multiple GSG's
// sharing datas (we have no way of knowing which
// graphics context is currently active, or what state
// it's in, at the time release_index_buffer is called).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3111 3 ibc 1 3284
1278 14 Dtool_qQJq4P7Q 0 6 1198 3046 0 14 Dtool_qQJq4P7Q 456 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::release_all_index_buffers
// Access: Public
// Description: Releases all datas at once. This will force them
// to be reloaded into data memory for all GSG's that
// share this object. Returns the number of datas
// released.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3111
1279 14 Dtool_qQJquvlm 0 6 1199 3046 0 14 Dtool_qQJquvlm 354 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_queued_index_buffers
// Access: Public
// Description: Returns the number of index buffers that have been
// enqueued to be prepared on this GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1280 14 Dtool_qQJqkjD_ 0 6 1200 3046 0 14 Dtool_qQJqkjD_ 349 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::get_num_prepared_index_buffers
// Access: Public
// Description: Returns the number of index buffers that have
// already been prepared on this GSG.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3282
1281 14 Dtool_qQJqgeRQ 0 6 1201 3284 0 14 Dtool_qQJqgeRQ 1169 ////////////////////////////////////////////////////////////////////
// Function: PreparedGraphicsObjects::prepare_index_buffer_now
// Access: Public
// Description: Immediately creates a new IndexBufferContext for the
// indicated data and returns it. This assumes that
// the GraphicsStateGuardian is the currently active
// rendering context and that it is ready to accept new
// datas. If this is not necessarily the case, you
// should use enqueue_index_buffer() instead.
//
// Normally, this function is not called directly. Call
// Data::prepare_now() instead.
//
// The IndexBufferContext contains all of the pertinent
// information needed by the GSG to keep track of this
// one particular data, and will exist as long as the
// data is ready to be rendered.
//
// When either the Data or the
// PreparedGraphicsObjects object destructs, the
// IndexBufferContext will be deleted.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3111 4 data 1 3170 3 gsg 1 3112
1282 14 Dtool_qQJqYwcR 0 7 1207 3170 2069 14 Dtool_qQJqYwcR 299 ////////////////////////////////////////////////////////////////////
// Function: IndexBufferContext::get_data
// Access: Public
// Description: Returns the pointer to the client-side array data
// object.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3285
1283 14 Dtool_qQJqLghl 0 6 1208 3043 0 14 Dtool_qQJqLghl 333 ////////////////////////////////////////////////////////////////////
// Function: IndexBufferContext::changed_size
// Access: Public
// Description: Returns true if the data has changed size since the
// last time mark_loaded() was called.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3285 6 reader 1 3287
1284 14 Dtool_qQJqz_JI 0 6 1209 3043 0 14 Dtool_qQJqz_JI 349 ////////////////////////////////////////////////////////////////////
// Function: IndexBufferContext::changed_usage_hint
// Access: Public
// Description: Returns true if the data has changed its usage hint
// since the last time mark_loaded() was called.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3285 6 reader 1 3287
1285 14 Dtool_qQJqkpYP 0 6 1210 3043 0 14 Dtool_qQJqkpYP 334 ////////////////////////////////////////////////////////////////////
// Function: IndexBufferContext::was_modified
// Access: Public
// Description: Returns true if the data has been modified since the
// last time mark_loaded() was called.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3285 6 reader 1 3287
1286 14 Dtool_qQJqR3r5 0 7 1211 3058 0 14 Dtool_qQJqR3r5 0 0
1287 14 Dtool_qQJqSySx 0 6 1203 3168 0 14 Dtool_qQJqSySx 0 1 4 this 3 3284
1288 14 Dtool_qQJqLVke 0 6 1204 3284 0 14 Dtool_qQJqLVke 0 1 4 this 3 3168
1289 14 Dtool_qQJqC0d6 0 6 1205 3050 0 14 Dtool_qQJqC0d6 0 1 4 this 3 3284
1290 14 Dtool_qQJq5yF6 0 6 1206 3284 0 14 Dtool_qQJq5yF6 0 1 4 this 3 3050
1291 14 Dtool_qQJqg23I 0 7 1215 3292 2757 14 Dtool_qQJqg23I 0 1 4 this 3 3290
1292 14 Dtool_qQJqFXAo 0 6 1216 3043 0 14 Dtool_qQJqFXAo 1266 // Filename: lens.I
// Created by: drose (29Nov01)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Lens::extrude
// Access: Published
// Description: Given a 2-d point in the range (-1,1) in both
// dimensions, where (0,0) is the center of the
// lens and (-1,-1) is the lower-left corner,
// compute the corresponding vector in space that maps
// to this point, if such a vector can be determined.
// The vector is returned by indicating the points on
// the near plane and far plane that both map to the
// indicated 2-d point.
//
// Returns true if the vector is defined, or false
// otherwise.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3290 7 point2d 1 3293 10 near_point 1 3137 9 far_point 1 3137
1293 14 Dtool_qQJqVxUo 0 6 1216 3043 0 14 Dtool_qQJqVxUo 852 ////////////////////////////////////////////////////////////////////
// Function: Lens::extrude
// Access: Published
// Description: Given a 2-d point in the range (-1,1) in both
// dimensions, where (0,0) is the center of the
// lens and (-1,-1) is the lower-left corner,
// compute the corresponding vector in space that maps
// to this point, if such a vector can be determined.
// The vector is returned by indicating the points on
// the near plane and far plane that both map to the
// indicated 2-d point.
//
// The z coordinate of the 2-d point is ignored.
//
// Returns true if the vector is defined, or false
// otherwise.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3290 7 point2d 1 3296 10 near_point 1 3137 9 far_point 1 3137
1294 14 Dtool_qQJqQ_S_ 0 6 1217 3043 0 14 Dtool_qQJqQ_S_ 528 ////////////////////////////////////////////////////////////////////
// Function: Lens::extrude_depth
// Access: Published
// Description: Uses the depth component of the 3-d result from
// project() to compute the original point in 3-d space
// corresponding to a particular point on the lens.
// This exactly reverses project(), assuming the point
// does fall legitimately within the lens.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3290 7 point2d 1 3296 7 point3d 1 3137
1295 14 Dtool_qQJqB8vq 0 6 1218 3043 0 14 Dtool_qQJqB8vq 885 ////////////////////////////////////////////////////////////////////
// Function: Lens::extrude_vec
// Access: Published
// Description: Given a 2-d point in the range (-1,1) in both
// dimensions, where (0,0) is the center of the
// lens and (-1,-1) is the lower-left corner,
// compute the vector that corresponds to the view
// direction. This will be parallel to the normal on
// the surface (the far plane) corresponding to the lens
// shape at this point.
//
// See the comment block on Lens::extrude_vec_impl() for
// a more in-depth comment on the meaning of this
// vector.
//
// Returns true if the vector is defined, or false
// otherwise.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3290 7 point2d 1 3293 5 vec3d 1 3145
1296 14 Dtool_qQJq6Owq 0 6 1218 3043 0 14 Dtool_qQJq6Owq 951 ////////////////////////////////////////////////////////////////////
// Function: Lens::extrude_vec
// Access: Published
// Description: Given a 2-d point in the range (-1,1) in both
// dimensions, where (0,0) is the center of the
// lens and (-1,-1) is the lower-left corner,
// compute the vector that corresponds to the view
// direction. This will be parallel to the normal on
// the surface (the far plane) corresponding to the lens
// shape at this point.
//
// See the comment block on Lens::extrude_vec_impl() for
// a more in-depth comment on the meaning of this
// vector.
//
// The z coordinate of the 2-d point is ignored.
//
// Returns true if the vector is defined, or false
// otherwise.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3290 7 point2d 1 3296 5 vec3d 1 3145
1297 14 Dtool_qQJqy6hM 0 6 1219 3043 0 14 Dtool_qQJqy6hM 769 ////////////////////////////////////////////////////////////////////
// Function: Lens::project
// Access: Published
// Description: Given a 3-d point in space, determine the 2-d point
// this maps to, in the range (-1,1) in both dimensions,
// where (0,0) is the center of the lens and
// (-1,-1) is the lower-left corner.
//
// Returns true if the 3-d point is in front of the lens
// and within the viewing frustum (in which case point2d
// is filled in), or false otherwise (in which case
// point2d will be filled in with something, which may
// or may not be meaningful).
//////////////////////////////////////////////////////////////////// 3 4 this 3 3290 7 point3d 1 3296 7 point2d 1 3298
1298 14 Dtool_qQJqyFwN 0 6 1219 3043 0 14 Dtool_qQJqyFwN 980 ////////////////////////////////////////////////////////////////////
// Function: Lens::project
// Access: Published
// Description: Given a 3-d point in space, determine the 2-d point
// this maps to, in the range (-1,1) in both dimensions,
// where (0,0) is the center of the lens and
// (-1,-1) is the lower-left corner.
//
// The z coordinate will also be set to a value in the
// range (-1, 1), where 1 represents a point on the near
// plane, and -1 represents a point on the far plane.
//
// Returns true if the 3-d point is in front of the lens
// and within the viewing frustum (in which case point2d
// is filled in), or false otherwise (in which case
// point2d will be filled in with something, which may
// or may not be meaningful).
//////////////////////////////////////////////////////////////////// 3 4 this 3 3290 7 point3d 1 3296 7 point2d 1 3137
1299 14 Dtool_qQJqOGXC 0 4 1220 3042 0 14 Dtool_qQJqOGXC 643 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_change_event
// Access: Published
// Description: Sets the name of the event that will be generated
// whenever any properties of the Lens have
// changed. If this is not set for a particular lens,
// no event will be generated.
//
// The event is thrown with one parameter, the lens
// itself. This can be used to automatically track
// changes to camera fov, etc. in the application.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 5 event 1 3037
1300 14 Dtool_qQJqI_Ni 0 6 1221 3037 0 14 Dtool_qQJqI_Ni 370 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_change_event
// Access: Published
// Description: Returns the name of the event that will be generated
// whenever any properties of this particular Lens have
// changed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1301 14 Dtool_qQJq0iUE 0 4 1222 3042 0 14 Dtool_qQJq0iUE 385 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_coordinate_system
// Access: Published
// Description: Specifies the coordinate system that all 3-d
// computations are performed within for this
// Lens. Normally, this is CS_default.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 2 cs 1 3299
1302 14 Dtool_qQJqsmpX 0 6 1223 3299 0 14 Dtool_qQJqsmpX 383 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_coordinate_system
// Access: Published
// Description: Returns the coordinate system that all 3-d
// computations are performed within for this
// Lens. Normally, this is CS_default.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1303 14 Dtool_qQJqOuga 0 4 1224 3042 0 14 Dtool_qQJqOuga 289 ////////////////////////////////////////////////////////////////////
// Function: Lens::clear
// Access: Published
// Description: Resets all lens parameters to their initial default
// settings.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3292
1304 14 Dtool_qQJqkLtR 0 4 1225 3042 0 14 Dtool_qQJqkLtR 1181 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_film_size
// Access: Published
// Description: Sets the size and shape of the "film" within the
// lens. This both establishes the units used by
// calls like set_focal_length(), and establishes the
// aspect ratio of the frame.
//
// In a physical camera, the field of view of a lens is
// determined by the lens' focal length and by the size
// of the film area exposed by the lens. For instance,
// a 35mm camera exposes a rectangle on the film about
// 24mm x 36mm, which means a 50mm lens gives about a
// 40-degree horizontal field of view.
//
// In the virtual camera, you may set the film size to
// any units here, and specify a focal length in the
// same units to simulate the same effect. Or, you may
// ignore this parameter, and specify the field of view
// and aspect ratio of the lens directly.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 9 film_size 1 3215
1305 14 Dtool_qQJqlFkr 0 4 1225 3042 0 14 Dtool_qQJqlFkr 459 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_film_size
// Access: Published
// Description: Sets the horizontal size of the film without changing
// its shape. The aspect ratio remains unchanged; this
// computes the vertical size of the film to
// automatically maintain the aspect ratio.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 5 width 1 3047
1306 14 Dtool_qQJq0VW8 0 4 1225 3042 0 14 Dtool_qQJq0VW8 1181 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_film_size
// Access: Published
// Description: Sets the size and shape of the "film" within the
// lens. This both establishes the units used by
// calls like set_focal_length(), and establishes the
// aspect ratio of the frame.
//
// In a physical camera, the field of view of a lens is
// determined by the lens' focal length and by the size
// of the film area exposed by the lens. For instance,
// a 35mm camera exposes a rectangle on the film about
// 24mm x 36mm, which means a 50mm lens gives about a
// 40-degree horizontal field of view.
//
// In the virtual camera, you may set the film size to
// any units here, and specify a focal length in the
// same units to simulate the same effect. Or, you may
// ignore this parameter, and specify the field of view
// and aspect ratio of the lens directly.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3292 5 width 1 3047 6 height 1 3047
1307 14 Dtool_qQJqpaPJ 0 6 1226 3215 0 14 Dtool_qQJqpaPJ 324 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_film_size
// Access: Published
// Description: Returns the horizontal and vertical film size of
// the virtual film. See set_film_size().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1308 14 Dtool_qQJq54pC 0 4 1227 3042 0 14 Dtool_qQJq54pC 448 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_film_offset
// Access: Published
// Description: Sets the horizontal and vertical offset amounts of
// this Lens. These are both in the same units
// specified in set_film_size().
//
// This can be used to establish an off-axis lens.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 11 film_offset 1 3215
1309 14 Dtool_qQJqbcn6 0 4 1227 3042 0 14 Dtool_qQJqbcn6 448 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_film_offset
// Access: Published
// Description: Sets the horizontal and vertical offset amounts of
// this Lens. These are both in the same units
// specified in set_film_size().
//
// This can be used to establish an off-axis lens.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3292 1 x 1 3047 1 y 1 3047
1310 14 Dtool_qQJqY8t_ 0 6 1228 3300 0 14 Dtool_qQJqY8t_ 326 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_film_offset
// Access: Published
// Description: Returns the horizontal and vertical offset amounts of
// this Lens. See set_film_offset().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1311 14 Dtool_qQJqNiTK 0 4 1229 3042 0 14 Dtool_qQJqNiTK 515 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_focal_length
// Access: Published
// Description: Sets the focal length of the lens. This may adjust
// the field-of-view correspondingly, and is an
// alternate way to specify field of view.
//
// For certain kinds of lenses (e.g. OrthographicLens),
// the focal length has no meaning.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 12 focal_length 1 3047
1312 14 Dtool_qQJqaQhl 0 6 1230 3047 0 14 Dtool_qQJqaQhl 527 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_focal_length
// Access: Published
// Description: Returns the focal length of the lens. This may have
// been set explicitly by a previous call to
// set_focal_length(), or it may be computed based on
// the lens' fov and film_size. For certain kinds of
// lenses, the focal length has no meaning.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1313 14 Dtool_qQJqi1Mq 0 4 1231 3042 0 14 Dtool_qQJqi1Mq 836 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_min_fov
// Access: Published
// Description: Sets the field of view of the smallest dimension of
// the window. If the window is wider than it is tall,
// this specifies the vertical field of view; if it is
// taller than it is wide, this specifies the horizontal
// field of view.
//
// In many cases, this is preferable to setting either
// the horizontal or vertical field of view explicitly.
// Setting this parameter means that pulling the window
// wider will widen the field of view, which is usually
// what you expect to happen.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 7 min_fov 1 3047
1314 14 Dtool_qQJqTIxI 0 4 1232 3042 0 14 Dtool_qQJqTIxI 626 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_fov
// Access: Published
// Description: Sets the field of view of the lens in both
// dimensions. This establishes both the field of view
// and the aspect ratio of the lens. This is one way to
// specify the field of view of a lens;
// set_focal_length() is another way.
//
// For certain kinds of lenses (like OrthographicLens),
// the field of view has no meaning.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 3 fov 1 3215
1315 14 Dtool_qQJqZkJq 0 4 1232 3042 0 14 Dtool_qQJqZkJq 402 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_fov
// Access: Published
// Description: Sets the horizontal field of view of the lens without
// changing the aspect ratio. The vertical field of
// view is adjusted to maintain the same aspect ratio.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 3 fov 1 3047
1316 14 Dtool_qQJqwNaC 0 4 1232 3042 0 14 Dtool_qQJqwNaC 619 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_fov
// Access: Published
// Description: Sets the field of view of the lens in both
// dimensions. This establishes both the field of view
// and the aspect ratio of the lens. This is one way to
// specify the field of view of a lens;
// set_focal_length() is another way.
//
// For certain kinds of lenses (like OrthoLens),
// the field of view has no meaning.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3292 4 hfov 1 3047 4 vfov 1 3047
1317 14 Dtool_qQJqGTNq 0 6 1233 3215 0 14 Dtool_qQJqGTNq 312 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_fov
// Access: Published
// Description: Returns the horizontal and vertical film size of
// the virtual film. See set_fov().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1318 14 Dtool_qQJqFGjN 0 6 1234 3047 0 14 Dtool_qQJqFGjN 292 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_hfov
// Access: Published
// Description: Returns the horizontal component of fov only. See
// get_fov().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1319 14 Dtool_qQJq9tnO 0 6 1235 3047 0 14 Dtool_qQJq9tnO 290 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_vfov
// Access: Published
// Description: Returns the vertical component of fov only. See
// get_fov().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1320 14 Dtool_qQJquTcw 0 6 1236 3047 0 14 Dtool_qQJquTcw 321 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_min_fov
// Access: Published
// Description: Returns the field of view of the narrowest dimension
// of the window. See set_min_fov().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1321 14 Dtool_qQJq_kwh 0 4 1237 3042 0 14 Dtool_qQJq_kwh 444 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_aspect_ratio
// Access: Published
// Description: Sets the aspect ratio of the lens. This is the ratio
// of the height to the width of the generated image.
// Setting this overrides the two-parameter fov or film
// size setting.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 12 aspect_ratio 1 3047
1322 14 Dtool_qQJqjb98 0 6 1238 3047 0 14 Dtool_qQJqjb98 368 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_aspect_ratio
// Access: Published
// Description: Returns the aspect ratio of the Lens. This is
// determined based on the indicated film size; see
// set_film_size().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1323 14 Dtool_qQJq2Qgw 0 4 1239 3042 0 14 Dtool_qQJq2Qgw 377 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_near
// Access: Published
// Description: Defines the position of the near plane (or cylinder,
// sphere, whatever). Points closer to the lens than
// this may not be rendered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 13 near_distance 1 3047
1324 14 Dtool_qQJqvVA4 0 6 1240 3047 0 14 Dtool_qQJqvVA4 302 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_near
// Access: Published
// Description: Returns the position of the near plane (or cylinder,
// sphere, whatever).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1325 14 Dtool_qQJqcoiP 0 4 1241 3042 0 14 Dtool_qQJqcoiP 378 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_far
// Access: Published
// Description: Defines the position of the far plane (or cylinder,
// sphere, whatever). Points farther from the lens than
// this may not be rendered.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 12 far_distance 1 3047
1326 14 Dtool_qQJq9WmP 0 6 1242 3047 0 14 Dtool_qQJq9WmP 300 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_far
// Access: Published
// Description: Returns the position of the far plane (or cylinder,
// sphere, whatever).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1327 14 Dtool_qQJq9vjM 0 4 1243 3042 0 14 Dtool_qQJq9vjM 265 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_near_far
// Access: Published
// Description: Simultaneously changes the near and far planes.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3292 13 near_distance 1 3047 12 far_distance 1 3047
1328 14 Dtool_qQJqyde1 0 6 1244 3047 0 14 Dtool_qQJqyde1 391 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_default_near
// Access: Published, Static
// Description: Returns the default near plane distance that will be
// assigned to each newly-created lens. This is read
// from the Configrc file.
//////////////////////////////////////////////////////////////////// 0
1329 14 Dtool_qQJqChjq 0 6 1245 3047 0 14 Dtool_qQJqChjq 389 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_default_far
// Access: Published, Static
// Description: Returns the default far plane distance that will be
// assigned to each newly-created lens. This is read
// from the Configrc file.
//////////////////////////////////////////////////////////////////// 0
1330 14 Dtool_qQJqHI9n 0 4 1246 3042 0 14 Dtool_qQJqHI9n 593 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_view_hpr
// Access: Published
// Description: Sets the direction in which the lens is facing.
// Normally, this is down the forward axis (usually the
// Y axis), but it may be rotated. This is only one way
// of specifying the rotation; you may also specify an
// explicit vector in which to look, or you may give a
// complete transformation matrix.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 8 view_hpr 1 3218
1331 14 Dtool_qQJqlvxd 0 4 1246 3042 0 14 Dtool_qQJqlvxd 593 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_view_hpr
// Access: Published
// Description: Sets the direction in which the lens is facing.
// Normally, this is down the forward axis (usually the
// Y axis), but it may be rotated. This is only one way
// of specifying the rotation; you may also specify an
// explicit vector in which to look, or you may give a
// complete transformation matrix.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3292 1 h 1 3047 1 p 1 3047 1 r 1 3047
1332 14 Dtool_qQJqzOnI 0 6 1247 3218 0 14 Dtool_qQJqzOnI 268 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_view_hpr
// Access: Published
// Description: Returns the direction in which the lens is facing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1333 14 Dtool_qQJqumpn 0 4 1248 3042 0 14 Dtool_qQJqumpn 440 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_view_vector
// Access: Published
// Description: Specifies the direction in which the lens is facing
// by giving an axis to look along, and a perpendicular
// (or at least non-parallel) up axis.
//
// See also set_view_hpr().
//////////////////////////////////////////////////////////////////// 3 4 this 3 3292 11 view_vector 1 3303 9 up_vector 1 3303
1334 14 Dtool_qQJqRtqd 0 4 1248 3042 0 14 Dtool_qQJqRtqd 440 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_view_vector
// Access: Published
// Description: Specifies the direction in which the lens is facing
// by giving an axis to look along, and a perpendicular
// (or at least non-parallel) up axis.
//
// See also set_view_hpr().
//////////////////////////////////////////////////////////////////// 7 4 this 3 3292 1 x 1 3047 1 y 1 3047 1 z 1 3047 1 i 1 3047 1 j 1 3047 1 k 1 3047
1335 14 Dtool_qQJqyzLu 0 6 1249 3303 0 14 Dtool_qQJqyzLu 269 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_view_vector
// Access: Published
// Description: Returns the axis along which the lens is facing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1336 14 Dtool_qQJqryc7 0 6 1250 3303 0 14 Dtool_qQJqryc7 329 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_up_vector
// Access: Published
// Description: Returns the axis perpendicular to the camera's view
// vector that indicates the "up" direction.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1337 14 Dtool_qQJqDlmp 0 7 1251 3137 0 14 Dtool_qQJqDlmp 317 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_nodal_point
// Access: Published
// Description: Returns the center point of the lens: the point from
// which the lens is viewing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1338 14 Dtool_qQJqohPi 0 4 1252 3042 0 14 Dtool_qQJqohPi 796 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_interocular_distance
// Access: Published
// Description: Sets the distance between the left and right eyes of
// a stereo camera. This distance is used to apply a
// stereo effect when the lens is rendered on a stereo
// display region. It only has an effect on a
// PerspectiveLens.
//
// The left eye and the right eye are each offset along
// the X axis by half of this distance, so that this
// parameter specifies the total distance between them.
//
// Also see set_convergence_distance(), which relates.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 20 interocular_distance 1 3047
1339 14 Dtool_qQJqCou8 0 6 1253 3047 0 14 Dtool_qQJqCou8 261 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_interocular_distance
// Access: Published
// Description: See set_interocular_distance().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1340 14 Dtool_qQJqKsi1 0 4 1254 3042 0 14 Dtool_qQJqKsi1 1237 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_convergence_distance
// Access: Published
// Description: Sets the distance between between the camera plane
// and the point in the distance that the left and right
// eyes are both looking at. This distance is used to
// apply a stereo effect when the lens is rendered on a
// stereo display region. It only has an effect on a
// PerspectiveLens.
//
// This parameter must be greater than 0, but may be as
// large as you like. It controls the amount to which
// the two eyes are directed inwards towards each other,
// which is a normal property of stereo vision. It is a
// distance, not an angle; normally this should be set
// to the distance from the camera to the area of
// interest in your scene. If you want to simulate
// parallel stereo, set this value to a very large
// number.
//
// Also see set_interocular_distance(), which relates.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 20 convergence_distance 1 3047
1341 14 Dtool_qQJqjWCQ 0 6 1255 3047 0 14 Dtool_qQJqjWCQ 261 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_convergence_distance
// Access: Published
// Description: See set_convergence_distance().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1342 14 Dtool_qQJqL_7i 0 4 1256 3042 0 14 Dtool_qQJqL_7i 831 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_view_mat
// Access: Published
// Description: Sets an arbitrary transformation on the lens. This
// replaces the individual transformation components
// like set_view_hpr().
//
// Setting a transformation here will have a slightly
// different effect than putting one on the LensNode
// that contains this lens. In particular, lighting and
// other effects computations will still be performed on
// the lens in its untransformed (facing forward)
// position, but the actual projection matrix will be
// transformed by this matrix.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 8 view_mat 1 3127
1343 14 Dtool_qQJqM_m4 0 6 1257 3127 0 14 Dtool_qQJqM_m4 268 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_view_mat
// Access: Published
// Description: Returns the direction in which the lens is facing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1344 14 Dtool_qQJqkqkp 0 4 1258 3042 0 14 Dtool_qQJqkqkp 258 ////////////////////////////////////////////////////////////////////
// Function: Lens::clear_view_mat
// Access: Published
// Description: Resets the lens transform to identity.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3292
1345 14 Dtool_qQJqZFPx 0 4 1259 3042 0 14 Dtool_qQJqZFPx 989 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_keystone
// Access: Published
// Description: Indicates the ratio of keystone correction to perform
// on the lens, in each of three axes. This will build
// a special non-affine scale factor into the projection
// matrix that will compensate for keystoning of a
// projected image; this can be used to compensate for a
// projector that for physical reasons cannot be aimed
// directly at its screen.
//
// The default value is taken from the default-keystone
// Config variable. 0, 0 indicates no keystone
// correction; specify a small value (usually in the
// range -1 .. 1) in either the x or y position to
// generate a keystone correction in that axis.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 8 keystone 1 3215
1346 14 Dtool_qQJqvPzC 0 6 1260 3215 0 14 Dtool_qQJqvPzC 290 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_keystone
// Access: Published
// Description: Returns the keystone correction specified for the
// lens.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1347 14 Dtool_qQJqp1qZ 0 4 1261 3042 0 14 Dtool_qQJqp1qZ 258 ////////////////////////////////////////////////////////////////////
// Function: Lens::clear_keystone
// Access: Published
// Description: Disables the lens keystone correction.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3292
1348 14 Dtool_qQJqu4Fa 0 4 1262 3042 0 14 Dtool_qQJqu4Fa 743 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_custom_film_mat
// Access: Published
// Description: Specifies a custom matrix to transform the points on
// the film after they have been converted into nominal
// film space (-1 .. 1 in U and V). This can be used to
// introduce arbitrary scales, rotations, or other
// linear transforms to the media plane. This is
// normally a 2-d matrix, but a full 4x4 matrix may be
// specified. This is applied on top of any film size,
// lens shift, and/or keystone correction.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3292 15 custom_film_mat 1 3127
1349 14 Dtool_qQJqZBGv 0 6 1263 3127 0 14 Dtool_qQJqZBGv 293 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_custom_film_mat
// Access: Published
// Description: Returns the custom_film_mat specified for the
// lens.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1350 14 Dtool_qQJqBwR4 0 4 1264 3042 0 14 Dtool_qQJqBwR4 272 ////////////////////////////////////////////////////////////////////
// Function: Lens::clear_custom_film_mat
// Access: Published
// Description: Disables the lens custom_film_mat correction.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3292
1351 14 Dtool_qQJqEH8Q 0 4 1266 3042 0 14 Dtool_qQJqEH8Q 3080 ////////////////////////////////////////////////////////////////////
// Function: Lens::set_frustum_from_corners
// Access: Published
// Description: Sets up the lens to use the frustum defined by the
// four indicated points. This is most useful for a
// PerspectiveLens, but it may be called for other kinds
// of lenses as well.
//
// The frustum will be rooted at the origin (or by
// whatever translation might have been specified in a
// previous call to set_view_mat).
//
// It is legal for the four points not to be arranged in
// a rectangle; if this is the case, the frustum will be
// fitted as tightly as possible to cover all four
// points.
//
// The flags parameter contains the union of one or more
// of the following bits to control the behavior of this
// function:
//
// FC_roll - If this is included, the camera may be
// rotated so that its up vector is perpendicular to the
// top line. Otherwise, the standard up vector is used.
//
// FC_camera_plane - This allows the camera plane to be
// adjusted to be as nearly perpendicular to the center
// of the frustum as possible. Without this bit, the
// orientation camera plane is defined by position of
// the four points (which should all be coplanar). With
// this bit, the camera plane is arbitarary, and may be
// chosen so that the four points do not themselves lie
// in the camera plane (but the points will still be
// within the frustum).
//
// FC_off_axis - This allows the resulting frustum to be
// off-axis to get the tightest possible fit. Without
// this bit, the viewing axis will be centered within
// the frustum, but there may be more wasted space along
// the edges.
//
// FC_aspect_ratio - This allows the frustum to be
// scaled non-proportionately in the vertical and
// horizontal dimensions, if necessary, to get a tighter
// fit. Without this bit, the current aspect ratio will
// be preserved.
//
// FC_shear - This allows the frustum to be sheared, if
// necessary, to get the tightest possible fit. This
// may result in a parallelogram-based frustum, which
// will give a slanted appearance to the rendered image.
// Without this bit, the frustum will be
// rectangle-based.
//
// In general, if 0 is passed in as the value for flags,
// the generated frustum will be a loose fit but sane;
// if -1 is passed in, it will be a tighter fit and
// possibly screwy.
//////////////////////////////////////////////////////////////////// 6 4 this 3 3292 2 ul 1 3218 2 ur 1 3218 2 ll 1 3218 2 lr 1 3218 5 flags 1 3046
1352 14 Dtool_qQJqSJre 0 4 1267 3042 0 14 Dtool_qQJqSJre 405 ////////////////////////////////////////////////////////////////////
// Function: Lens::recompute_all
// Access: Published
// Description: Forces all internal parameters of the Lens to be
// recomputed. Normally, this should never need to be
// called; it is provided only to assist in debugging.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3292
1353 14 Dtool_qQJq6Z__ 0 6 1268 3043 0 14 Dtool_qQJq6Z__ 464 ////////////////////////////////////////////////////////////////////
// Function: Lens::is_linear
// Access: Published, Virtual
// Description: Returns true if the lens represents a linear
// projection (e.g. PerspectiveLens, OrthographicLens),
// and therefore there is a valid matrix returned by
// get_projection_mat(), or false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1354 14 Dtool_qQJqBoQp 0 6 1269 3043 0 14 Dtool_qQJqBoQp 372 ////////////////////////////////////////////////////////////////////
// Function: Lens::is_perspective
// Access: Published, Virtual
// Description: Returns true if the lens represents a perspective
// projection (i.e. it is a PerspectiveLens), false
// otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1355 14 Dtool_qQJqlQp5 0 6 1270 3043 0 14 Dtool_qQJqlQp5 375 ////////////////////////////////////////////////////////////////////
// Function: Lens::is_orthographic
// Access: Published, Virtual
// Description: Returns true if the lens represents a orthographic
// projection (i.e. it is a OrthographicLens), false
// otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1356 14 Dtool_qQJqJeEy 0 7 1271 3181 2199 14 Dtool_qQJqJeEy 515 ////////////////////////////////////////////////////////////////////
// Function: Lens::make_geometry
// Access: Published, Virtual
// Description: Allocates and returns a new Geom that can be rendered
// to show a visible representation of the frustum used
// for this kind of lens, if it makes sense to do
// so. If a visible representation cannot be created,
// returns NULL.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3292
1357 14 Dtool_qQJqb5g0 0 7 1272 3305 0 14 Dtool_qQJqb5g0 450 ////////////////////////////////////////////////////////////////////
// Function: Lens::make_bounds
// Access: Published, Virtual
// Description: Allocates and returns a new BoundingVolume that
// encloses the frustum used for this kind of
// lens, if possible. If a suitable bounding
// volume cannot be created, returns NULL.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1358 14 Dtool_qQJqAAmb 0 6 1273 3127 0 14 Dtool_qQJqAAmb 441 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_projection_mat
// Access: Published
// Description: Returns the complete transformation matrix from a 3-d
// point in space to a point on the film, if such a
// matrix exists, or the identity matrix if the lens is
// nonlinear.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3290 7 channel 1 3017
1359 14 Dtool_qQJqrmTG 0 6 1273 3127 0 14 Dtool_qQJqrmTG 441 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_projection_mat
// Access: Published
// Description: Returns the complete transformation matrix from a 3-d
// point in space to a point on the film, if such a
// matrix exists, or the identity matrix if the lens is
// nonlinear.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1360 14 Dtool_qQJqK_5F 0 6 1274 3127 0 14 Dtool_qQJqK_5F 376 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_projection_mat_inv
// Access: Published
// Description: Returns the matrix that transforms from a 2-d point
// on the film to a 3-d vector in space, if such a
// matrix exists.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3290 7 channel 1 3017
1361 14 Dtool_qQJqmcoU 0 6 1274 3127 0 14 Dtool_qQJqmcoU 376 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_projection_mat_inv
// Access: Published
// Description: Returns the matrix that transforms from a 2-d point
// on the film to a 3-d vector in space, if such a
// matrix exists.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1362 14 Dtool_qQJqOjJ3 0 6 1275 3127 0 14 Dtool_qQJqOjJ3 322 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_film_mat
// Access: Published
// Description: Returns the matrix that transforms from a point
// behind the lens to a point on the film.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1363 14 Dtool_qQJqHzXh 0 6 1276 3127 0 14 Dtool_qQJqHzXh 326 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_film_mat_inv
// Access: Published
// Description: Returns the matrix that transforms from a point on
// the film to a point behind the lens.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1364 14 Dtool_qQJqFMDf 0 6 1277 3127 0 14 Dtool_qQJqFMDf 324 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_lens_mat
// Access: Published
// Description: Returns the matrix that transforms from a point
// in front of the lens to a point in space.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1365 14 Dtool_qQJqAERJ 0 6 1278 3127 0 14 Dtool_qQJqAERJ 328 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_lens_mat_inv
// Access: Published
// Description: Returns the matrix that transforms from a point in
// space to a point in front of the lens.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1366 14 Dtool_qQJqB_GJ 0 4 1279 3042 0 14 Dtool_qQJqB_GJ 221 ////////////////////////////////////////////////////////////////////
// Function: Lens::output
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3290 3 out 1 3044
1367 14 Dtool_qQJqpMpk 0 4 1280 3042 0 14 Dtool_qQJqpMpk 220 ////////////////////////////////////////////////////////////////////
// Function: Lens::write
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3290 3 out 1 3044 12 indent_level 1 3046
1368 14 Dtool_qQJqtXWp 0 4 1280 3042 0 14 Dtool_qQJqtXWp 220 ////////////////////////////////////////////////////////////////////
// Function: Lens::write
// Access: Published, Virtual
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3290 3 out 1 3044
1369 14 Dtool_qQJqgaL6 0 7 1281 3105 0 14 Dtool_qQJqgaL6 447 ////////////////////////////////////////////////////////////////////
// Function: Lens::get_last_change
// Access: Published
// Description: Returns the UpdateSeq that is incremented whenever
// the lens properties are changed. As long as this
// number remains the same, you may assume the lens
// properties are unchanged.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3290
1370 14 Dtool_qQJqX6_e 0 7 1282 3058 0 14 Dtool_qQJqX6_e 0 0
1371 14 Dtool_qQJqGQ_b 0 7 1289 3308 2764 14 Dtool_qQJqGQ_b 225 ////////////////////////////////////////////////////////////////////
// Function: Material::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3306
1372 14 Dtool_qQJqF7Ty 0 7 1289 3308 2764 14 Dtool_qQJqF7Ty 703 // Filename: material.I
// Created by: mike (05Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Material::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 name 1 3037
1373 14 Dtool_qQJq__MD 0 7 1289 3308 2764 14 Dtool_qQJq__MD 703 // Filename: material.I
// Created by: mike (05Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: Material::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 0
1374 14 Dtool_qQJq9ooi 0 7 1290 3308 2764 14 Dtool_qQJq9ooi 233 ////////////////////////////////////////////////////////////////////
// Function: Material::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3308 4 copy 1 3306
1375 14 Dtool_qQJqVX0q 0 7 1292 3308 2764 14 Dtool_qQJqVX0q 258 ////////////////////////////////////////////////////////////////////
// Function: Material::get_default
// Access: Published, Static
// Description: Returns the default material.
//////////////////////////////////////////////////////////////////// 0
1376 14 Dtool_qQJq7f5w 0 6 1293 3043 0 14 Dtool_qQJq7f5w 331 ////////////////////////////////////////////////////////////////////
// Function: Material::has_ambient
// Access: Published
// Description: Returns true if the ambient color has been explicitly
// set for this material, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3306
1377 14 Dtool_qQJqZcqI 0 6 1294 3160 0 14 Dtool_qQJqZcqI 367 ////////////////////////////////////////////////////////////////////
// Function: Material::get_ambient
// Access: Published
// Description: Returns the ambient color setting, if it has been
// set. Returns (0,0,0,0) if the ambient color has not
// been set.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3306
1378 14 Dtool_qQJq34VB 0 4 1295 3042 0 14 Dtool_qQJq34VB 592 ////////////////////////////////////////////////////////////////////
// Function: Material::set_ambient
// Access: Published
// Description: Specifies the ambient color setting of the material.
// This will be the multiplied by any ambient lights in
// effect on the material to set its base color.
//
// This is the color of the object as it appears in the
// absence of direct light.
//
// If this is not set, the object color will be used.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3308 5 color 1 3160
1379 14 Dtool_qQJqefxD 0 4 1296 3042 0 14 Dtool_qQJqefxD 276 ////////////////////////////////////////////////////////////////////
// Function: Material::clear_ambient
// Access: Published
// Description: Removes the explicit ambient color from the material.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3308
1380 14 Dtool_qQJqUInK 0 6 1297 3043 0 14 Dtool_qQJqUInK 331 ////////////////////////////////////////////////////////////////////
// Function: Material::has_diffuse
// Access: Published
// Description: Returns true if the diffuse color has been explicitly
// set for this material, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3306
1381 14 Dtool_qQJq7Iai 0 6 1298 3160 0 14 Dtool_qQJq7Iai 367 ////////////////////////////////////////////////////////////////////
// Function: Material::get_diffuse
// Access: Published
// Description: Returns the diffuse color setting, if it has been
// set. Returns (1,1,1,1) if the diffuse color has not
// been set.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3306
1382 14 Dtool_qQJqZ0Eb 0 4 1299 3042 0 14 Dtool_qQJqZ0Eb 709 ////////////////////////////////////////////////////////////////////
// Function: Material::set_diffuse
// Access: Published
// Description: Specifies the diffuse color setting of the material.
// This will be multiplied by any lights in effect on
// the material to get the color in the parts of the
// object illuminated by the lights.
//
// This is the primary color of an object; the color of
// the object as it appears in direct light, in the
// absence of highlights.
//
// If this is not set, the object color will be used.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3308 5 color 1 3160
1383 14 Dtool_qQJqAqqE 0 4 1300 3042 0 14 Dtool_qQJqAqqE 276 ////////////////////////////////////////////////////////////////////
// Function: Material::clear_diffuse
// Access: Published
// Description: Removes the explicit diffuse color from the material.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3308
1384 14 Dtool_qQJqW6_3 0 6 1301 3043 0 14 Dtool_qQJqW6_3 333 ////////////////////////////////////////////////////////////////////
// Function: Material::has_specular
// Access: Published
// Description: Returns true if the specular color has been explicitly
// set for this material, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3306
1385 14 Dtool_qQJq8lwP 0 6 1302 3160 0 14 Dtool_qQJq8lwP 370 ////////////////////////////////////////////////////////////////////
// Function: Material::get_specular
// Access: Published
// Description: Returns the specular color setting, if it has been
// set. Returns (0,0,0,0) if the specular color has not
// been set.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3306
1386 14 Dtool_qQJqdfyI 0 4 1303 3042 0 14 Dtool_qQJqdfyI 637 ////////////////////////////////////////////////////////////////////
// Function: Material::set_specular
// Access: Published
// Description: Specifies the diffuse color setting of the material.
// This will be multiplied by any lights in effect on
// the material to compute the color of specular
// highlights on the object.
//
// This is the highlight color of an object: the color
// of small highlight reflections.
//
// If this is not set, highlights will not appear.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3308 5 color 1 3160
1387 14 Dtool_qQJqcNUr 0 4 1304 3042 0 14 Dtool_qQJqcNUr 278 ////////////////////////////////////////////////////////////////////
// Function: Material::clear_specular
// Access: Published
// Description: Removes the explicit specular color from the material.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3308
1388 14 Dtool_qQJq03rd 0 6 1305 3043 0 14 Dtool_qQJq03rd 333 ////////////////////////////////////////////////////////////////////
// Function: Material::has_emission
// Access: Published
// Description: Returns true if the emission color has been explicitly
// set for this material, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3306
1389 14 Dtool_qQJqb2c1 0 6 1306 3160 0 14 Dtool_qQJqb2c1 370 ////////////////////////////////////////////////////////////////////
// Function: Material::get_emission
// Access: Published
// Description: Returns the emission color setting, if it has been
// set. Returns (0,0,0,0) if the emission color has not
// been set.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3306
1390 14 Dtool_qQJqwIeu 0 4 1307 3042 0 14 Dtool_qQJqwIeu 768 ////////////////////////////////////////////////////////////////////
// Function: Material::set_emission
// Access: Published
// Description: Specifies the emission color setting of the material.
// This is the color of the object as it appears in the
// absence of any light whatsover, including ambient
// light. It is as if the object is glowing by this
// color (although of course it will not illuminate
// neighboring objects).
//
// If this is not set, the object will not glow by its
// own light and will only appear visible in the
// presence of one or more lights.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3308 5 color 1 3160
1391 14 Dtool_qQJqjKsu 0 4 1308 3042 0 14 Dtool_qQJqjKsu 278 ////////////////////////////////////////////////////////////////////
// Function: Material::clear_emission
// Access: Published
// Description: Removes the explicit emission color from the material.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3308
1392 14 Dtool_qQJq8cpp 0 6 1309 3047 0 14 Dtool_qQJq8cpp 270 ////////////////////////////////////////////////////////////////////
// Function: Material::get_shininess
// Access: Published
// Description: Returns the shininess exponent of the material.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3306
1393 14 Dtool_qQJq_D1v 0 4 1310 3042 0 14 Dtool_qQJq_D1v 598 ////////////////////////////////////////////////////////////////////
// Function: Material::set_shininess
// Access: Published
// Description: Sets the shininess exponent of the material. This
// controls the size of the specular highlight spot. In
// general, larger number produce a smaller specular
// highlight, which makes the object appear shinier.
// Smaller numbers produce a larger highlight, which
// makes the object appear less shiny.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3308 9 shininess 1 3047
1394 14 Dtool_qQJqGt_1 0 6 1311 3043 0 14 Dtool_qQJqGt_1 267 ////////////////////////////////////////////////////////////////////
// Function: Material::get_local
// Access: Published
// Description: Returns the local viewer flag. Set set_local().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3306
1395 14 Dtool_qQJq9DMm 0 4 1312 3042 0 14 Dtool_qQJq9DMm 519 ////////////////////////////////////////////////////////////////////
// Function: Material::set_local
// Access: Published
// Description: Sets the local viewer flag. Set this true to enable
// camera-relative specular highlights, or false to use
// orthogonal specular highlights. The default value is
// true. Applications that use orthogonal projection
// should specify false.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3308 5 local 1 3043
1396 14 Dtool_qQJqJTRL 0 6 1313 3043 0 14 Dtool_qQJqJTRL 306 ////////////////////////////////////////////////////////////////////
// Function: Material::get_twoside
// Access: Published
// Description: Returns the state of the two-sided lighting flag.
// See set_twoside().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3306
1397 14 Dtool_qQJq06bF 0 4 1314 3042 0 14 Dtool_qQJq06bF 513 ////////////////////////////////////////////////////////////////////
// Function: Material::set_twoside
// Access: Published
// Description: Set this true to enable two-sided lighting. When
// two-sided lighting is on, both sides of a polygon
// will be lit by this material. The default is for
// two-sided lighting to be off, in which case only the
// front surface is lit.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3308 7 twoside 1 3043
1398 14 Dtool_qQJqNdw5 0 6 1315 3043 0 14 Dtool_qQJqNdw5 220 ////////////////////////////////////////////////////////////////////
// Function: Material::operator ==
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3306 5 other 1 3306
1399 14 Dtool_qQJqvnf5 0 6 1316 3043 0 14 Dtool_qQJqvnf5 220 ////////////////////////////////////////////////////////////////////
// Function: Material::operator !=
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3306 5 other 1 3306
1400 14 Dtool_qQJqwWha 0 6 1317 3043 0 14 Dtool_qQJqwWha 219 ////////////////////////////////////////////////////////////////////
// Function: Material::operator <
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3306 5 other 1 3306
1401 14 Dtool_qQJqlFQk 0 6 1318 3046 0 14 Dtool_qQJqlFQk 535 ////////////////////////////////////////////////////////////////////
// Function: Material::compare_to
// Access: Published
// Description: Returns a number less than zero if this material
// sorts before the other one, greater than zero if it
// sorts after, or zero if they are equivalent. The
// sorting order is arbitrary and largely meaningless,
// except to differentiate different materials.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3306 5 other 1 3306
1402 14 Dtool_qQJqhHq5 0 4 1319 3042 0 14 Dtool_qQJqhHq5 215 ////////////////////////////////////////////////////////////////////
// Function: Material::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3306 3 out 1 3044
1403 14 Dtool_qQJqO3W7 0 4 1320 3042 0 14 Dtool_qQJqO3W7 214 ////////////////////////////////////////////////////////////////////
// Function: Material::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 3306 3 out 1 3044 6 indent 1 3046
1404 14 Dtool_qQJqpdX4 0 6 1321 3043 0 14 Dtool_qQJqpdX4 225 ////////////////////////////////////////////////////////////////////
// Function: Material::is_attrib_locked
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3306
1405 14 Dtool_qQJqw3QT 0 4 1322 3042 0 14 Dtool_qQJqw3QT 224 ////////////////////////////////////////////////////////////////////
// Function: Material::set_attrib_lock
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3308
1406 14 Dtool_qQJqc7AP 0 7 1323 3058 0 14 Dtool_qQJqc7AP 0 0
1407 14 Dtool_qQJqAyQo 0 7 1285 3067 0 14 Dtool_qQJqAyQo 0 1 4 this 3 3308
1408 14 Dtool_qQJqUatZ 0 7 1286 3308 2764 14 Dtool_qQJqUatZ 0 1 4 this 3 3067
1409 14 Dtool_qQJq_v5f 0 6 1287 3078 0 14 Dtool_qQJq_v5f 0 1 4 this 3 3308
1410 14 Dtool_qQJqA_vV 0 7 1288 3308 2764 14 Dtool_qQJqA_vV 0 1 4 this 3 3078
1411 14 Dtool_qQJqwqW_ 0 7 1325 3308 2764 14 Dtool_qQJqwqW_ 1538 // Filename: materialPool.I
// Created by: drose (30Apr01)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MaterialPool::get_material
// Access: Public, Static
// Description: Returns a Material pointer that represents the
// same material described by temp, except that it is a
// shared pointer.
//
// Each call to get_material() passing an equivalent
// Material pointer will return the same shared pointer.
//
// If you modify the shared pointer, it will
// automatically disassociate it from the pool.
//
// Also, the return value may be a different pointer
// than that passed in, or it may be the same pointer.
// In either case, the passed in pointer has now been
// sacrificed to the greater good and should not be used
// again (like any other PointerTo, it will be freed
// when the last reference count is removed).
//////////////////////////////////////////////////////////////////// 1 4 temp 1 3308
1412 14 Dtool_qQJqDER0 0 4 1326 3042 0 14 Dtool_qQJqDER0 283 ////////////////////////////////////////////////////////////////////
// Function: MaterialPool::release_material
// Access: Published, Static
// Description: Removes the indicated material from the pool.
//////////////////////////////////////////////////////////////////// 1 4 temp 1 3308
1413 14 Dtool_qQJqUKsK 0 4 1327 3042 0 14 Dtool_qQJqUKsK 336 ////////////////////////////////////////////////////////////////////
// Function: MaterialPool::release_all_materials
// Access: Published, Static
// Description: Releases all materials in the pool and restores the
// pool to the empty state.
//////////////////////////////////////////////////////////////////// 0
1414 14 Dtool_qQJqWM0z 0 6 1328 3046 0 14 Dtool_qQJqWM0z 481 ////////////////////////////////////////////////////////////////////
// Function: MaterialPool::garbage_collect
// Access: Public, Static
// Description: Releases only those materials in the pool that have a
// reference count of exactly 1; i.e. only those
// materials that are not being used outside of the pool.
// Returns the number of materials released.
//////////////////////////////////////////////////////////////////// 0
1415 14 Dtool_qQJq6ZKx 0 4 1329 3042 0 14 Dtool_qQJq6ZKx 320 ////////////////////////////////////////////////////////////////////
// Function: MaterialPool::list_contents
// Access: Public, Static
// Description: Lists the contents of the material pool to the
// indicated output stream.
//////////////////////////////////////////////////////////////////// 1 3 out 1 3044
1416 14 Dtool_qQJq7VUC 0 4 1330 3042 0 14 Dtool_qQJq7VUC 315 ////////////////////////////////////////////////////////////////////
// Function: MaterialPool::write
// Access: Published, Static
// Description: Lists the contents of the material pool to the
// indicated output stream.
//////////////////////////////////////////////////////////////////// 1 3 out 1 3044
1417 14 Dtool_qQJqCN5B 0 7 1333 3309 2816 14 Dtool_qQJqCN5B 705 // Filename: matrixLens.I
// Created by: drose (12Dec01)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MatrixLens::Constructor
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 0
1418 14 Dtool_qQJqxIxS 0 4 1334 3042 0 14 Dtool_qQJqxIxS 938 ////////////////////////////////////////////////////////////////////
// Function: MatrixLens::set_user_mat
// Access: Published
// Description: Explicitly specifies the projection matrix. This
// matrix should convert X and Y to the range
// [-film_size/2, film_size/2], where (-fs/2,-fs/2) is
// the lower left corner of the screen and (fs/2, fs/2)
// is the upper right. Z should go to the range [-1,
// 1], where -1 is the far plane and 1 is the near
// plane. Note that this is a left-handed Y-up
// coordinate system.
//
// The default film_size for a MatrixLens is 2, so the
// default range is [-1, 1] for both X and Y. This is
// consistent with the GL conventions for projection
// matrices.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3309 8 user_mat 1 3127
1419 14 Dtool_qQJqN4l8 0 6 1335 3127 0 14 Dtool_qQJqN4l8 404 ////////////////////////////////////////////////////////////////////
// Function: MatrixLens::get_user_mat
// Access: Published
// Description: Returns the explicit projection matrix as set by the
// user. This does not include transforms on the lens
// or film (e.g. a film offset or view hpr).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3310
1420 14 Dtool_qQJqVMQA 0 4 1336 3042 0 14 Dtool_qQJqVMQA 761 ////////////////////////////////////////////////////////////////////
// Function: MatrixLens::set_left_eye_mat
// Access: Published
// Description: Sets a custom projection matrix for the left eye.
// This is only used if the lens is attached to a stereo
// camera, in which case the left eye matrix will be
// used to draw the scene in the left eye (but the
// center matrix--the user_mat--will still be used to
// cull the scene).
//
// This matrix should not be too different from the
// center matrix (set by set_user_mat()) or culling
// errors may become obvious.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3309 8 user_mat 1 3127
1421 14 Dtool_qQJqzLCn 0 4 1337 3042 0 14 Dtool_qQJqzLCn 380 ////////////////////////////////////////////////////////////////////
// Function: MatrixLens::clear_left_eye_mat
// Access: Published
// Description: Removes the custom projection matrix set for the left
// eye, and uses the center matrix (set by set_user_mat)
// instead.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3309
1422 14 Dtool_qQJqfGR4 0 6 1338 3043 0 14 Dtool_qQJqfGR4 441 ////////////////////////////////////////////////////////////////////
// Function: MatrixLens::has_left_eye_mat
// Access: Published
// Description: Returns true if the camera has a custom projection
// matrix set for the left eye, or false if the center
// matrix (set by set_user_mat) will be used for the
// left eye.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3310
1423 14 Dtool_qQJqcMKo 0 6 1339 3127 0 14 Dtool_qQJqcMKo 396 ////////////////////////////////////////////////////////////////////
// Function: MatrixLens::get_left_eye_mat
// Access: Published
// Description: Returns the custom projection matrix for the left
// eye, if any, or the center matrix if there is no
// custom matrix set for the left eye.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3310
1424 14 Dtool_qQJqMH4j 0 4 1340 3042 0 14 Dtool_qQJqMH4j 765 ////////////////////////////////////////////////////////////////////
// Function: MatrixLens::set_right_eye_mat
// Access: Published
// Description: Sets a custom projection matrix for the right eye.
// This is only used if the lens is attached to a stereo
// camera, in which case the right eye matrix will be
// used to draw the scene in the right eye (but the
// center matrix--the user_mat--will still be used to
// cull the scene).
//
// This matrix should not be too different from the
// center matrix (set by set_user_mat()) or culling
// errors may become obvious.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3309 8 user_mat 1 3127
1425 14 Dtool_qQJqZ82q 0 4 1341 3042 0 14 Dtool_qQJqZ82q 382 ////////////////////////////////////////////////////////////////////
// Function: MatrixLens::clear_right_eye_mat
// Access: Published
// Description: Removes the custom projection matrix set for the right
// eye, and uses the center matrix (set by set_user_mat)
// instead.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3309
1426 14 Dtool_qQJqP55w 0 6 1342 3043 0 14 Dtool_qQJqP55w 444 ////////////////////////////////////////////////////////////////////
// Function: MatrixLens::has_right_eye_mat
// Access: Published
// Description: Returns true if the camera has a custom projection
// matrix set for the right eye, or false if the center
// matrix (set by set_user_mat) will be used for the
// right eye.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3310
1427 14 Dtool_qQJqTRzg 0 6 1343 3127 0 14 Dtool_qQJqTRzg 399 ////////////////////////////////////////////////////////////////////
// Function: MatrixLens::get_right_eye_mat
// Access: Published
// Description: Returns the custom projection matrix for the right
// eye, if any, or the center matrix if there is no
// custom matrix set for the right eye.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3310
1428 14 Dtool_qQJqpeVf 0 7 1344 3058 0 14 Dtool_qQJqpeVf 0 0
1429 14 Dtool_qQJq01XU 0 7 1347 3312 2819 14 Dtool_qQJq01XU 716 // Filename: orthographicLens.I
// Created by: mike (18Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: OrthographicLens::Constructor
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 0
1430 14 Dtool_qQJqlLeB 0 7 1348 3058 0 14 Dtool_qQJqlLeB 0 0
1431 14 Dtool_qQJq6Ayf 0 7 1351 3313 2822 14 Dtool_qQJq6Ayf 715 // Filename: perspectiveLens.I
// Created by: drose (18Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PerspectiveLens::Constructor
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 0
1432 14 Dtool_qQJqJoB6 0 7 1351 3313 2822 14 Dtool_qQJqJoB6 224 ////////////////////////////////////////////////////////////////////
// Function: PerspectiveLens::Constructor
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 2 4 hfov 1 3047 4 vfov 1 3047
1433 14 Dtool_qQJqMg_O 0 7 1352 3058 0 14 Dtool_qQJqMg_O 0 0
1434 14 Dtool_qQJq_A2c 0 7 1355 3314 2829 14 Dtool_qQJq_A2c 854 // Filename: textureReloadRequest.I
// Created by: drose (12Aug08)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureReloadRequest::Constructor
// Access: Published
// Description: Create a new TextureReloadRequest, and add it to the loader
// via load_async(), to begin an asynchronous load.
//////////////////////////////////////////////////////////////////// 4 4 name 1 3037 3 pgo 1 3111 7 texture 1 3246 16 allow_compressed 1 3043
1435 14 Dtool_qQJqMVC8 0 7 1356 3111 0 14 Dtool_qQJqMVC8 366 ////////////////////////////////////////////////////////////////////
// Function: TextureReloadRequest::get_prepared_graphics_objects
// Access: Published
// Description: Returns the PreparedGraphicsObjects object associated with
// this asynchronous TextureReloadRequest.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3315
1436 14 Dtool_qQJqN1sj 0 7 1357 3246 2413 14 Dtool_qQJqN1sj 332 ////////////////////////////////////////////////////////////////////
// Function: TextureReloadRequest::get_texture
// Access: Published
// Description: Returns the Texture object associated with
// this asynchronous TextureReloadRequest.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3315
1437 14 Dtool_qQJq2GyL 0 6 1358 3043 0 14 Dtool_qQJq2GyL 350 ////////////////////////////////////////////////////////////////////
// Function: TextureReloadRequest::get_allow_compressed
// Access: Published
// Description: Returns the "allow compressed" flag associated with
// this asynchronous TextureReloadRequest.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3315
1438 14 Dtool_qQJq3Flo 0 6 1359 3043 0 14 Dtool_qQJq3Flo 320 ////////////////////////////////////////////////////////////////////
// Function: TextureReloadRequest::is_ready
// Access: Published
// Description: Returns true if this request has completed, false if
// it is still pending.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3315
1439 14 Dtool_qQJqX90D 0 7 1360 3058 0 14 Dtool_qQJqX90D 0 0
1440 14 Dtool_qQJqNASE 0 7 1367 3246 2413 14 Dtool_qQJqNASE 294 ////////////////////////////////////////////////////////////////////
// Function: TextureContext::get_texture
// Access: Public
// Description: Returns the pointer to the associated Texture
// object.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3317
1441 14 Dtool_qQJqEeGI 0 6 1368 3046 0 14 Dtool_qQJqEeGI 394 ////////////////////////////////////////////////////////////////////
// Function: TextureContext::get_view
// Access: Public
// Description: Returns the specific view of a multiview texture this
// context represents. In the usual case, with a
// non-multiview texture, this will be 0.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3317
1442 14 Dtool_qQJqZ7uI 0 6 1369 3043 0 14 Dtool_qQJqZ7uI 371 ////////////////////////////////////////////////////////////////////
// Function: TextureContext::was_modified
// Access: Public
// Description: Returns true if the texture properties or image have
// been modified since the last time mark_loaded() was
// called.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3317
1443 14 Dtool_qQJqCrzx 0 6 1370 3043 0 14 Dtool_qQJqCrzx 398 ////////////////////////////////////////////////////////////////////
// Function: TextureContext::was_properties_modified
// Access: Public
// Description: Returns true if the texture properties (unrelated to
// the image) have been modified since the last time
// mark_loaded() was called.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3317
1444 14 Dtool_qQJqZRbs 0 6 1371 3043 0 14 Dtool_qQJqZRbs 345 ////////////////////////////////////////////////////////////////////
// Function: TextureContext::was_image_modified
// Access: Public
// Description: Returns true if the texture image has been modified
// since the last time mark_loaded() was called.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3317
1445 14 Dtool_qQJqDHZn 0 6 1372 3043 0 14 Dtool_qQJqDHZn 387 ////////////////////////////////////////////////////////////////////
// Function: TextureContext::was_simple_image_modified
// Access: Public
// Description: Returns true if the texture's "simple" image has been
// modified since the last time mark_simple_loaded() was
// called.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3317
1446 14 Dtool_qQJqr1kb 0 7 1373 3105 0 14 Dtool_qQJqr1kb 410 ////////////////////////////////////////////////////////////////////
// Function: TextureContext::get_properties_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the texture properties
// (unrelated to the image) are modified.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3317
1447 14 Dtool_qQJqyuNW 0 7 1374 3105 0 14 Dtool_qQJqyuNW 406 ////////////////////////////////////////////////////////////////////
// Function: TextureContext::get_image_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the texture image data
// (including mipmap levels) are modified.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3317
1448 14 Dtool_qQJqYYKR 0 7 1375 3105 0 14 Dtool_qQJqYYKR 397 ////////////////////////////////////////////////////////////////////
// Function: TextureContext::get_simple_image_modified
// Access: Published
// Description: Returns a sequence number which is guaranteed to
// change at least every time the texture's "simple"
// image data is modified.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3317
1449 14 Dtool_qQJq8H0S 0 7 1376 3058 0 14 Dtool_qQJq8H0S 0 0
1450 14 Dtool_qQJqclHN 0 6 1363 3168 0 14 Dtool_qQJqclHN 0 1 4 this 3 3277
1451 14 Dtool_qQJqo_gM 0 6 1364 3277 0 14 Dtool_qQJqo_gM 0 1 4 this 3 3168
1452 14 Dtool_qQJqi_kf 0 6 1365 3050 0 14 Dtool_qQJqi_kf 0 1 4 this 3 3277
1453 14 Dtool_qQJqhXLx 0 6 1366 3277 0 14 Dtool_qQJqhXLx 0 1 4 this 3 3050
1454 14 Dtool_qQJqxCTe 0 7 1379 3278 0 14 Dtool_qQJqxCTe 227 ////////////////////////////////////////////////////////////////////
// Function: ShaderContext::get_expansion
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3319
1455 14 Dtool_qQJqtn7K 0 7 1380 3058 0 14 Dtool_qQJqtn7K 0 0
1456 14 Dtool_qQJqKfaE 0 7 1383 3321 2851 14 Dtool_qQJqKfaE 229 ////////////////////////////////////////////////////////////////////
// Function: UserVertexSlider::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 name 1 3055
1457 14 Dtool_qQJqOLRn 0 7 1383 3321 2851 14 Dtool_qQJqOLRn 229 ////////////////////////////////////////////////////////////////////
// Function: UserVertexSlider::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 name 1 3037
1458 14 Dtool_qQJqg4r3 0 4 1384 3042 0 14 Dtool_qQJqg4r3 754 // Filename: userVertexSlider.I
// Created by: drose (28Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: UserVertexSlider::set_slider
// Access: Published
// Description: Stores the indicated slider value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3321 6 slider 1 3047
1459 14 Dtool_qQJqTUi2 0 7 1385 3058 0 14 Dtool_qQJqTUi2 0 0
1460 14 Dtool_qQJqkABz 0 7 1388 3322 2856 14 Dtool_qQJqkABz 232 ////////////////////////////////////////////////////////////////////
// Function: UserVertexTransform::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 name 1 3037
1461 14 Dtool_qQJqi0yN 0 6 1389 3037 0 14 Dtool_qQJqi0yN 806 // Filename: userVertexTransform.I
// Created by: drose (24Mar05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: UserVertexTransform::get_name
// Access: Published
// Description: Returns the name passed to the constructor.
// Completely arbitrary.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3323
1462 14 Dtool_qQJqukq7 0 4 1390 3042 0 14 Dtool_qQJqukq7 259 ////////////////////////////////////////////////////////////////////
// Function: UserVertexTransform::set_matrix
// Access: Published
// Description: Stores the indicated matrix.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3322 6 matrix 1 3127
1463 14 Dtool_qQJq8sV1 0 7 1391 3058 0 14 Dtool_qQJq8sV1 0 0
1464 14 Dtool_qQJqbypD 0 6 1399 3043 0 14 Dtool_qQJqbypD 482 ////////////////////////////////////////////////////////////////////
// Function: VideoTexture::get_keep_ram_image
// Access: Published, Virtual
// Description: Returns the flag that indicates whether this Texture
// is eligible to have its main RAM copy of the texture
// memory dumped when the texture is prepared for
// rendering. See set_keep_ram_image().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3325
1465 14 Dtool_qQJqlySi 0 6 1400 3046 0 14 Dtool_qQJqlySi 951 // Filename: videoTexture.I
// Created by: drose (21Sep05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: VideoTexture::get_video_width
// Access: Published
// Description: Returns the width in texels of the source video
// stream. This is not necessarily the width of the
// actual texture, since the texture may have been
// expanded to raise it to a power of 2.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3325
1466 14 Dtool_qQJq7ggt 0 6 1401 3046 0 14 Dtool_qQJq7ggt 466 ////////////////////////////////////////////////////////////////////
// Function: VideoTexture::get_video_height
// Access: Published
// Description: Returns the height in texels of the source video
// stream. This is not necessarily the height of the
// actual texture, since the texture may have been
// expanded to raise it to a power of 2.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3325
1467 14 Dtool_qQJqhRqO 0 7 1402 3058 0 14 Dtool_qQJqhRqO 0 0
1468 14 Dtool_qQJq_R9F 0 7 1394 3246 2413 14 Dtool_qQJq_R9F 0 1 4 this 3 3327
1469 14 Dtool_qQJqyy0u 0 7 1395 3327 2865 14 Dtool_qQJqyy0u 0 1 4 this 3 3246
1470 14 Dtool_qQJqVQwW 0 6 1397 3328 0 14 Dtool_qQJqVQwW 0 1 4 this 3 3327
1471 14 Dtool_qQJqNNh3 0 7 1398 3327 2865 14 Dtool_qQJqNNh3 0 1 4 this 3 3328
1472 14 Dtool_qQJqGt8g 0 7 1409 3103 1847 14 Dtool_qQJqGt8g 300 ////////////////////////////////////////////////////////////////////
// Function: VertexBufferContext::get_data
// Access: Public
// Description: Returns the pointer to the client-side array data
// object.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3329
1473 14 Dtool_qQJq5_9B 0 6 1410 3043 0 14 Dtool_qQJq5_9B 334 ////////////////////////////////////////////////////////////////////
// Function: VertexBufferContext::changed_size
// Access: Public
// Description: Returns true if the data has changed size since the
// last time mark_loaded() was called.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3329 6 reader 1 3109
1474 14 Dtool_qQJqDYdg 0 6 1411 3043 0 14 Dtool_qQJqDYdg 350 ////////////////////////////////////////////////////////////////////
// Function: VertexBufferContext::changed_usage_hint
// Access: Public
// Description: Returns true if the data has changed its usage hint
// since the last time mark_loaded() was called.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3329 6 reader 1 3109
1475 14 Dtool_qQJqFhc_ 0 6 1412 3043 0 14 Dtool_qQJqFhc_ 335 ////////////////////////////////////////////////////////////////////
// Function: VertexBufferContext::was_modified
// Access: Public
// Description: Returns true if the data has been modified since the
// last time mark_loaded() was called.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3329 6 reader 1 3109
1476 14 Dtool_qQJqtgdo 0 7 1413 3058 0 14 Dtool_qQJqtgdo 0 0
1477 14 Dtool_qQJqYZFd 0 6 1405 3168 0 14 Dtool_qQJqYZFd 0 1 4 this 3 3114
1478 14 Dtool_qQJqKnn9 0 6 1406 3114 0 14 Dtool_qQJqKnn9 0 1 4 this 3 3168
1479 14 Dtool_qQJqiFDC 0 6 1407 3050 0 14 Dtool_qQJqiFDC 0 1 4 this 3 3114
1480 14 Dtool_qQJqaGdu 0 6 1408 3114 0 14 Dtool_qQJqaGdu 0 1 4 this 3 3050
1481 14 Dtool_qQJqsz_w 0 7 1416 3331 2878 14 Dtool_qQJqsz_w 229 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 0
1482 14 Dtool_qQJqFrcz 0 7 1416 3331 2878 14 Dtool_qQJqFrcz 456 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::Constructor
// Access: Published
// Description: This special constructor accepts a Python list of
// Textures. Since this constructor accepts a generic
// PyObject *, it should be the last constructor listed
// in the class record.
//////////////////////////////////////////////////////////////////// 2 4 self 1 3115 8 sequence 1 3115
1483 14 Dtool_qQJqG2Wq 0 7 1416 3331 2878 14 Dtool_qQJqG2Wq 234 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3332
1484 14 Dtool_qQJquUB_ 0 6 1417 3331 0 14 Dtool_qQJquUB_ 242 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3331 4 copy 1 3332
1485 14 Dtool_qQJqwLl_ 0 6 1419 3115 0 14 Dtool_qQJqwLl_ 327 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::__reduce__
// Access: Published
// Description: This special Python method is implement to provide
// support for the pickle module.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3332 4 self 1 3115
1486 14 Dtool_qQJqqcTz 0 4 1420 3042 0 14 Dtool_qQJqqcTz 282 // HAVE_PYTHON
////////////////////////////////////////////////////////////////////
// Function: TextureCollection::add_texture
// Access: Published
// Description: Adds a new Texture to the collection.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3331 7 texture 1 3246
1487 14 Dtool_qQJq1SuY 0 6 1421 3043 0 14 Dtool_qQJq1SuY 406 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::remove_texture
// Access: Published
// Description: Removes the indicated Texture from the collection.
// Returns true if the texture was removed, false if it was
// not a member of the collection.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3331 7 texture 1 3246
1488 14 Dtool_qQJqBW2_ 0 4 1422 3042 0 14 Dtool_qQJqBW2_ 482 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::add_textures_from
// Access: Published
// Description: Adds all the Textures indicated in the other
// collection to this texture. The other textures are simply
// appended to the end of the textures in this list;
// duplicates are not automatically removed.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3331 5 other 1 3332
1489 14 Dtool_qQJqubPS 0 4 1423 3042 0 14 Dtool_qQJqubPS 336 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::remove_textures_from
// Access: Published
// Description: Removes from this collection all of the Textures
// listed in the other collection.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3331 5 other 1 3332
1490 14 Dtool_qQJqJXB3 0 4 1424 3042 0 14 Dtool_qQJqJXB3 473 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::remove_duplicate_textures
// Access: Published
// Description: Removes any duplicate entries of the same Textures
// on this collection. If a Texture appears multiple
// times, the first appearance is retained; subsequent
// appearances are removed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3331
1491 14 Dtool_qQJqeRIZ 0 6 1425 3043 0 14 Dtool_qQJqeRIZ 329 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::has_texture
// Access: Published
// Description: Returns true if the indicated Texture appears in
// this collection, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3332 7 texture 1 3246
1492 14 Dtool_qQJqf_8F 0 4 1426 3042 0 14 Dtool_qQJqf_8F 265 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::clear
// Access: Published
// Description: Removes all Textures from the collection.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3331
1493 14 Dtool_qQJqusRb 0 7 1427 3246 2413 14 Dtool_qQJqusRb 372 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::find_texture
// Access: Published
// Description: Returns the texture in the collection with the
// indicated name, if any, or NULL if no texture has
// that name.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3332 4 name 1 3037
1494 14 Dtool_qQJqrq1E 0 6 1428 3046 0 14 Dtool_qQJqrq1E 284 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::get_num_textures
// Access: Published
// Description: Returns the number of Textures in the collection.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3332
1495 14 Dtool_qQJqXzkn 0 7 1429 3246 2413 14 Dtool_qQJqXzkn 272 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::get_texture
// Access: Published
// Description: Returns the nth Texture in the collection.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3332 5 index 1 3046
1496 14 Dtool_qQJqeP4T 0 7 1430 3246 2413 14 Dtool_qQJqeP4T 392 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::operator []
// Access: Published
// Description: Returns the nth Texture in the collection. This is
// the same as get_texture(), but it may be a more
// convenient way to access it.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3332 5 index 1 3046
1497 14 Dtool_qQJq7T26 0 6 1431 3046 0 14 Dtool_qQJq7T26 336 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::size
// Access: Published
// Description: Returns the number of textures in the collection. This
// is the same thing as get_num_textures().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3332
1498 14 Dtool_qQJqdAPK 0 6 1432 3331 0 14 Dtool_qQJqdAPK 278 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::operator +=
// Access: Published
// Description: Appends the other list onto the end of this one.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3331 5 other 1 3332
1499 14 Dtool_qQJq_iXU 0 7 1433 3331 2878 14 Dtool_qQJq_iXU 322 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::operator +
// Access: Published
// Description: Returns a TextureCollection representing the
// concatenation of the two lists.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3332 5 other 1 3332
1500 14 Dtool_qQJqrzMd 0 4 1434 3042 0 14 Dtool_qQJqrzMd 400 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::append
// Access: Published
// Description: Adds a new Texture to the collection. This method
// duplicates the add_texture() method; it is provided to
// satisfy Python's naming convention.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3331 7 texture 1 3246
1501 14 Dtool_qQJqwLXu 0 4 1435 3042 0 14 Dtool_qQJqwLXu 401 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::extend
// Access: Published
// Description: Appends the other list onto the end of this one.
// This method duplicates the += operator; it is
// provided to satisfy Python's naming convention.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3331 5 other 1 3332
1502 14 Dtool_qQJq2Sw8 0 4 1436 3042 0 14 Dtool_qQJq2Sw8 334 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::output
// Access: Published
// Description: Writes a brief one-line description of the
// TextureCollection to the indicated output stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3332 3 out 1 3044
1503 14 Dtool_qQJqfS_c 0 4 1437 3042 0 14 Dtool_qQJqfS_c 338 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::write
// Access: Published
// Description: Writes a complete multi-line description of the
// TextureCollection to the indicated output stream.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3332 3 out 1 3044 12 indent_level 1 3046
1504 14 Dtool_qQJqkwgN 0 4 1437 3042 0 14 Dtool_qQJqkwgN 338 ////////////////////////////////////////////////////////////////////
// Function: TextureCollection::write
// Access: Published
// Description: Writes a complete multi-line description of the
// TextureCollection to the indicated output stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3332 3 out 1 3044
1505 14 Dtool_qQJqobpI 0 6 1439 3043 0 14 Dtool_qQJqobpI 874 // Filename: texturePool.I
// Created by: drose (26Apr00)
// Updated by: fperazzi, PandaSE(29Apr10) (added load_2d_texture_array)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TexturePool::has_texture
// Access: Published, Static
// Description: Returns true if the texture has ever been loaded,
// false otherwise.
//////////////////////////////////////////////////////////////////// 1 8 filename 1 3249
1506 14 Dtool_qQJq8SGI 0 6 1440 3043 0 14 Dtool_qQJq8SGI 611 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::verify_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns true to indicate
// success, or false to indicate failure. If this
// returns true, it is guaranteed that a subsequent call
// to load_texture() with the same texture name will
// return a valid Texture pointer.
//////////////////////////////////////////////////////////////////// 1 8 filename 1 3249
1507 14 Dtool_qQJqDNKc 0 7 1441 3246 2413 14 Dtool_qQJqDNKc 845 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns the new texture.
// If a texture with the same filename was previously
// loaded, returns that one instead. If the texture
// file cannot be found, returns NULL.
//
// If read_mipmaps is true, both filenames should
// contain a hash mark ('#'), which will be filled in
// with the mipmap level number; and the texture will be
// defined with a series of images, two for each mipmap
// level.
//////////////////////////////////////////////////////////////////// 6 8 filename 1 3249 14 alpha_filename 1 3249 25 primary_file_num_channels 1 3046 18 alpha_file_channel 1 3046 12 read_mipmaps 1 3043 7 options 1 3252
1508 14 Dtool_qQJqzR0_ 0 7 1441 3246 2413 14 Dtool_qQJqzR0_ 845 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns the new texture.
// If a texture with the same filename was previously
// loaded, returns that one instead. If the texture
// file cannot be found, returns NULL.
//
// If read_mipmaps is true, both filenames should
// contain a hash mark ('#'), which will be filled in
// with the mipmap level number; and the texture will be
// defined with a series of images, two for each mipmap
// level.
//////////////////////////////////////////////////////////////////// 5 8 filename 1 3249 14 alpha_filename 1 3249 25 primary_file_num_channels 1 3046 18 alpha_file_channel 1 3046 12 read_mipmaps 1 3043
1509 14 Dtool_qQJqkfGU 0 7 1441 3246 2413 14 Dtool_qQJqkfGU 845 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns the new texture.
// If a texture with the same filename was previously
// loaded, returns that one instead. If the texture
// file cannot be found, returns NULL.
//
// If read_mipmaps is true, both filenames should
// contain a hash mark ('#'), which will be filled in
// with the mipmap level number; and the texture will be
// defined with a series of images, two for each mipmap
// level.
//////////////////////////////////////////////////////////////////// 4 8 filename 1 3249 14 alpha_filename 1 3249 25 primary_file_num_channels 1 3046 18 alpha_file_channel 1 3046
1510 14 Dtool_qQJqtJ8W 0 7 1441 3246 2413 14 Dtool_qQJqtJ8W 845 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns the new texture.
// If a texture with the same filename was previously
// loaded, returns that one instead. If the texture
// file cannot be found, returns NULL.
//
// If read_mipmaps is true, both filenames should
// contain a hash mark ('#'), which will be filled in
// with the mipmap level number; and the texture will be
// defined with a series of images, two for each mipmap
// level.
//////////////////////////////////////////////////////////////////// 3 8 filename 1 3249 14 alpha_filename 1 3249 25 primary_file_num_channels 1 3046
1511 14 Dtool_qQJqKwXY 0 7 1441 3246 2413 14 Dtool_qQJqKwXY 845 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns the new texture.
// If a texture with the same filename was previously
// loaded, returns that one instead. If the texture
// file cannot be found, returns NULL.
//
// If read_mipmaps is true, both filenames should
// contain a hash mark ('#'), which will be filled in
// with the mipmap level number; and the texture will be
// defined with a series of images, two for each mipmap
// level.
//////////////////////////////////////////////////////////////////// 2 8 filename 1 3249 14 alpha_filename 1 3249
1512 14 Dtool_qQJq1c0U 0 7 1441 3246 2413 14 Dtool_qQJq1c0U 826 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns the new texture.
// If a texture with the same filename was previously
// loaded, returns that one instead. If the texture
// file cannot be found, returns NULL.
//
// If read_mipmaps is true, the filename should contain
// a hash mark ('#'), which will be filled in with the
// mipmap level number; and the texture will be defined
// with a series of images, one for each mipmap level.
//////////////////////////////////////////////////////////////////// 4 8 filename 1 3249 25 primary_file_num_channels 1 3046 12 read_mipmaps 1 3043 7 options 1 3252
1513 14 Dtool_qQJq2xUh 0 7 1441 3246 2413 14 Dtool_qQJq2xUh 826 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns the new texture.
// If a texture with the same filename was previously
// loaded, returns that one instead. If the texture
// file cannot be found, returns NULL.
//
// If read_mipmaps is true, the filename should contain
// a hash mark ('#'), which will be filled in with the
// mipmap level number; and the texture will be defined
// with a series of images, one for each mipmap level.
//////////////////////////////////////////////////////////////////// 3 8 filename 1 3249 25 primary_file_num_channels 1 3046 12 read_mipmaps 1 3043
1514 14 Dtool_qQJqyJ3b 0 7 1441 3246 2413 14 Dtool_qQJqyJ3b 826 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns the new texture.
// If a texture with the same filename was previously
// loaded, returns that one instead. If the texture
// file cannot be found, returns NULL.
//
// If read_mipmaps is true, the filename should contain
// a hash mark ('#'), which will be filled in with the
// mipmap level number; and the texture will be defined
// with a series of images, one for each mipmap level.
//////////////////////////////////////////////////////////////////// 2 8 filename 1 3249 25 primary_file_num_channels 1 3046
1515 14 Dtool_qQJqK7P8 0 7 1441 3246 2413 14 Dtool_qQJqK7P8 826 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_texture
// Access: Published, Static
// Description: Loads the given filename up into a texture, if it has
// not already been loaded, and returns the new texture.
// If a texture with the same filename was previously
// loaded, returns that one instead. If the texture
// file cannot be found, returns NULL.
//
// If read_mipmaps is true, the filename should contain
// a hash mark ('#'), which will be filled in with the
// mipmap level number; and the texture will be defined
// with a series of images, one for each mipmap level.
//////////////////////////////////////////////////////////////////// 1 8 filename 1 3249
1516 14 Dtool_qQJq_1y1 0 7 1442 3246 2413 14 Dtool_qQJq_1y1 833 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_3d_texture
// Access: Published, Static
// Description: Loads a 3-D texture that is specified with a series
// of n pages, all numbered in sequence, and beginning
// with index 0. The filename should include a sequence
// of one or more hash characters ("#") which will be
// filled in with the index number of each level.
//
// If read_mipmaps is true, the filename should contain
// an additional hash mark. The first hash mark will be
// filled in with the mipmap level number, and the
// second with the index number of each 3-d level.
//////////////////////////////////////////////////////////////////// 3 16 filename_pattern 1 3249 12 read_mipmaps 1 3043 7 options 1 3252
1517 14 Dtool_qQJqBx44 0 7 1442 3246 2413 14 Dtool_qQJqBx44 833 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_3d_texture
// Access: Published, Static
// Description: Loads a 3-D texture that is specified with a series
// of n pages, all numbered in sequence, and beginning
// with index 0. The filename should include a sequence
// of one or more hash characters ("#") which will be
// filled in with the index number of each level.
//
// If read_mipmaps is true, the filename should contain
// an additional hash mark. The first hash mark will be
// filled in with the mipmap level number, and the
// second with the index number of each 3-d level.
//////////////////////////////////////////////////////////////////// 2 16 filename_pattern 1 3249 12 read_mipmaps 1 3043
1518 14 Dtool_qQJqGNtw 0 7 1442 3246 2413 14 Dtool_qQJqGNtw 833 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_3d_texture
// Access: Published, Static
// Description: Loads a 3-D texture that is specified with a series
// of n pages, all numbered in sequence, and beginning
// with index 0. The filename should include a sequence
// of one or more hash characters ("#") which will be
// filled in with the index number of each level.
//
// If read_mipmaps is true, the filename should contain
// an additional hash mark. The first hash mark will be
// filled in with the mipmap level number, and the
// second with the index number of each 3-d level.
//////////////////////////////////////////////////////////////////// 1 16 filename_pattern 1 3249
1519 14 Dtool_qQJqVdFO 0 7 1443 3246 2413 14 Dtool_qQJqVdFO 845 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_2d_texture_array
// Access: Published, Static
// Description: Loads a 2-D texture array that is specified with a series
// of n pages, all numbered in sequence, and beginning
// with index 0. The filename should include a sequence
// of one or more hash characters ("#") which will be
// filled in with the index number of each level.
//
// If read_mipmaps is true, the filename should contain
// an additional hash mark. The first hash mark will be
// filled in with the mipmap level number, and the
// second with the index number of each 2-d level.
//////////////////////////////////////////////////////////////////// 3 16 filename_pattern 1 3249 12 read_mipmaps 1 3043 7 options 1 3252
1520 14 Dtool_qQJqt_6S 0 7 1443 3246 2413 14 Dtool_qQJqt_6S 845 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_2d_texture_array
// Access: Published, Static
// Description: Loads a 2-D texture array that is specified with a series
// of n pages, all numbered in sequence, and beginning
// with index 0. The filename should include a sequence
// of one or more hash characters ("#") which will be
// filled in with the index number of each level.
//
// If read_mipmaps is true, the filename should contain
// an additional hash mark. The first hash mark will be
// filled in with the mipmap level number, and the
// second with the index number of each 2-d level.
//////////////////////////////////////////////////////////////////// 2 16 filename_pattern 1 3249 12 read_mipmaps 1 3043
1521 14 Dtool_qQJqBHlG 0 7 1443 3246 2413 14 Dtool_qQJqBHlG 845 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_2d_texture_array
// Access: Published, Static
// Description: Loads a 2-D texture array that is specified with a series
// of n pages, all numbered in sequence, and beginning
// with index 0. The filename should include a sequence
// of one or more hash characters ("#") which will be
// filled in with the index number of each level.
//
// If read_mipmaps is true, the filename should contain
// an additional hash mark. The first hash mark will be
// filled in with the mipmap level number, and the
// second with the index number of each 2-d level.
//////////////////////////////////////////////////////////////////// 1 16 filename_pattern 1 3249
1522 14 Dtool_qQJqc_3A 0 7 1444 3246 2413 14 Dtool_qQJqc_3A 798 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_cube_map
// Access: Published, Static
// Description: Loads a cube map texture that is specified with a
// series of 6 pages, numbered 0 through 5. The
// filename should include a sequence of one or more
// hash characters ("#") which will be filled in with
// the index number of each pagee.
//
// If read_mipmaps is true, the filename should contain
// an additional hash mark. The first hash mark will be
// filled in with the mipmap level number, and the
// second with the face number, 0 through 5.
//////////////////////////////////////////////////////////////////// 3 16 filename_pattern 1 3249 12 read_mipmaps 1 3043 7 options 1 3252
1523 14 Dtool_qQJq_XKI 0 7 1444 3246 2413 14 Dtool_qQJq_XKI 798 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_cube_map
// Access: Published, Static
// Description: Loads a cube map texture that is specified with a
// series of 6 pages, numbered 0 through 5. The
// filename should include a sequence of one or more
// hash characters ("#") which will be filled in with
// the index number of each pagee.
//
// If read_mipmaps is true, the filename should contain
// an additional hash mark. The first hash mark will be
// filled in with the mipmap level number, and the
// second with the face number, 0 through 5.
//////////////////////////////////////////////////////////////////// 2 16 filename_pattern 1 3249 12 read_mipmaps 1 3043
1524 14 Dtool_qQJqbYrw 0 7 1444 3246 2413 14 Dtool_qQJqbYrw 798 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::load_cube_map
// Access: Published, Static
// Description: Loads a cube map texture that is specified with a
// series of 6 pages, numbered 0 through 5. The
// filename should include a sequence of one or more
// hash characters ("#") which will be filled in with
// the index number of each pagee.
//
// If read_mipmaps is true, the filename should contain
// an additional hash mark. The first hash mark will be
// filled in with the mipmap level number, and the
// second with the face number, 0 through 5.
//////////////////////////////////////////////////////////////////// 1 16 filename_pattern 1 3249
1525 14 Dtool_qQJqg89z 0 7 1445 3246 2413 14 Dtool_qQJqg89z 619 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::get_normalization_cube_map
// Access: Published, Static
// Description: Returns a standard Texture object that has been
// created with
// Texture::generate_normalization_cube_map(). This
// Texture may be shared by any application code
// requiring a normalization cube map. It will be at
// least as large as the specified size, though it may
// be larger.
//////////////////////////////////////////////////////////////////// 1 4 size 1 3046
1526 14 Dtool_qQJqatPj 0 7 1446 3246 2413 14 Dtool_qQJqatPj 598 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::get_alpha_scale_map
// Access: Published, Static
// Description: Returns a standard Texture object that has been
// created with Texture::generate_alpha_scale_map().
//
// This Texture object is used internally by Panda to
// apply an alpha scale to an object (instead of munging
// its vertices) when gsg->get_alpha_scale_via_texture()
// returns true.
//////////////////////////////////////////////////////////////////// 0
1527 14 Dtool_qQJqnyxl 0 4 1447 3042 0 14 Dtool_qQJqnyxl 509 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::add_texture
// Access: Published, Static
// Description: Adds the indicated already-loaded texture to the
// pool. The texture must have a filename set for its
// name. The texture will always replace any
// previously-loaded texture in the pool that had the
// same filename.
//////////////////////////////////////////////////////////////////// 1 7 texture 1 3246
1528 14 Dtool_qQJqp_Lr 0 4 1448 3042 0 14 Dtool_qQJqp_Lr 733 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::release_texture
// Access: Published, Static
// Description: Removes the indicated texture from the pool,
// indicating it will never be loaded again; the texture
// may then be freed. If this function is never called,
// a reference count will be maintained on every texture
// every loaded, and textures will never be freed.
//
// The texture's name should not have been changed
// during its lifetime, or this function may fail to
// locate it in the pool.
//////////////////////////////////////////////////////////////////// 1 7 texture 1 3246
1529 14 Dtool_qQJqA290 0 4 1449 3042 0 14 Dtool_qQJqA290 333 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::release_all_textures
// Access: Published, Static
// Description: Releases all textures in the pool and restores the
// pool to the empty state.
//////////////////////////////////////////////////////////////////// 0
1530 14 Dtool_qQJqNlv5 0 4 1450 3042 0 14 Dtool_qQJqNlv5 378 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::rehash
// Access: Published, Static
// Description: Should be called when the model-path changes, to blow
// away the cache of texture pathnames found along the
// model-path.
//////////////////////////////////////////////////////////////////// 0
1531 14 Dtool_qQJqfx9C 0 6 1451 3046 0 14 Dtool_qQJqfx9C 480 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::garbage_collect
// Access: Published, Static
// Description: Releases only those textures in the pool that have a
// reference count of exactly 1; i.e. only those
// textures that are not being used outside of the pool.
// Returns the number of textures released.
//////////////////////////////////////////////////////////////////// 0
1532 14 Dtool_qQJqUiu_ 0 4 1452 3042 0 14 Dtool_qQJqUiu_ 280 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::list_contents
// Access: Published, Static
// Description: Lists the contents of the texture pool to cout
//////////////////////////////////////////////////////////////////// 0
1533 14 Dtool_qQJqbY3s 0 4 1452 3042 0 14 Dtool_qQJqbY3s 321 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::list_contents
// Access: Published, Static
// Description: Lists the contents of the texture pool to the
// indicated output stream.
//////////////////////////////////////////////////////////////////// 1 3 out 1 3044
1534 14 Dtool_qQJq1Y6W 0 7 1453 3246 2413 14 Dtool_qQJq1Y6W 449 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::find_texture
// Access: Published, Static
// Description: Returns the first texture found in the pool that
// matches the indicated name (which may contain
// wildcards). Returns the texture if it is found, or
// NULL if it is not.
//////////////////////////////////////////////////////////////////// 1 4 name 1 3037
1535 14 Dtool_qQJqmCik 0 7 1454 3331 2878 14 Dtool_qQJqmCik 382 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::find_all_textures
// Access: Published, Static
// Description: Returns the set of all textures found in the pool
// that match the indicated name (which may contain
// wildcards).
//////////////////////////////////////////////////////////////////// 1 4 name 1 3037
1536 14 Dtool_qQJqNHeD 0 7 1454 3331 2878 14 Dtool_qQJqNHeD 382 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::find_all_textures
// Access: Published, Static
// Description: Returns the set of all textures found in the pool
// that match the indicated name (which may contain
// wildcards).
//////////////////////////////////////////////////////////////////// 0
1537 14 Dtool_qQJq7xO0 0 4 1455 3042 0 14 Dtool_qQJq7xO0 355 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::set_fake_texture_image
// Access: Published, Static
// Description: Sets a bogus filename that will be loaded in lieu of
// any textures requested from this point on.
//////////////////////////////////////////////////////////////////// 1 8 filename 1 3249
1538 14 Dtool_qQJqF81s 0 4 1456 3042 0 14 Dtool_qQJqF81s 330 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::clear_fake_texture_image
// Access: Published, Static
// Description: Restores normal behavior of loading the textures
// actually requested.
//////////////////////////////////////////////////////////////////// 0
1539 14 Dtool_qQJqXpQC 0 6 1457 3043 0 14 Dtool_qQJqXpQC 353 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::has_fake_texture_image
// Access: Published, Static
// Description: Returns true if fake_texture_image mode has been
// enabled, false if we are in the normal mode.
//////////////////////////////////////////////////////////////////// 0
1540 14 Dtool_qQJqOn7_ 0 6 1458 3249 0 14 Dtool_qQJqOn7_ 349 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::get_fake_texture_image
// Access: Published, Static
// Description: Returns the filename that was specified with a
// previous call to set_fake_texture_image().
//////////////////////////////////////////////////////////////////// 0
1541 14 Dtool_qQJqSwzz 0 7 1459 3246 2413 14 Dtool_qQJqSwzz 452 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::make_texture
// Access: Published, Static
// Description: Creates a new Texture object of the appropriate type
// for the indicated filename extension, according to
// the types that have been registered via
// register_texture_type().
//////////////////////////////////////////////////////////////////// 1 9 extension 1 3037
1542 14 Dtool_qQJqA_aL 0 4 1460 3042 0 14 Dtool_qQJqA_aL 345 ////////////////////////////////////////////////////////////////////
// Function: TexturePool::write
// Access: Published, Static
// Description: Lists the contents of the texture pool to the
// indicated output stream.
// For debugging.
//////////////////////////////////////////////////////////////////// 1 3 out 1 3044
1543 14 Dtool_qQJqqJgl 0 6 1463 3046 0 14 Dtool_qQJqqJgl 449 ////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::get_x_size
// Access: Published
// Description: Returns the width of the texture image that is
// contributing to the TexturePeeker's information.
// This may be either the Texture's full width, or its
// simple ram image's width.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3334
1544 14 Dtool_qQJq3igF 0 6 1464 3046 0 14 Dtool_qQJq3igF 452 ////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::get_y_size
// Access: Published
// Description: Returns the height of the texture image that is
// contributing to the TexturePeeker's information.
// This may be either the Texture's full height, or its
// simple ram image's height.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3334
1545 14 Dtool_qQJqRHhl 0 6 1465 3046 0 14 Dtool_qQJqRHhl 337 ////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::get_z_size
// Access: Published
// Description: Returns the depth of the texture image that is
// contributing to the TexturePeeker's information.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3334
1546 14 Dtool_qQJqUMM4 0 4 1466 3042 0 14 Dtool_qQJqUMM4 609 ////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::lookup
// Access: Published
// Description: Fills "color" with the RGBA color of the texel at
// point (u, v).
//
// The texel color is determined via nearest-point
// sampling (no filtering of adjacent pixels),
// regardless of the filter type associated with the
// texture. u, v, and w will wrap around regardless of
// the texture's wrap mode.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3334 5 color 1 3180 1 u 1 3047 1 v 1 3047
1547 14 Dtool_qQJqXgie 0 4 1466 3042 0 14 Dtool_qQJqXgie 612 ////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::lookup
// Access: Published
// Description: Fills "color" with the RGBA color of the texel at
// point (u, v, w).
//
// The texel color is determined via nearest-point
// sampling (no filtering of adjacent pixels),
// regardless of the filter type associated with the
// texture. u, v, and w will wrap around regardless of
// the texture's wrap mode.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3334 5 color 1 3180 1 u 1 3047 1 v 1 3047 1 w 1 3047
1548 14 Dtool_qQJq2wqQ 0 4 1467 3042 0 14 Dtool_qQJq2wqQ 563 ////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::filter_rect
// Access: Published
// Description: Fills "color" with the average RGBA color of the
// texels within the rectangle defined by the specified
// coordinate range.
//
// The texel color is linearly filtered over the entire
// region. u, v, and w will wrap around regardless of
// the texture's wrap mode.
//////////////////////////////////////////////////////////////////// 6 4 this 3 3334 5 color 1 3180 5 min_u 1 3047 5 min_v 1 3047 5 max_u 1 3047 5 max_v 1 3047
1549 14 Dtool_qQJq_YIi 0 4 1467 3042 0 14 Dtool_qQJq_YIi 563 ////////////////////////////////////////////////////////////////////
// Function: TexturePeeker::filter_rect
// Access: Published
// Description: Fills "color" with the average RGBA color of the
// texels within the rectangle defined by the specified
// coordinate range.
//
// The texel color is linearly filtered over the entire
// region. u, v, and w will wrap around regardless of
// the texture's wrap mode.
//////////////////////////////////////////////////////////////////// 8 4 this 3 3334 5 color 1 3180 5 min_u 1 3047 5 min_v 1 3047 5 min_w 1 3047 5 max_u 1 3047 5 max_v 1 3047 5 max_w 1 3047
1550 14 Dtool_qQJqfazs 0 7 1471 3177 0 14 Dtool_qQJqfazs 1552 // Filename: textureStagePool.I
// Created by: drose (03May10)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::get_stage
// Access: Public, Static
// Description: Returns a TextureStage pointer that represents the
// same TextureStage described by temp, except that it is a
// shared pointer.
//
// Each call to get_stage() passing an equivalent
// TextureStage pointer will return the same shared pointer.
//
// If you modify the shared pointer, it will
// automatically disassociate it from the pool.
//
// Also, the return value may be a different pointer
// than that passed in, or it may be the same pointer.
// In either case, the passed in pointer has now been
// sacrificed to the greater good and should not be used
// again (like any other PointerTo, it will be freed
// when the last reference count is removed).
//////////////////////////////////////////////////////////////////// 1 4 temp 1 3177
1551 14 Dtool_qQJqqpzp 0 4 1472 3042 0 14 Dtool_qQJqqpzp 288 ////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::release_stage
// Access: Published, Static
// Description: Removes the indicated TextureStage from the pool.
//////////////////////////////////////////////////////////////////// 1 4 temp 1 3177
1552 14 Dtool_qQJqMtyA 0 4 1473 3042 0 14 Dtool_qQJqMtyA 341 ////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::release_all_stages
// Access: Published, Static
// Description: Releases all TextureStages in the pool and restores the
// pool to the empty state.
//////////////////////////////////////////////////////////////////// 0
1553 14 Dtool_qQJqESQc 0 4 1474 3042 0 14 Dtool_qQJqESQc 847 ////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::set_mode
// Access: Published, Static
// Description: Specifies the fundamental operating mode of the
// TextureStagePool.
//
// If this is M_none, each call to get_stage() returns
// the same TextureStage pointer that was passed in (the
// pool is effectively disabled). If this is M_name,
// each call to get_stage() returns the last
// TextureStage passed in with the same name, whether it
// has different properties or not. If this is
// M_unique, then each call to get_stage() returns only
// TextureStages with identical properties.
//////////////////////////////////////////////////////////////////// 1 4 mode 1 3036
1554 14 Dtool_qQJqJOKA 0 6 1475 3036 0 14 Dtool_qQJqJOKA 331 ////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::get_mode
// Access: Published, Static
// Description: Returns the fundamental operating mode of the
// TextureStagePool. See set_mode().
//////////////////////////////////////////////////////////////////// 0
1555 14 Dtool_qQJqqXaZ 0 6 1476 3046 0 14 Dtool_qQJqqXaZ 497 ////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::garbage_collect
// Access: Public, Static
// Description: Releases only those TextureStages in the pool that have a
// reference count of exactly 1; i.e. only those
// TextureStages that are not being used outside of the pool.
// Returns the number of TextureStages released.
//////////////////////////////////////////////////////////////////// 0
1556 14 Dtool_qQJq7BOt 0 4 1477 3042 0 14 Dtool_qQJq7BOt 328 ////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::list_contents
// Access: Public, Static
// Description: Lists the contents of the TextureStage pool to the
// indicated output stream.
//////////////////////////////////////////////////////////////////// 1 3 out 1 3044
1557 14 Dtool_qQJqXgUq 0 4 1478 3042 0 14 Dtool_qQJqXgUq 323 ////////////////////////////////////////////////////////////////////
// Function: TextureStagePool::write
// Access: Published, Static
// Description: Lists the contents of the TextureStage pool to the
// indicated output stream.
//////////////////////////////////////////////////////////////////// 1 3 out 1 3044
401
2936 11 AdaptiveLru 0 26625 11 AdaptiveLru 11 AdaptiveLru 0 0 0 1 1558 1559 0 14 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 0 0 1 0 2937 0 0 0 0 572
////////////////////////////////////////////////////////////////////
// Class : AdaptiveLru
// Description : A basic LRU-type algorithm, except that it is
// adaptive and attempts to avoid evicting pages that
// have been used more frequently (even if less
// recently) than other pages.
//
// The interface is designed to be identical to that for
// SimpleLru, so that it may be used as a drop-in
// replacement.
////////////////////////////////////////////////////////////////////
2937 7 Namable 0 2049 7 Namable 7 Namable 0 0 0 0 0 0 0 0 0 0 0 0 324
////////////////////////////////////////////////////////////////////
// Class : Namable
// Description : A base class for all things which can have a name.
// The name is either empty or nonempty, but it is never
// NULL.
////////////////////////////////////////////////////////////////////
2938 15 AdaptiveLruPage 0 26625 15 AdaptiveLruPage 15 AdaptiveLruPage 0 0 0 1 1578 1580 0 12 1579 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 0 0 2 3 2939 1574 1575 3 2940 1576 1577 0 0 918
////////////////////////////////////////////////////////////////////
// Class : AdaptiveLruPage
// Description : One atomic piece that may be managed by a AdaptiveLru
// chain. To use this class, inherit from it and
// override evict_lru().
//
// This class multiply inherits from two classes which
// in turn both inherit from LinkedListNode. This is
// just a sneaky C++ trick to allow this class to
// inherit from LinkedListNode twice, so that pages can
// be stored on two different linked lists
// simultaneously. The AdaptiveLru class depends on
// this; it maintains its pages in two different lists,
// one grouped by priority, and one in order by next
// partial update needs.
////////////////////////////////////////////////////////////////////
2939 26 AdaptiveLruPageDynamicList 0 1050625 26 AdaptiveLruPageDynamicList 26 AdaptiveLruPageDynamicList 0 0 0 0 0 0 0 0 0 0 0 0 114
// See the comment in the head of AdaptiveLruPage, below, for an
// explanation of these two silly little classes.
2940 25 AdaptiveLruPageStaticList 0 1050625 25 AdaptiveLruPageStaticList 25 AdaptiveLruPageStaticList 0 0 0 0 0 0 0 0 0 0 0 0 0
2941 9 GeomEnums 0 141313 9 GeomEnums 9 GeomEnums 0 0 0 0 1592 0 0 0 0 0 0 7 2942 2943 2944 2945 2946 2947 2948 400
////////////////////////////////////////////////////////////////////
// Class : GeomEnums
// Description : This class exists just to provide scoping for the
// various enumerated types used by Geom,
// GeomVertexData, GeomVertexArrayData, GeomPrimitive,
// and other related classes.
////////////////////////////////////////////////////////////////////
2942 9 UsageHint 0 794624 20 GeomEnums::UsageHint 20 GeomEnums::UsageHint 2941 0 0 0 0 0 0 0 0 0 5 9 UH_client 20 GeomEnums::UH_client 0 9 UH_stream 20 GeomEnums::UH_stream 1 10 UH_dynamic 21 GeomEnums::UH_dynamic 2 9 UH_static 20 GeomEnums::UH_static 3 14 UH_unspecified 25 GeomEnums::UH_unspecified 4 0 382
// The usage hint describes to the rendering backend how often the
// data in question will be modified and/or rendered. It allows the
// backend to make appropriate choices about what part of memory the
// data should be stored in.
// The hint is provided as a performance optimization only, and does
// not constrain actual usage; although it may be an important
// optimization.
2943 13 GeomRendering 0 794624 24 GeomEnums::GeomRendering 24 GeomEnums::GeomRendering 2941 0 0 0 0 0 0 0 0 0 21 16 GR_indexed_point 27 GeomEnums::GR_indexed_point 1 16 GR_indexed_other 27 GeomEnums::GR_indexed_other 65536 15 GR_indexed_bits 26 GeomEnums::GR_indexed_bits 65537 8 GR_point 19 GeomEnums::GR_point 2 21 GR_point_uniform_size 32 GeomEnums::GR_point_uniform_size 4 17 GR_per_point_size 28 GeomEnums::GR_per_point_size 8 20 GR_point_perspective 31 GeomEnums::GR_point_perspective 16 21 GR_point_aspect_ratio 32 GeomEnums::GR_point_aspect_ratio 32 14 GR_point_scale 25 GeomEnums::GR_point_scale 64 15 GR_point_rotate 26 GeomEnums::GR_point_rotate 128 15 GR_point_sprite 26 GeomEnums::GR_point_sprite 256 26 GR_point_sprite_tex_matrix 37 GeomEnums::GR_point_sprite_tex_matrix 512 13 GR_point_bits 24 GeomEnums::GR_point_bits 1022 17 GR_triangle_strip 28 GeomEnums::GR_triangle_strip 1024 15 GR_triangle_fan 26 GeomEnums::GR_triangle_fan 2048 13 GR_line_strip 24 GeomEnums::GR_line_strip 4096 17 GR_composite_bits 28 GeomEnums::GR_composite_bits 7168 20 GR_flat_first_vertex 31 GeomEnums::GR_flat_first_vertex 8192 19 GR_flat_last_vertex 30 GeomEnums::GR_flat_last_vertex 16384 19 GR_shade_model_bits 30 GeomEnums::GR_shade_model_bits 24576 24 GR_texcoord_light_vector 35 GeomEnums::GR_texcoord_light_vector 32768 0 265
// This type specifies a number of bits that are used to represent
// the rendering requirements of a particular Geom, as well as the
// rendering capabilities of the GSG. The difference between the
// two indicates whether the Geom needs to be munged for the GSG.
2944 10 ShadeModel 0 794624 21 GeomEnums::ShadeModel 21 GeomEnums::ShadeModel 2941 0 0 0 0 0 0 0 0 0 4 10 SM_uniform 21 GeomEnums::SM_uniform 0 9 SM_smooth 20 GeomEnums::SM_smooth 1 20 SM_flat_first_vertex 31 GeomEnums::SM_flat_first_vertex 2 19 SM_flat_last_vertex 30 GeomEnums::SM_flat_last_vertex 3 0 235
// The shade model specifies whether the per-vertex colors and
// normals indexed by a given primitive truly represent per-vertex
// colors and normals, or whether they actually represent
// per-triangle flat-shaded colors and normals.
2945 13 PrimitiveType 0 794624 24 GeomEnums::PrimitiveType 24 GeomEnums::PrimitiveType 2941 0 0 0 0 0 0 0 0 0 5 7 PT_none 18 GeomEnums::PT_none 0 11 PT_polygons 22 GeomEnums::PT_polygons 1 8 PT_lines 19 GeomEnums::PT_lines 2 9 PT_points 20 GeomEnums::PT_points 3 10 PT_patches 21 GeomEnums::PT_patches 4 0 165
// The primitive type represents the core primitive type of a
// particular GeomPrimitive. It's used for determining what kind of
// antialiasing should be enabled.
2946 11 NumericType 0 794624 22 GeomEnums::NumericType 22 GeomEnums::NumericType 2941 0 0 0 0 0 0 0 0 0 8 8 NT_uint8 19 GeomEnums::NT_uint8 0 9 NT_uint16 20 GeomEnums::NT_uint16 1 9 NT_uint32 20 GeomEnums::NT_uint32 2 14 NT_packed_dcba 25 GeomEnums::NT_packed_dcba 3 14 NT_packed_dabc 25 GeomEnums::NT_packed_dabc 4 10 NT_float32 21 GeomEnums::NT_float32 5 10 NT_float64 21 GeomEnums::NT_float64 6 11 NT_stdfloat 22 GeomEnums::NT_stdfloat 7 0 120
// The numeric type determines what physical representation is used
// to encode a numeric value within the vertex data.
2947 8 Contents 0 794624 19 GeomEnums::Contents 19 GeomEnums::Contents 2941 0 0 0 0 0 0 0 0 0 8 7 C_other 18 GeomEnums::C_other 0 7 C_point 18 GeomEnums::C_point 1 12 C_clip_point 23 GeomEnums::C_clip_point 2 8 C_vector 19 GeomEnums::C_vector 3 10 C_texcoord 21 GeomEnums::C_texcoord 4 7 C_color 18 GeomEnums::C_color 5 7 C_index 18 GeomEnums::C_index 6 13 C_morph_delta 24 GeomEnums::C_morph_delta 7 0 194
// The contents determine the semantic meaning of a numeric value
// within the vertex data. This is also used to determine what
// automatic transforms might be applied to the various columns.
2948 13 AnimationType 0 794624 24 GeomEnums::AnimationType 24 GeomEnums::AnimationType 2941 0 0 0 0 0 0 0 0 0 3 7 AT_none 18 GeomEnums::AT_none 0 8 AT_panda 19 GeomEnums::AT_panda 1 11 AT_hardware 22 GeomEnums::AT_hardware 2 0 86
// The type of animation data that is represented by a particular
// GeomVertexFormat.
2949 23 GeomVertexAnimationSpec 0 141313 23 GeomVertexAnimationSpec 23 GeomVertexAnimationSpec 0 0 0 1 1593 1602 0 8 1594 1595 1596 1597 1598 1599 1600 1601 0 0 1 0 2941 0 0 0 0 881
////////////////////////////////////////////////////////////////////
// Class : GeomVertexAnimationSpec
// Description : This object describes how the vertex animation, if
// any, represented in a GeomVertexData is encoded.
//
// Vertex animation includes soft-skinned skeleton
// animation and morphs (blend shapes), and might be
// performed on the CPU by Panda, or passed down to the
// graphics backed to be performed on the hardware
// (depending on the hardware's advertised
// capabilities).
//
// Changing this setting doesn't by itself change the
// way the animation is actually performed; this just
// specifies how the vertices are set up to be animated.
////////////////////////////////////////////////////////////////////
2950 12 InternalName 0 75777 12 InternalName 12 InternalName 0 0 0 0 0 0 35 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 0 0 1 0 2951 0 0 0 0 837
////////////////////////////////////////////////////////////////////
// Class : InternalName
// Description : Encodes a string name in a hash table, mapping it to
// a pointer. This is used to tokenify names so they
// may be used efficiently in low-level Panda
// structures, for instance to differentiate the
// multiple sets of texture coordinates that might be
// stored on a Geom.
//
// InternalNames are hierarchical, with the '.' used by
// convention as a separator character. You can
// construct a single InternalName as a composition of
// one or more other names, or by giving it a source
// string directly.
////////////////////////////////////////////////////////////////////
2951 27 TypedWritableReferenceCount 0 2049 27 TypedWritableReferenceCount 27 TypedWritableReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 722
////////////////////////////////////////////////////////////////////
// Class : TypedWritableReferenceCount
// Description : A base class for things which need to inherit from
// both TypedWritable and from ReferenceCount. It's
// convenient to define this intermediate base class
// instead of multiply inheriting from the two classes
// each time they are needed, so that we can sensibly
// pass around pointers to things which are both
// TypedWritables and ReferenceCounters.
//
// See also TypedObject for detailed instructions.
////////////////////////////////////////////////////////////////////
2952 16 GeomVertexColumn 0 26625 16 GeomVertexColumn 16 GeomVertexColumn 0 0 0 1 1638 1640 0 20 1639 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 0 0 1 0 2941 0 0 0 0 441
////////////////////////////////////////////////////////////////////
// Class : GeomVertexColumn
// Description : This defines how a single column is interleaved
// within a vertex array stored within a Geom. The
// GeomVertexArrayFormat class maintains a list of these
// to completely define a particular array structure.
////////////////////////////////////////////////////////////////////
2953 21 GeomVertexArrayFormat 0 26625 21 GeomVertexArrayFormat 21 GeomVertexArrayFormat 0 0 0 1 1664 1666 0 24 1665 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1 3337 0 2 3 2951 1660 1661 3 2941 1662 1663 0 0 1094
////////////////////////////////////////////////////////////////////
// Class : GeomVertexArrayFormat
// Description : This describes the structure of a single array within
// a Geom data. See GeomVertexFormat for the parent
// class which collects together all of the individual
// GeomVertexArrayFormat objects.
//
// A particular array may include any number of standard
// or user-defined columns. All columns consist of a
// sequence of one or more numeric values, packed in any
// of a variety of formats; the semantic meaning of each
// column is defined in general with its contents
// member, and in particular by its name. The standard
// array types used most often are named "vertex",
// "normal", "texcoord", and "color"; other kinds of
// data may be piggybacked into the data record simply
// by choosing a unique name.
////////////////////////////////////////////////////////////////////
2954 16 GeomVertexFormat 0 26625 16 GeomVertexFormat 16 GeomVertexFormat 0 0 0 1 1694 1696 0 51 1695 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 8 3338 3339 3340 3341 3342 3343 3344 3345 0 2 3 2951 1690 1691 3 2941 1692 1693 0 0 1366
////////////////////////////////////////////////////////////////////
// Class : GeomVertexFormat
// Description : This class defines the physical layout of the vertex
// data stored within a Geom. The layout consists of a
// list of named columns, each of which has a numeric
// type and a size.
//
// The columns are typically interleaved within a single
// array, but they may also be distributed among
// multiple different arrays; at the extreme, each
// column may be alone within its own array (which
// amounts to a parallel-array definition).
//
// Thus, a GeomVertexFormat is really a list of
// GeomVertexArrayFormats, each of which contains a list
// of columns. However, a particular column name should
// not appear more than once in the format, even between
// different arrays.
//
// There are a handful of standard pre-defined
// GeomVertexFormat objects, or you may define your own
// as needed. You may record any combination of
// standard and/or user-defined columns in your custom
// GeomVertexFormat constructions.
////////////////////////////////////////////////////////////////////
2955 9 SimpleLru 0 26625 9 SimpleLru 9 SimpleLru 0 0 0 1 1751 1752 0 10 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 0 0 2 3 2956 1747 1748 3 2937 1749 1750 0 0 270
////////////////////////////////////////////////////////////////////
// Class : SimpleLru
// Description : An implementation of a very simple LRU algorithm.
// Also see AdaptiveLru.
////////////////////////////////////////////////////////////////////
2956 14 LinkedListNode 0 2049 14 LinkedListNode 14 LinkedListNode 0 0 0 0 0 0 0 0 0 0 0 0 762
////////////////////////////////////////////////////////////////////
// Class : LinkedListNode
// Description : This just stores the pointers to implement a
// doubly-linked list of some kind of object. There are
// occasions when a hand-rolled linked list is more
// appropriate than an STL container.
//
// Typically, each node of the linked list, as well as
// the root of the list, will inherit from this class.
//
// Note that this class is not inherently thread-safe;
// derived classes are responsible for protecting any
// calls into it within mutexes, if necessary.
////////////////////////////////////////////////////////////////////
2957 13 SimpleLruPage 0 26625 13 SimpleLruPage 13 SimpleLruPage 0 0 0 1 1765 1767 0 10 1766 1768 1769 1770 1771 1772 1773 1774 1775 1776 0 0 1 3 2956 1763 1764 0 0 340
////////////////////////////////////////////////////////////////////
// Class : SimpleLruPage
// Description : One atomic piece that may be managed by a SimpleLru
// chain. To use this class, inherit from it and
// override evict_lru().
////////////////////////////////////////////////////////////////////
2958 15 SimpleAllocator 0 26625 15 SimpleAllocator 15 SimpleAllocator 0 0 0 1 1779 1780 0 9 1781 1782 1783 1784 1785 1786 1787 1788 1789 0 0 1 3 2956 1777 1778 0 0 465
////////////////////////////////////////////////////////////////////
// Class : SimpleAllocator
// Description : An implementation of a very simple block allocator.
// This class can allocate ranges of nonnegative
// integers within a specified upper limit; it uses a
// simple first-fit algorithm to find the next available
// space.
////////////////////////////////////////////////////////////////////
2959 20 SimpleAllocatorBlock 0 26625 20 SimpleAllocatorBlock 20 SimpleAllocatorBlock 0 0 0 0 1790 0 9 1791 1792 1793 1794 1795 1796 1797 1798 1799 0 0 1 0 2956 0 0 0 0 267
////////////////////////////////////////////////////////////////////
// Class : SimpleAllocatorBlock
// Description : A single block as returned from
// SimpleAllocator::alloc().
////////////////////////////////////////////////////////////////////
2960 18 VertexDataSaveFile 0 75777 18 VertexDataSaveFile 18 VertexDataSaveFile 0 0 0 0 1780 0 3 1800 1801 1802 0 0 1 0 2958 0 0 0 0 399
////////////////////////////////////////////////////////////////////
// Class : VertexDataSaveFile
// Description : A temporary file to hold the vertex data that has
// been evicted from memory and written to disk. All
// vertex data arrays are written into one large flat
// file.
////////////////////////////////////////////////////////////////////
2961 14 VertexDataPage 0 43009 14 VertexDataPage 14 VertexDataPage 0 0 0 0 0 0 18 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 0 0 2 3 2958 1803 1804 3 2957 1805 1806 0 1 2962 410
////////////////////////////////////////////////////////////////////
// Class : VertexDataPage
// Description : A block of bytes that holds one or more
// VertexDataBlocks. The entire page may be paged out,
// in the form of in-memory compression or to an on-disk
// cache file, if necessary.
////////////////////////////////////////////////////////////////////
2962 8 RamClass 0 794624 24 VertexDataPage::RamClass 24 VertexDataPage::RamClass 2961 0 0 0 0 0 0 0 0 0 4 11 RC_resident 27 VertexDataPage::RC_resident 0 13 RC_compressed 29 VertexDataPage::RC_compressed 1 7 RC_disk 23 VertexDataPage::RC_disk 2 14 RC_end_of_list 30 VertexDataPage::RC_end_of_list 3 0 159
// These are used to indicate the current residency state of the
// page, which may or may not have been temporarily evicted to
// satisfy memory requirements.
2963 14 VertexDataBook 0 26625 14 VertexDataBook 14 VertexDataBook 0 0 0 1 1825 1826 0 5 1827 1828 1829 1830 1831 0 0 0 0 0 295
////////////////////////////////////////////////////////////////////
// Class : VertexDataBook
// Description : A collection of VertexDataPages, which can be used to
// allocate new VertexDataBlock objects.
////////////////////////////////////////////////////////////////////
2964 15 VertexDataBlock 0 141313 15 VertexDataBlock 15 VertexDataBlock 0 0 0 0 1838 0 2 1836 1837 0 0 2 3 2959 1832 1833 3 2965 1834 1835 0 0 304
////////////////////////////////////////////////////////////////////
// Class : VertexDataBlock
// Description : A block of bytes that stores the actual raw vertex
// data referenced by a GeomVertexArrayData object.
////////////////////////////////////////////////////////////////////
2965 14 ReferenceCount 0 2049 14 ReferenceCount 14 ReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 425
////////////////////////////////////////////////////////////////////
// Class : ReferenceCount
// Description : A base class for all things that want to be
// reference-counted. ReferenceCount works in
// conjunction with PointerTo to automatically delete
// objects when the last pointer to them goes away.
////////////////////////////////////////////////////////////////////
2966 17 ShaderUtilization 0 532481 17 ShaderUtilization 17 ShaderUtilization 0 0 0 0 0 0 0 0 0 0 4 8 SUT_none 8 SUT_none 0 9 SUT_basic 9 SUT_basic 1 12 SUT_advanced 12 SUT_advanced 2 15 SUT_unspecified 15 SUT_unspecified 3 0 0
2967 19 GeomVertexArrayData 0 26625 19 GeomVertexArrayData 19 GeomVertexArrayData 0 0 0 1 1845 1847 0 33 1846 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 0 0 3 3 2968 1839 1840 3 2957 1841 1842 3 2941 1843 1844 0 0 1050
////////////////////////////////////////////////////////////////////
// Class : GeomVertexArrayData
// Description : This is the data for one array of a GeomVertexData
// structure. Many GeomVertexData structures will only
// define one array, with all data elements interleaved
// (DirectX 8.0 and before insisted on this format);
// some will define multiple arrays.
//
// DirectX calls this concept of one array a "stream".
// It also closely correlates with the concept of a
// vertex buffer.
//
// This object is just a block of data. In general, you
// should not be directly messing with this object from
// application code. See GeomVertexData for the
// organizing structure, and see
// GeomVertexReader/Writer/Rewriter for high-level tools
// to manipulate the actual vertex data.
////////////////////////////////////////////////////////////////////
2968 17 CopyOnWriteObject 0 2049 17 CopyOnWriteObject 17 CopyOnWriteObject 0 0 0 0 0 0 0 0 0 0 0 0 376
////////////////////////////////////////////////////////////////////
// Class : CopyOnWriteObject
// Description : This base class provides basic reference counting,
// but also can be used with a CopyOnWritePointer to
// provide get_read_pointer() and get_write_pointer().
////////////////////////////////////////////////////////////////////
2969 25 GeomVertexArrayDataHandle 0 26625 25 GeomVertexArrayDataHandle 25 GeomVertexArrayDataHandle 0 0 0 0 1884 0 19 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 0 0 2 3 2965 1880 1881 3 2941 1882 1883 0 0 840
////////////////////////////////////////////////////////////////////
// Class : GeomVertexArrayDataHandle
// Description : This data object is returned by
// GeomVertexArrayData::get_handle() or modify_handle().
// As long as it exists, the data is locked; when the
// last of these destructs, the data is unlocked.
//
// Only one thread at a time may lock the data; other
// threads attempting to lock the data will block. A
// given thread may simultaneously lock the data
// multiple times.
//
// This class serves in lieu of a pair of
// GeomVertexArrayDataPipelineReader and
// GeomVertexArrayDataPipelineWriter classes
////////////////////////////////////////////////////////////////////
2970 16 GeomCacheManager 0 43009 16 GeomCacheManager 16 GeomCacheManager 0 0 0 0 0 0 5 1904 1905 1906 1907 1908 0 0 0 0 0 998
////////////////////////////////////////////////////////////////////
// Class : GeomCacheManager
// Description : This is used to keep track of, and limit the size of,
// the cache of munged vertices, which would otherwise
// be distributed through all of the GeomVertexData
// objects in the system.
//
// The actual data in the cache is not stored here, but
// rather it is distributed among the various
// GeomVertexData source objects. This allows the cache
// data to propagate through the multiprocess pipeline.
//
// This structure actually caches any of a number of
// different types of pointers, and mixes them all up in
// the same LRU cache list. Some of them (such as
// GeomMunger) are reference-counted here in the cache;
// most are not.
////////////////////////////////////////////////////////////////////
2971 15 VertexTransform 0 75777 15 VertexTransform 15 VertexTransform 0 0 0 0 0 0 9 1909 1910 1911 1912 1913 1914 1915 1916 1917 0 0 1 0 2951 0 0 0 0 558
////////////////////////////////////////////////////////////////////
// Class : VertexTransform
// Description : This is an abstract base class that holds a pointer
// to some transform, computed in some arbitrary way,
// that is to be applied to vertices during rendering.
// This is used to implement soft-skinned and animated
// vertices. Derived classes will define how the
// transform is actually computed.
////////////////////////////////////////////////////////////////////
2972 14 TransformTable 0 75777 14 TransformTable 14 TransformTable 0 0 0 1 1918 0 0 11 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1 3346 0 1 0 2951 0 0 0 0 593
////////////////////////////////////////////////////////////////////
// Class : TransformTable
// Description : Stores the total set of VertexTransforms that the
// vertices in a particular GeomVertexData object might
// depend on.
//
// This structure is used for a GeomVertexData set up to
// compute its dynamic vertices on the graphics card.
// See TransformBlendTable for one set up to compute
// its dynamic vertices on the CPU.
////////////////////////////////////////////////////////////////////
2973 14 TransformBlend 0 26625 14 TransformBlend 14 TransformBlend 0 0 0 1 1930 1932 0 23 1931 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1 3347 0 0 0 0 374
////////////////////////////////////////////////////////////////////
// Class : TransformBlend
// Description : This defines a single entry in a
// TransformBlendTable. It represents a unique
// combination of VertexTransform pointers and blend
// amounts.
////////////////////////////////////////////////////////////////////
2974 19 TransformBlendTable 0 75777 19 TransformBlendTable 19 TransformBlendTable 0 0 0 1 1955 0 0 14 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1 3348 0 1 0 2968 0 0 0 0 867
////////////////////////////////////////////////////////////////////
// Class : TransformBlendTable
// Description : This structure collects together the different
// combinations of transforms and blend amounts used by
// a GeomVertexData, to facilitate computing dynamic
// vertices on the CPU at runtime. Each vertex has a
// pointer to exactly one of the entries in this table,
// and each entry defines a number of transform/blend
// combinations.
//
// This structure is used for a GeomVertexData set up to
// compute its dynamic vertices on the CPU. See
// TransformTable for one set up to compute its
// dynamic vertices on the graphics card.
////////////////////////////////////////////////////////////////////
2975 12 VertexSlider 0 75777 12 VertexSlider 12 VertexSlider 0 0 0 0 0 0 6 1970 1971 1972 1973 1974 1975 0 0 1 0 2951 0 0 0 0 607
////////////////////////////////////////////////////////////////////
// Class : VertexSlider
// Description : This is an abstract base class that retains some
// slider value, which is a linear value that typically
// ranges from 0.0 to 1.0, and is used to control the
// animation of morphs (blend shapes).
//
// It is similar to VertexTransform, which keeps a full
// 4x4 transform matrix, but the VertexSlider only keeps
// a single float value.
////////////////////////////////////////////////////////////////////
2976 11 SliderTable 0 75777 11 SliderTable 11 SliderTable 0 0 0 1 1976 0 0 16 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1 3349 0 1 0 2951 0 0 0 0 696
////////////////////////////////////////////////////////////////////
// Class : SliderTable
// Description : Stores the total set of VertexSliders that the
// vertices in a particular GeomVertexData object might
// depend on.
//
// This is similar to a TransformTable, but it stores
// VertexSliders instead of VertexTransforms, and it
// stores them by name instead of by index number.
// Also, it is only used when animating vertices on the
// CPU, since GPU's don't support morphs at this point
// in time.
////////////////////////////////////////////////////////////////////
2977 14 GeomVertexData 0 26625 14 GeomVertexData 14 GeomVertexData 0 0 0 1 1997 1999 0 51 1998 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 1 3350 0 2 3 2968 1993 1994 3 2941 1995 1996 0 0 1574
////////////////////////////////////////////////////////////////////
// Class : GeomVertexData
// Description : This defines the actual numeric vertex data stored in
// a Geom, in the structure defined by a particular
// GeomVertexFormat object.
//
// The data consists of one or more arrays, each of
// which in turn consists of a series of rows, one per
// vertex. All arrays should have the same number of
// rows; each vertex is defined by the column data from
// a particular row across all arrays.
//
// Often, there will be only one array per Geom, and the
// various columns defined in the GeomVertexFormat will
// be interleaved within that array. However, it is
// also possible to have multiple different arrays, with
// a certain subset of the total columns defined in each
// array.
//
// However the data is distributed, the effect is of a
// single table of vertices, where each vertex is
// represented by one row of the table.
//
// In general, application code should not attempt to
// directly manipulate the vertex data through this
// structure; instead, use the GeomVertexReader,
// GeomVertexWriter, and GeomVertexRewriter objects to
// read and write vertex data at a high level.
////////////////////////////////////////////////////////////////////
2978 22 AnimateVerticesRequest 0 141313 22 AnimateVerticesRequest 22 AnimateVerticesRequest 0 0 0 1 2050 2053 0 2 2051 2052 0 0 1 0 2979 0 0 0 0 937
////////////////////////////////////////////////////////////////////
// Class : AnimateVerticesRequest
// Description : This class object manages a single asynchronous
// request to animate vertices on a GeomVertexData
// object. animate_vertices will be called with
// force=true (i.e. blocking) in a sub-thread (if
// threading is available). No result is stored or
// returned from this object. It is expected that the
// result will be cached and available for immediate
// use later during rendering. Thus it is important
// that the main thread block while these requests
// are being run (presumably on multiple CPUs/cores),
// to ensure that the data has been computed by the
// time it's needed.
////////////////////////////////////////////////////////////////////
2979 9 AsyncTask 0 2049 9 AsyncTask 9 AsyncTask 0 0 0 0 0 0 0 0 0 0 0 0 434
////////////////////////////////////////////////////////////////////
// Class : AsyncTask
// Description : This class represents a concrete task performed by an
// AsyncManager. Normally, you would subclass from this
// class, and override do_task(), to define the
// functionality you wish to have the task perform.
////////////////////////////////////////////////////////////////////
2980 12 SavedContext 0 141313 12 SavedContext 12 SavedContext 0 0 0 0 2055 0 1 2054 0 0 1 0 2981 0 0 0 0 395
////////////////////////////////////////////////////////////////////
// Class : SavedContext
// Description : This is the base class for all GSG-specific context
// objects, such as TextureContext and GeomContext. It
// exists mainly to provide some structural
// organization.
////////////////////////////////////////////////////////////////////
2981 11 TypedObject 0 2049 11 TypedObject 11 TypedObject 0 0 0 0 0 0 0 0 0 0 0 0 3666
////////////////////////////////////////////////////////////////////
// Class : TypedObject
// Description : This is an abstract class that all classes which
// use TypeHandle, and also provide virtual functions to
// support polymorphism, should inherit from. Each
// derived class should define get_type(), which should
// return the specific type of the derived class.
// Inheriting from this automatically provides support
// for is_of_type() and is_exact_type().
//
// All classes that inherit directly or indirectly from
// TypedObject should redefine get_type() and
// force_init_type(), as shown below. Some classes that
// do not inherit from TypedObject may still declare
// TypeHandles for themselves by defining methods called
// get_class_type() and init_type(). Classes such as
// these may serve as base classes, but the dynamic type
// identification system will be limited. Classes that
// do not inherit from TypedObject need not define the
// virtual functions get_type() and force_init_type()
// (or any other virtual functions).
//
// There is a specific layout for defining the
// overrides from this class. Keeping the definitions
// formatted just like these examples will allow
// someone in the future to use a sed (or similar)
// script to make global changes, if necessary. Avoid
// rearranging the braces or the order of the functions
// unless you're ready to change them in every file all
// at once.
//
// What follows are some examples that can be used in
// new classes that you create.
//
// @par In the class definition (.h file):
// @code
// public:
// static TypeHandle get_class_type() {
// return _type_handle;
// }
// static void init_type() {
// <<<BaseClassOne>>>::init_type();
// <<<BaseClassTwo>>>::init_type();
// <<<BaseClassN>>>::init_type();
// register_type(_type_handle, "<<<ThisClassStringName>>>",
// <<<BaseClassOne>>>::get_class_type(),
// <<<BaseClassTwo>>>::get_class_type(),
// <<<BaseClassN>>>::get_class_type());
// }
// virtual TypeHandle get_type() const {
// return get_class_type();
// }
// virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
//
// private:
// static TypeHandle _type_handle;
// @endcode
//
// @par In the class .cxx file:
// @code
// TypeHandle <<<ThisClassStringName>>>::_type_handle;
// @endcode
//
// @par In the class config_<<<PackageName>>>.cxx file:
// @code
// ConfigureFn(config_<<<PackageName>>>) {
// <<<ClassOne>>>::init_type();
// <<<ClassTwo>>>::init_type();
// <<<ClassN>>>::init_type();
// }
// @endcode
////////////////////////////////////////////////////////////////////
2982 13 BufferContext 0 26625 13 BufferContext 13 BufferContext 0 0 0 0 2058 0 5 2059 2060 2061 2062 2063 0 0 1 3 2980 2056 2057 0 0 752
////////////////////////////////////////////////////////////////////
// Class : BufferContext
// Description : This is a base class for those kinds of SavedContexts
// that occupy an easily-measured (and substantial)
// number of bytes in the video card's frame buffer
// memory or AGP memory. At the present, this includes
// most of the SavedContext types: VertexBufferContext
// and IndexBufferContext, as well as TextureContext.
//
// This class provides methods for tracking the video
// memory utilization, as well as residency of each
// object, via PStats.
////////////////////////////////////////////////////////////////////
2983 13 GeomPrimitive 0 26625 13 GeomPrimitive 13 GeomPrimitive 0 0 0 0 2069 0 69 2068 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 1 3351 0 2 3 2968 2064 2065 3 2941 2066 2067 0 0 1203
////////////////////////////////////////////////////////////////////
// Class : GeomPrimitive
// Description : This is an abstract base class for a family of
// classes that represent the fundamental geometry
// primitives that may be stored in a Geom.
//
// They all have in common the fact that they are
// defined by tables of vertex data stored in a
// GeomVertexData object. Each GeomPrimitive object
// contains an ordered list of integers, which index
// into the vertex array defined by the GeomVertexData
// and define the particular vertices of the
// GeomVertexData that are used for this primitive.
//
// The meaning of a given arrangement of vertices is
// defined by each individual primitive type; for
// instance, a GeomTriangle renders a triangle from each
// three consecutive vertices, while a GeomTriangleStrip
// renders a strip of (n - 2) connected triangles from
// each sequence of n vertices.
////////////////////////////////////////////////////////////////////
2984 12 TextureStage 0 75777 12 TextureStage 12 TextureStage 0 0 0 1 2138 0 0 54 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 0 0 1 0 2951 0 0 0 4 2985 2986 2987 2988 600
////////////////////////////////////////////////////////////////////
// Class : TextureStage
// Description : Defines the properties of a named stage of the
// multitexture pipeline. The TextureAttrib will
// associated a number of these stages with Texture
// objects, and the GSG will render geometry by sorting
// all of the currently active TextureStages in order
// and then issuing the appropriate rendering calls to
// activate them.
////////////////////////////////////////////////////////////////////
2985 4 Mode 0 794624 18 TextureStage::Mode 18 TextureStage::Mode 2984 0 0 0 0 0 0 0 0 0 16 10 M_modulate 24 TextureStage::M_modulate 0 7 M_decal 21 TextureStage::M_decal 1 7 M_blend 21 TextureStage::M_blend 2 9 M_replace 23 TextureStage::M_replace 3 5 M_add 19 TextureStage::M_add 4 9 M_combine 23 TextureStage::M_combine 5 19 M_blend_color_scale 33 TextureStage::M_blend_color_scale 6 15 M_modulate_glow 29 TextureStage::M_modulate_glow 7 16 M_modulate_gloss 30 TextureStage::M_modulate_gloss 8 8 M_normal 22 TextureStage::M_normal 9 15 M_normal_height 29 TextureStage::M_normal_height 10 6 M_glow 20 TextureStage::M_glow 11 7 M_gloss 21 TextureStage::M_gloss 12 8 M_height 22 TextureStage::M_height 13 10 M_selector 24 TextureStage::M_selector 14 14 M_normal_gloss 28 TextureStage::M_normal_gloss 15 0 0
2986 11 CombineMode 0 794624 25 TextureStage::CombineMode 25 TextureStage::CombineMode 2984 0 0 0 0 0 0 0 0 0 9 12 CM_undefined 26 TextureStage::CM_undefined 0 10 CM_replace 24 TextureStage::CM_replace 1 11 CM_modulate 25 TextureStage::CM_modulate 2 6 CM_add 20 TextureStage::CM_add 3 13 CM_add_signed 27 TextureStage::CM_add_signed 4 14 CM_interpolate 28 TextureStage::CM_interpolate 5 11 CM_subtract 25 TextureStage::CM_subtract 6 11 CM_dot3_rgb 25 TextureStage::CM_dot3_rgb 7 12 CM_dot3_rgba 26 TextureStage::CM_dot3_rgba 8 0 0
2987 13 CombineSource 0 794624 27 TextureStage::CombineSource 27 TextureStage::CombineSource 2984 0 0 0 0 0 0 0 0 0 7 12 CS_undefined 26 TextureStage::CS_undefined 0 10 CS_texture 24 TextureStage::CS_texture 1 11 CS_constant 25 TextureStage::CS_constant 2 16 CS_primary_color 30 TextureStage::CS_primary_color 3 11 CS_previous 25 TextureStage::CS_previous 4 23 CS_constant_color_scale 37 TextureStage::CS_constant_color_scale 5 20 CS_last_saved_result 34 TextureStage::CS_last_saved_result 6 0 0
2988 14 CombineOperand 0 794624 28 TextureStage::CombineOperand 28 TextureStage::CombineOperand 2984 0 0 0 0 0 0 0 0 0 5 12 CO_undefined 26 TextureStage::CO_undefined 0 12 CO_src_color 26 TextureStage::CO_src_color 1 22 CO_one_minus_src_color 36 TextureStage::CO_one_minus_src_color 2 12 CO_src_alpha 26 TextureStage::CO_src_alpha 3 22 CO_one_minus_src_alpha 36 TextureStage::CO_one_minus_src_alpha 4 0 0
2989 4 Geom 0 26625 4 Geom 4 Geom 0 0 0 1 2197 2199 0 60 2198 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 1 3352 0 2 3 2968 2193 2194 3 2941 2195 2196 0 0 687
////////////////////////////////////////////////////////////////////
// Class : Geom
// Description : A container for geometry primitives. This class
// associates one or more GeomPrimitive objects with a
// table of vertices defined by a GeomVertexData object.
// All of the primitives stored in a particular Geom are
// drawn from the same set of vertices (each primitive
// uses a subset of all of the vertices in the table),
// and all of them must be rendered at the same time, in
// the same graphics state.
////////////////////////////////////////////////////////////////////
2990 11 GeomContext 0 141313 11 GeomContext 11 GeomContext 0 0 0 0 2261 0 2 2259 2260 0 0 1 0 2980 0 0 0 0 856
////////////////////////////////////////////////////////////////////
// Class : GeomContext
// Description : This is a special class object that holds all the
// information returned by a particular GSG to indicate
// the geom's internal context identifier.
//
// Geoms typically have an immediate-mode and a
// retained-mode operation. When using geoms in
// retained-mode (in response to Geom::prepare()),
// the GSG will create some internal handle for the
// geom and store it here. The geom stores all of
// these handles internally.
//
// In the case of OpenGL, for example, a GeomContext
// corresponds to a display list identifier.
////////////////////////////////////////////////////////////////////
2991 9 GeomLines 0 75777 9 GeomLines 9 GeomLines 0 0 0 1 2262 2069 0 4 2263 2264 2265 2266 0 0 1 0 2983 0 0 0 0 229
////////////////////////////////////////////////////////////////////
// Class : GeomLines
// Description : Defines a series of disconnected line segments.
////////////////////////////////////////////////////////////////////
2992 14 GeomLinestrips 0 75777 14 GeomLinestrips 14 GeomLinestrips 0 0 0 1 2267 2069 0 4 2268 2269 2270 2271 0 0 1 0 2983 0 0 0 0 219
////////////////////////////////////////////////////////////////////
// Class : GeomLinestrips
// Description : Defines a series of line strips.
////////////////////////////////////////////////////////////////////
2993 11 GeomPatches 0 75777 11 GeomPatches 11 GeomPatches 0 0 0 1 2272 2069 0 4 2273 2274 2275 2276 0 0 1 0 2983 0 0 0 0 330
////////////////////////////////////////////////////////////////////
// Class : GeomPatches
// Description : Defines a series of "patches", fixed-size groupings
// of vertices that must be processed by a tessellation
// shader.
////////////////////////////////////////////////////////////////////
2994 10 GeomPoints 0 75777 10 GeomPoints 10 GeomPoints 0 0 0 1 2277 2069 0 4 2278 2279 2280 2281 0 0 1 0 2983 0 0 0 0 223
////////////////////////////////////////////////////////////////////
// Class : GeomPoints
// Description : Defines a series of disconnected points.
////////////////////////////////////////////////////////////////////
2995 13 GeomTriangles 0 75777 13 GeomTriangles 13 GeomTriangles 0 0 0 1 2282 2069 0 4 2283 2284 2285 2286 0 0 1 0 2983 0 0 0 0 229
////////////////////////////////////////////////////////////////////
// Class : GeomTriangles
// Description : Defines a series of disconnected triangles.
////////////////////////////////////////////////////////////////////
2996 11 GeomTrifans 0 75777 11 GeomTrifans 11 GeomTrifans 0 0 0 1 2287 2069 0 4 2288 2289 2290 2291 0 0 1 0 2983 0 0 0 0 218
////////////////////////////////////////////////////////////////////
// Class : GeomTrifans
// Description : Defines a series of triangle fans.
////////////////////////////////////////////////////////////////////
2997 13 GeomTristrips 0 75777 13 GeomTristrips 13 GeomTristrips 0 0 0 1 2292 2069 0 4 2293 2294 2295 2296 0 0 1 0 2983 0 0 0 0 222
////////////////////////////////////////////////////////////////////
// Class : GeomTristrips
// Description : Defines a series of triangle strips.
////////////////////////////////////////////////////////////////////
2998 16 GeomVertexReader 0 26625 16 GeomVertexReader 16 GeomVertexReader 0 0 0 1 2297 2299 0 35 2298 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 0 0 1 0 2941 0 0 0 0 1792
////////////////////////////////////////////////////////////////////
// Class : GeomVertexReader
// Description : This object provides a high-level interface for
// quickly reading a sequence of numeric values from a
// vertex table.
//
// It is particularly optimized for reading a single
// column of data values for a series of vertices,
// without changing columns between each number.
// Although you can also use one GeomVertexReader to
// read across the columns if it is convenient, by
// calling set_column() repeatedly at each vertex, it is
// faster to read down the columns, and to use a
// different GeomVertexReader for each column.
//
// Note that a GeomVertexReader does not keep a
// reference count to the actual vertex data buffer (it
// grabs the current data buffer from the GeomVertexData
// whenever set_column() is called). This means that it
// is important not to keep a GeomVertexReader object
// around over a long period of time in which the data
// buffer is likely to be deallocated; it is intended
// for making a quick pass over the data in one session.
//
// It also means that you should create any
// GeomVertexWriters *before* creating GeomVertexReaders
// on the same data, since the writer itself might cause
// the vertex buffer to be deallocated. Better yet, use
// a GeomVertexRewriter if you are going to create both
// of them anyway.
////////////////////////////////////////////////////////////////////
2999 16 GeomVertexWriter 0 26625 16 GeomVertexWriter 16 GeomVertexWriter 0 0 0 1 2334 2336 0 50 2335 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 0 0 1 0 2941 0 0 0 0 2541
////////////////////////////////////////////////////////////////////
// Class : GeomVertexWriter
// Description : This object provides a high-level interface for
// quickly writing a sequence of numeric values from a
// vertex table.
//
// This object can be used both to replace existing
// vertices in the table, or to extend the table with
// new vertices. The set_data*() family of methods can
// only be used to replace existing data; it is an error
// to allow these to run past the end of the data. The
// add_data*() family of methods, on the other hand, can
// be used to replace existing data or add new data; if
// you call set_row() into the middle of existing
// data the add_data*() methods will behave like the
// corresponding set_data*(), but if they run past the
// end of existing data they will quietly add new
// vertices.
//
// Like GeomVertexReader, the writer is particularly
// optimized for writing a single column of data values
// for a series of vertices, without changing columns
// between each number. Although you can also use one
// GeomVertexWriter to write across the columns if it is
// convenient, by calling set_column() repeatedly at
// each vertex, it is faster to write down the columns,
// and to use a different GeomVertexWriter for each
// column.
//
// Note that, like a GeomVertexReader, a
// GeomVertexWriter does not keep a reference count to
// the actual vertex data buffer. This means that it is
// important not to keep a GeomVertexWriter object
// around over a long period of time in which the data
// buffer is likely to be deallocated; it is intended
// for making a quick pass over the data in one session.
//
// It also means that you should create any
// GeomVertexWriters *before* creating GeomVertexReaders
// on the same data, since the writer itself might cause
// the vertex buffer to be deallocated. Better yet, use
// a GeomVertexRewriter if you are going to create both
// of them anyway.
////////////////////////////////////////////////////////////////////
3000 18 GeomVertexRewriter 0 26625 18 GeomVertexRewriter 18 GeomVertexRewriter 0 0 0 1 2390 2392 0 16 2391 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 0 0 2 3 2999 2386 2387 3 2998 2388 2389 0 0 988
////////////////////////////////////////////////////////////////////
// Class : GeomVertexRewriter
// Description : This object provides the functionality of both a
// GeomVertexReader and a GeomVertexWriter, combined
// together into one convenient package. It is designed
// for making a single pass over a GeomVertexData
// object, modifying rows as it goes.
//
// Although it doesn't provide any real performance
// benefit over using a separate reader and writer on
// the same data, it should probably be used in
// preference to a separate reader and writer, because
// it makes an effort to manage the reference counts
// properly between the reader and the writer to avoid
// accidentally dereferencing either array while
// recopying.
////////////////////////////////////////////////////////////////////
3001 7 Texture 0 26625 7 Texture 7 Texture 0 0 0 1 2412 2413 0 196 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 0 0 2 3 2951 2408 2409 3 2937 2410 2411 0 7 3002 3003 3004 3005 3006 3007 3008 1051
////////////////////////////////////////////////////////////////////
// Class : Texture
// Description : Represents a texture object, which is typically a
// single 2-d image but may also represent a 1-d or 3-d
// texture image, or the six 2-d faces of a cube map
// texture.
//
// A texture's image data might be stored in system RAM
// (see get_ram_image()) or its image may be represented
// in texture memory on one or more
// GraphicsStateGuardians (see prepare()), or both. The
// typical usage pattern is that a texture is loaded
// from an image file on disk, which copies its image
// data into system RAM; then the first time the texture
// is rendered its image data is copied to texture
// memory (actually, to the graphics API), and the
// system RAM image is automatically freed.
////////////////////////////////////////////////////////////////////
3002 11 TextureType 0 794624 20 Texture::TextureType 20 Texture::TextureType 3001 0 0 0 0 0 0 0 0 0 5 13 TT_1d_texture 22 Texture::TT_1d_texture 0 13 TT_2d_texture 22 Texture::TT_2d_texture 1 13 TT_3d_texture 22 Texture::TT_3d_texture 2 19 TT_2d_texture_array 28 Texture::TT_2d_texture_array 3 11 TT_cube_map 20 Texture::TT_cube_map 4 0 0
3003 13 ComponentType 0 794624 22 Texture::ComponentType 22 Texture::ComponentType 3001 0 0 0 0 0 0 0 0 0 5 15 T_unsigned_byte 24 Texture::T_unsigned_byte 0 16 T_unsigned_short 25 Texture::T_unsigned_short 1 7 T_float 16 Texture::T_float 2 19 T_unsigned_int_24_8 28 Texture::T_unsigned_int_24_8 3 5 T_int 14 Texture::T_int 4 0 0
3004 6 Format 0 794624 15 Texture::Format 15 Texture::Format 3001 0 0 0 0 0 0 0 0 0 37 15 F_depth_stencil 24 Texture::F_depth_stencil 1 13 F_color_index 22 Texture::F_color_index 2 5 F_red 14 Texture::F_red 3 7 F_green 16 Texture::F_green 4 6 F_blue 15 Texture::F_blue 5 7 F_alpha 16 Texture::F_alpha 6 5 F_rgb 14 Texture::F_rgb 7 6 F_rgb5 15 Texture::F_rgb5 8 6 F_rgb8 15 Texture::F_rgb8 9 7 F_rgb12 16 Texture::F_rgb12 10 8 F_rgb332 17 Texture::F_rgb332 11 6 F_rgba 15 Texture::F_rgba 12 6 F_rgbm 15 Texture::F_rgbm 13 7 F_rgba4 16 Texture::F_rgba4 14 7 F_rgba5 16 Texture::F_rgba5 15 7 F_rgba8 16 Texture::F_rgba8 16 8 F_rgba12 17 Texture::F_rgba12 17 11 F_luminance 20 Texture::F_luminance 18 17 F_luminance_alpha 26 Texture::F_luminance_alpha 19 21 F_luminance_alphamask 30 Texture::F_luminance_alphamask 20 8 F_rgba16 17 Texture::F_rgba16 21 8 F_rgba32 17 Texture::F_rgba32 22 17 F_depth_component 26 Texture::F_depth_component 23 19 F_depth_component16 28 Texture::F_depth_component16 24 19 F_depth_component24 28 Texture::F_depth_component24 25 19 F_depth_component32 28 Texture::F_depth_component32 26 5 F_r16 14 Texture::F_r16 27 6 F_rg16 15 Texture::F_rg16 28 7 F_rgb16 16 Texture::F_rgb16 29 6 F_srgb 15 Texture::F_srgb 30 12 F_srgb_alpha 21 Texture::F_srgb_alpha 31 12 F_sluminance 21 Texture::F_sluminance 32 18 F_sluminance_alpha 27 Texture::F_sluminance_alpha 33 6 F_r32i 15 Texture::F_r32i 34 5 F_r32 14 Texture::F_r32 35 6 F_rg32 15 Texture::F_rg32 36 7 F_rgb32 16 Texture::F_rgb32 37 0 0
3005 10 FilterType 0 794624 19 Texture::FilterType 19 Texture::FilterType 3001 0 0 0 0 0 0 0 0 0 9 10 FT_nearest 19 Texture::FT_nearest 0 9 FT_linear 18 Texture::FT_linear 1 25 FT_nearest_mipmap_nearest 34 Texture::FT_nearest_mipmap_nearest 2 24 FT_linear_mipmap_nearest 33 Texture::FT_linear_mipmap_nearest 3 24 FT_nearest_mipmap_linear 33 Texture::FT_nearest_mipmap_linear 4 23 FT_linear_mipmap_linear 32 Texture::FT_linear_mipmap_linear 5 9 FT_shadow 18 Texture::FT_shadow 6 10 FT_default 19 Texture::FT_default 7 10 FT_invalid 19 Texture::FT_invalid 8 0 0
3006 8 WrapMode 0 794624 17 Texture::WrapMode 17 Texture::WrapMode 3001 0 0 0 0 0 0 0 0 0 6 8 WM_clamp 17 Texture::WM_clamp 0 9 WM_repeat 18 Texture::WM_repeat 1 9 WM_mirror 18 Texture::WM_mirror 2 14 WM_mirror_once 23 Texture::WM_mirror_once 3 15 WM_border_color 24 Texture::WM_border_color 4 10 WM_invalid 19 Texture::WM_invalid 5 0 0
3007 15 CompressionMode 0 794624 24 Texture::CompressionMode 24 Texture::CompressionMode 3001 0 0 0 0 0 0 0 0 0 11 10 CM_default 19 Texture::CM_default 0 6 CM_off 15 Texture::CM_off 1 5 CM_on 14 Texture::CM_on 2 7 CM_fxt1 16 Texture::CM_fxt1 3 7 CM_dxt1 16 Texture::CM_dxt1 4 7 CM_dxt2 16 Texture::CM_dxt2 5 7 CM_dxt3 16 Texture::CM_dxt3 6 7 CM_dxt4 16 Texture::CM_dxt4 7 7 CM_dxt5 16 Texture::CM_dxt5 8 12 CM_pvr1_2bpp 21 Texture::CM_pvr1_2bpp 9 12 CM_pvr1_4bpp 21 Texture::CM_pvr1_4bpp 10 0 0
3008 12 QualityLevel 0 794624 21 Texture::QualityLevel 21 Texture::QualityLevel 3001 0 0 0 0 0 0 0 0 0 4 10 QL_default 19 Texture::QL_default 0 10 QL_fastest 19 Texture::QL_fastest 1 9 QL_normal 18 Texture::QL_normal 2 7 QL_best 16 Texture::QL_best 3 0 0
3009 6 Shader 0 75777 6 Shader 6 Shader 0 0 0 0 0 0 17 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 0 0 1 0 2951 0 0 0 4 3010 3011 3012 3013 418
////////////////////////////////////////////////////////////////////
// Class : Shader
// Summary: The Shader class is meant to select the Shader Language,
// select the available profile, compile the shader, and
// finally compile and store the shader parameters
// in the appropriate structure.
////////////////////////////////////////////////////////////////////
3010 14 ShaderLanguage 0 794624 22 Shader::ShaderLanguage 22 Shader::ShaderLanguage 3009 0 0 0 0 0 0 0 0 0 3 7 SL_none 15 Shader::SL_none 0 5 SL_Cg 13 Shader::SL_Cg 1 7 SL_GLSL 15 Shader::SL_GLSL 2 0 0
3011 10 ShaderType 0 794624 18 Shader::ShaderType 18 Shader::ShaderType 3009 0 0 0 0 0 0 0 0 0 7 7 ST_none 15 Shader::ST_none 0 9 ST_vertex 17 Shader::ST_vertex 1 11 ST_fragment 19 Shader::ST_fragment 2 11 ST_geometry 19 Shader::ST_geometry 3 15 ST_tess_control 23 Shader::ST_tess_control 4 18 ST_tess_evaluation 26 Shader::ST_tess_evaluation 5 10 ST_compute 18 Shader::ST_compute 6 0 0
3012 16 AutoShaderSwitch 0 794624 24 Shader::AutoShaderSwitch 24 Shader::AutoShaderSwitch 3009 0 0 0 0 0 0 0 0 0 5 9 AS_normal 17 Shader::AS_normal 1 7 AS_glow 15 Shader::AS_glow 2 8 AS_gloss 16 Shader::AS_gloss 4 7 AS_ramp 15 Shader::AS_ramp 8 9 AS_shadow 17 Shader::AS_shadow 16 0 0
3013 13 AutoShaderBit 0 794624 21 Shader::AutoShaderBit 21 Shader::AutoShaderBit 3009 0 0 0 0 0 0 0 0 0 5 20 bit_AutoShaderNormal 28 Shader::bit_AutoShaderNormal 0 18 bit_AutoShaderGlow 26 Shader::bit_AutoShaderGlow 1 19 bit_AutoShaderGloss 27 Shader::bit_AutoShaderGloss 2 18 bit_AutoShaderRamp 26 Shader::bit_AutoShaderRamp 3 20 bit_AutoShaderShadow 28 Shader::bit_AutoShaderShadow 4 0 0
3014 23 PreparedGraphicsObjects 0 75777 23 PreparedGraphicsObjects 23 PreparedGraphicsObjects 0 0 0 0 0 0 53 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 0 0 1 0 2965 0 0 0 0 1037
////////////////////////////////////////////////////////////////////
// Class : PreparedGraphicsObjects
// Description : A table of objects that are saved within the graphics
// context for reference by handle later. Generally,
// this represents things like OpenGL texture objects or
// display lists (or their equivalent on other
// platforms).
//
// This object simply records the pointers to the
// context objects created by the individual GSG's;
// these context objects will contain enough information
// to reference or release the actual object stored
// within the graphics context.
//
// These tables may potentially be shared between
// related graphics contexts, hence their storage here
// in a separate object rather than as a part of the
// GraphicsStateGuardian.
////////////////////////////////////////////////////////////////////
3015 18 IndexBufferContext 0 141313 18 IndexBufferContext 18 IndexBufferContext 0 0 0 0 2689 0 5 2684 2685 2686 2687 2688 0 0 2 3 2982 2680 2681 3 2938 2682 2683 0 0 634
////////////////////////////////////////////////////////////////////
// Class : IndexBufferContext
// Description : This is a special class object that holds all the
// information returned by a particular GSG to indicate
// the vertex data array's internal context identifier.
//
// This allows the GSG to cache the vertex data array in
// whatever way makes sense. For instance, DirectX can
// allocate a vertex buffer for the array. OpenGL can
// create a buffer object.
////////////////////////////////////////////////////////////////////
3016 4 Lens 0 141313 4 Lens 4 Lens 0 0 0 0 2757 0 67 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 0 0 1 0 2951 0 0 0 2 3017 3018 668
////////////////////////////////////////////////////////////////////
// Class : Lens
// Description : A base class for any number of different kinds of
// lenses, linear and otherwise. Presently, this
// includes perspective and orthographic lenses.
//
// A Lens object is the main part of a Camera node,
// which defines the fundamental interface to
// point-of-view for rendering. Lenses are also used in
// other contexts, however; for instance, a Spotlight is
// also defined using a lens.
////////////////////////////////////////////////////////////////////
3017 13 StereoChannel 0 794624 19 Lens::StereoChannel 19 Lens::StereoChannel 3016 0 0 0 0 0 0 0 0 0 4 7 SC_mono 13 Lens::SC_mono 0 7 SC_left 13 Lens::SC_left 1 8 SC_right 14 Lens::SC_right 2 9 SC_stereo 15 Lens::SC_stereo 3 0 0
3018 11 FromCorners 0 794624 17 Lens::FromCorners 17 Lens::FromCorners 3016 0 0 0 0 0 0 0 0 0 6 7 FC_roll 13 Lens::FC_roll 1 15 FC_camera_plane 21 Lens::FC_camera_plane 2 11 FC_off_axis 17 Lens::FC_off_axis 4 15 FC_aspect_ratio 21 Lens::FC_aspect_ratio 8 8 FC_shear 14 Lens::FC_shear 16 11 FC_keystone 17 Lens::FC_keystone 32 0 183
// These flags are passed in as the last parameter to control the
// behavior of set_frustum_from_corners(). See the documentation
// for that method for an explanation of each flag.
3019 8 Material 0 26625 8 Material 8 Material 0 0 0 1 2762 2764 0 33 2763 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 0 0 2 3 2951 2758 2759 3 2937 2760 2761 0 0 373
////////////////////////////////////////////////////////////////////
// Class : Material
// Description : Defines the way an object appears in the presence of
// lighting. A material is only necessary if lighting
// is to be enabled; otherwise, the material isn't used.
////////////////////////////////////////////////////////////////////
3020 12 MaterialPool 0 141313 12 MaterialPool 12 MaterialPool 0 0 0 0 2803 0 6 2797 2798 2799 2800 2801 2802 0 0 0 0 0 1029
////////////////////////////////////////////////////////////////////
// Class : MaterialPool
// Description : The MaterialPool (there is only one in the universe)
// serves to unify different pointers to the same
// Material, so we do not (a) waste memory with many
// different Material objects that are all equivalent,
// and (b) waste time switching the graphics engine
// between different Material states that are really the
// same thing.
//
// The idea is to create a temporary Material
// representing the lighting state you want to apply,
// then call get_material(), passing in your temporary
// Material. The return value will either be a new
// Material object, or it may be the the same object you
// supplied; in either case, it will have the same
// value.
////////////////////////////////////////////////////////////////////
3021 10 MatrixLens 0 141313 10 MatrixLens 10 MatrixLens 0 0 0 1 2804 2816 0 11 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 0 0 1 0 3016 0 0 0 0 504
////////////////////////////////////////////////////////////////////
// Class : MatrixLens
// Description : A completely generic linear lens. This is provided
// for the benefit of low-level code that wants to
// specify a perspective or orthographic frustum via an
// explicit projection matrix, but not mess around with
// fov's or focal lengths or any of that nonsense.
////////////////////////////////////////////////////////////////////
3022 16 OrthographicLens 0 141313 16 OrthographicLens 16 OrthographicLens 0 0 0 1 2817 2819 0 1 2818 0 0 1 0 3016 0 0 0 0 682
////////////////////////////////////////////////////////////////////
// Class : OrthographicLens
// Description : An orthographic lens. Although this kind of lens is
// linear, like a PerspectiveLens, it doesn't respect
// field-of-view or focal length parameters, and
// adjusting these will have no effect. Instead, its
// field of view is controlled by adjusting the
// film_size; the orthographic lens represents a planar
// projection onto its imaginary film of the specified
// size, hanging in space.
////////////////////////////////////////////////////////////////////
3023 15 PerspectiveLens 0 141313 15 PerspectiveLens 15 PerspectiveLens 0 0 0 1 2820 2822 0 1 2821 0 0 1 0 3016 0 0 0 0 229
////////////////////////////////////////////////////////////////////
// Class : PerspectiveLens
// Description : A perspective-type lens: a normal camera.
////////////////////////////////////////////////////////////////////
3024 20 TextureReloadRequest 0 141313 20 TextureReloadRequest 20 TextureReloadRequest 0 0 0 1 2823 2829 0 5 2824 2825 2826 2827 2828 0 0 1 0 2979 0 0 0 0 486
////////////////////////////////////////////////////////////////////
// Class : TextureReloadRequest
// Description : This loader request will call
// Texture::get_ram_image() in a sub-thread, to force
// the texture's image to be re-read from disk. It is
// used by GraphicsStateGuardian::async_reload_texture(),
// when get_incomplete_render() is true.
////////////////////////////////////////////////////////////////////
3025 14 TextureContext 0 141313 14 TextureContext 14 TextureContext 0 0 0 0 2844 0 10 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 0 0 2 3 2982 2830 2831 3 2938 2832 2833 0 0 748
////////////////////////////////////////////////////////////////////
// Class : TextureContext
// Description : This is a special class object that holds all the
// information returned by a particular GSG to indicate
// the texture's internal context identifier.
//
// Textures typically have an immediate-mode and a
// retained-mode operation. When using textures in
// retained-mode (in response to Texture::prepare()),
// the GSG will create some internal handle for the
// texture and store it here. The texture stores all of
// these handles internally.
////////////////////////////////////////////////////////////////////
3026 13 ShaderContext 0 141313 13 ShaderContext 13 ShaderContext 0 0 0 0 2847 0 2 2845 2846 0 0 1 0 2980 0 0 0 0 679
////////////////////////////////////////////////////////////////////
// Class : ShaderContext
// Description : The ShaderContext is meant to contain the compiled
// version of a shader string. ShaderContext is an
// abstract base class, there will be a subclass of it
// for each shader language and graphics API.
// Since the languages are so different and the
// graphics APIs have so little in common, the base
// class contains almost nothing. All the implementation
// details are in the subclasses.
////////////////////////////////////////////////////////////////////
3027 16 UserVertexSlider 0 141313 16 UserVertexSlider 16 UserVertexSlider 0 0 0 1 2848 2851 0 2 2849 2850 0 0 1 0 2975 0 0 0 0 390
////////////////////////////////////////////////////////////////////
// Class : UserVertexSlider
// Description : This is a specialization on VertexSlider that
// allows the user to specify any arbitrary slider
// valie he likes. This is rarely used except for
// testing.
////////////////////////////////////////////////////////////////////
3028 19 UserVertexTransform 0 141313 19 UserVertexTransform 19 UserVertexTransform 0 0 0 1 2852 2856 0 3 2853 2854 2855 0 0 1 0 2971 0 0 0 0 400
////////////////////////////////////////////////////////////////////
// Class : UserVertexTransform
// Description : This is a specialization on VertexTransform that
// allows the user to specify any arbitrary transform
// matrix he likes. This is rarely used except for
// testing.
////////////////////////////////////////////////////////////////////
3029 12 VideoTexture 0 141313 12 VideoTexture 12 VideoTexture 0 0 0 0 2865 0 4 2861 2862 2863 2864 0 0 2 3 3001 2857 2858 3 3030 2859 2860 0 0 480
////////////////////////////////////////////////////////////////////
// Class : VideoTexture
// Description : The base class for a family of animated Textures that
// take their input from a video source, such as a movie
// file. These Textures may be stopped, started,
// etc. using the AnimInterface controls, similar to an
// animated character.
////////////////////////////////////////////////////////////////////
3030 13 AnimInterface 0 2049 13 AnimInterface 13 AnimInterface 0 0 0 0 0 0 0 0 0 0 0 0 464
////////////////////////////////////////////////////////////////////
// Class : AnimInterface
// Description : This is the fundamental interface for things that
// have a play/loop/stop type interface for frame-based
// animation, such as animated characters. This is the
// base class for AnimControl and other, similar
// classes.
////////////////////////////////////////////////////////////////////
3031 19 VertexBufferContext 0 141313 19 VertexBufferContext 19 VertexBufferContext 0 0 0 0 2875 0 5 2870 2871 2872 2873 2874 0 0 2 3 2982 2866 2867 3 2938 2868 2869 0 0 635
////////////////////////////////////////////////////////////////////
// Class : VertexBufferContext
// Description : This is a special class object that holds all the
// information returned by a particular GSG to indicate
// the vertex data array's internal context identifier.
//
// This allows the GSG to cache the vertex data array in
// whatever way makes sense. For instance, DirectX can
// allocate a vertex buffer for the array. OpenGL can
// create a buffer object.
////////////////////////////////////////////////////////////////////
3032 17 TextureCollection 0 26625 17 TextureCollection 17 TextureCollection 0 0 0 1 2876 2878 0 20 2877 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 1 3353 0 0 0 0 290
////////////////////////////////////////////////////////////////////
// Class : TextureCollection
// Description : Manages a list of Texture objects, as returned by
// TexturePool::find_all_textures().
////////////////////////////////////////////////////////////////////
3033 11 TexturePool 0 141313 11 TexturePool 11 TexturePool 0 0 0 0 2920 0 22 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 0 0 0 0 0 470
////////////////////////////////////////////////////////////////////
// Class : TexturePool
// Description : This is the preferred interface for loading textures
// from image files. It unifies all references to the
// same filename, so that multiple models that reference
// the same textures don't waste texture memory
// unnecessarily.
////////////////////////////////////////////////////////////////////
3034 13 TexturePeeker 0 141313 13 TexturePeeker 13 TexturePeeker 0 0 0 0 2926 0 5 2921 2922 2923 2924 2925 0 0 1 0 2965 0 0 0 0 386
////////////////////////////////////////////////////////////////////
// Class : TexturePeeker
// Description : An instance of this object is returned by
// Texture::peek(). This object allows quick and easy
// inspection of a texture's texels by (u, v)
// coordinates.
////////////////////////////////////////////////////////////////////
3035 16 TextureStagePool 0 141313 16 TextureStagePool 16 TextureStagePool 0 0 0 0 2935 0 8 2927 2928 2929 2930 2931 2932 2933 2934 0 0 0 0 1 3036 624
////////////////////////////////////////////////////////////////////
// Class : TextureStagePool
// Description : The TextureStagePool (there is only one in the universe)
// serves to unify different pointers to the same
// TextureStage, mainly to help developers use a common
// pointer to access things that are loaded from
// different model files.
//
// It runs in one of three different modes, according to
// set_mode(). See that method for more information.
////////////////////////////////////////////////////////////////////
3036 4 Mode 0 794624 22 TextureStagePool::Mode 22 TextureStagePool::Mode 3035 0 0 0 0 0 0 0 0 0 3 6 M_none 24 TextureStagePool::M_none 0 6 M_name 24 TextureStagePool::M_name 1 8 M_unique 26 TextureStagePool::M_unique 2 0 0
3037 13 atomic string 0 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0
3038 12 unsigned int 0 8198 12 unsigned int 12 unsigned int 0 1 0 0 0 0 0 0 0 0 0 0 0
3039 13 AdaptiveLru * 0 8576 13 AdaptiveLru * 13 AdaptiveLru * 0 0 2936 0 0 0 0 0 0 0 0 0 0
3040 19 AdaptiveLru const * 0 8576 19 AdaptiveLru const * 19 AdaptiveLru const * 0 0 3041 0 0 0 0 0 0 0 0 0 0
3041 17 AdaptiveLru const 0 8832 17 AdaptiveLru const 17 AdaptiveLru const 0 0 2936 0 0 0 0 0 0 0 0 0 0
3042 4 void 0 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0
3043 4 bool 0 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0
3044 9 ostream * 0 8576 9 ostream * 9 ostream * 0 0 3045 0 0 0 0 0 0 0 0 0 0
3045 7 ostream 0 2048 7 ostream 7 ostream 0 0 0 0 0 0 0 0 0 0 0 0 0
3046 3 int 0 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0
3047 5 float 0 8194 5 float 5 float 0 2 0 0 0 0 0 0 0 0 0 0 0
3048 23 AdaptiveLruPage const * 0 8576 23 AdaptiveLruPage const * 23 AdaptiveLruPage const * 0 0 3049 0 0 0 0 0 0 0 0 0 0
3049 21 AdaptiveLruPage const 0 8832 21 AdaptiveLruPage const 21 AdaptiveLruPage const 0 0 2938 0 0 0 0 0 0 0 0 0 0
3050 17 AdaptiveLruPage * 0 8576 17 AdaptiveLruPage * 17 AdaptiveLruPage * 0 0 2938 0 0 0 0 0 0 0 0 0 0
3051 25 GeomVertexAnimationSpec * 0 8576 25 GeomVertexAnimationSpec * 25 GeomVertexAnimationSpec * 0 0 2949 0 0 0 0 0 0 0 0 0 0
3052 31 GeomVertexAnimationSpec const * 0 8576 31 GeomVertexAnimationSpec const * 31 GeomVertexAnimationSpec const * 0 0 3053 0 0 0 0 0 0 0 0 0 0
3053 29 GeomVertexAnimationSpec const 0 8832 29 GeomVertexAnimationSpec const 29 GeomVertexAnimationSpec const 0 0 2949 0 0 0 0 0 0 0 0 0 0
3054 14 InternalName * 0 8576 14 InternalName * 14 InternalName * 0 0 2950 0 0 0 0 0 0 0 0 0 0
3055 20 InternalName const * 0 8576 20 InternalName const * 20 InternalName const * 0 0 3056 0 0 0 0 0 0 0 0 0 0
3056 18 InternalName const 0 8832 18 InternalName const 18 InternalName const 0 0 2950 0 0 0 0 0 0 0 0 0 0
3057 10 TypeHandle 0 2048 10 TypeHandle 10 TypeHandle 0 0 0 0 0 0 0 0 0 0 0 0 1098
////////////////////////////////////////////////////////////////////
// Class : TypeHandle
// Description : TypeHandle is the identifier used to differentiate
// C++ class types. Any C++ classes that inherit from
// some base class, and must be differentiated at run
// time, should store a static TypeHandle object that
// can be queried through a static member function
// named get_class_type(). Most of the time, it is also
// desirable to inherit from TypedObject, which provides
// some virtual functions to return the TypeHandle for a
// particular instance.
//
// At its essence, a TypeHandle is simply a unique
// identifier that is assigned by the TypeRegistry. The
// TypeRegistry stores a tree of TypeHandles, so that
// ancestry of a particular type may be queried, and the
// type name may be retrieved for run-time display.
////////////////////////////////////////////////////////////////////
3058 12 TypeHandle * 0 8576 12 TypeHandle * 12 TypeHandle * 0 0 3057 0 0 0 0 0 0 0 0 0 0
3059 24 GeomVertexColumn const * 0 8576 24 GeomVertexColumn const * 24 GeomVertexColumn const * 0 0 3060 0 0 0 0 0 0 0 0 0 0
3060 22 GeomVertexColumn const 0 8832 22 GeomVertexColumn const 22 GeomVertexColumn const 0 0 2952 0 0 0 0 0 0 0 0 0 0
3061 18 GeomVertexColumn * 0 8576 18 GeomVertexColumn * 18 GeomVertexColumn * 0 0 2952 0 0 0 0 0 0 0 0 0 0
3062 23 GeomVertexArrayFormat * 0 8576 23 GeomVertexArrayFormat * 23 GeomVertexArrayFormat * 0 0 2953 0 0 0 0 0 0 0 0 0 0
3063 29 GeomVertexArrayFormat const * 0 8576 29 GeomVertexArrayFormat const * 29 GeomVertexArrayFormat const * 0 0 3064 0 0 0 0 0 0 0 0 0 0
3064 27 GeomVertexArrayFormat const 0 8832 27 GeomVertexArrayFormat const 27 GeomVertexArrayFormat const 0 0 2953 0 0 0 0 0 0 0 0 0 0
3065 27 GeomVertexArrayData const * 0 8576 27 GeomVertexArrayData const * 27 GeomVertexArrayData const * 0 0 3066 0 0 0 0 0 0 0 0 0 0
3066 25 GeomVertexArrayData const 0 8832 25 GeomVertexArrayData const 25 GeomVertexArrayData const 0 0 2967 0 0 0 0 0 0 0 0 0 0
3067 29 TypedWritableReferenceCount * 0 8576 29 TypedWritableReferenceCount * 29 TypedWritableReferenceCount * 0 0 2951 0 0 0 0 0 0 0 0 0 0
3068 11 GeomEnums * 0 8576 11 GeomEnums * 11 GeomEnums * 0 0 2941 0 0 0 0 0 0 0 0 0 0
3069 18 GeomVertexFormat * 0 8576 18 GeomVertexFormat * 18 GeomVertexFormat * 0 0 2954 0 0 0 0 0 0 0 0 0 0
3070 24 GeomVertexFormat const * 0 8576 24 GeomVertexFormat const * 24 GeomVertexFormat const * 0 0 3071 0 0 0 0 0 0 0 0 0 0
3071 22 GeomVertexFormat const 0 8832 22 GeomVertexFormat const 22 GeomVertexFormat const 0 0 2954 0 0 0 0 0 0 0 0 0 0
3072 22 GeomVertexData const * 0 8576 22 GeomVertexData const * 22 GeomVertexData const * 0 0 3073 0 0 0 0 0 0 0 0 0 0
3073 20 GeomVertexData const 0 8832 20 GeomVertexData const 20 GeomVertexData const 0 0 2977 0 0 0 0 0 0 0 0 0 0
3074 11 SimpleLru * 0 8576 11 SimpleLru * 11 SimpleLru * 0 0 2955 0 0 0 0 0 0 0 0 0 0
3075 17 SimpleLru const * 0 8576 17 SimpleLru const * 17 SimpleLru const * 0 0 3076 0 0 0 0 0 0 0 0 0 0
3076 15 SimpleLru const 0 8832 15 SimpleLru const 15 SimpleLru const 0 0 2955 0 0 0 0 0 0 0 0 0 0
3077 16 LinkedListNode * 0 8576 16 LinkedListNode * 16 LinkedListNode * 0 0 2956 0 0 0 0 0 0 0 0 0 0
3078 9 Namable * 0 8576 9 Namable * 9 Namable * 0 0 2937 0 0 0 0 0 0 0 0 0 0
3079 21 SimpleLruPage const * 0 8576 21 SimpleLruPage const * 21 SimpleLruPage const * 0 0 3080 0 0 0 0 0 0 0 0 0 0
3080 19 SimpleLruPage const 0 8832 19 SimpleLruPage const 19 SimpleLruPage const 0 0 2957 0 0 0 0 0 0 0 0 0 0
3081 15 SimpleLruPage * 0 8576 15 SimpleLruPage * 15 SimpleLruPage * 0 0 2957 0 0 0 0 0 0 0 0 0 0
3082 7 Mutex * 0 8576 7 Mutex * 7 Mutex * 0 0 3083 0 0 0 0 0 0 0 0 0 0
3083 5 Mutex 0 2048 5 Mutex 5 Mutex 0 0 0 0 0 0 0 0 0 0 0 0 0
3084 17 SimpleAllocator * 0 8576 17 SimpleAllocator * 17 SimpleAllocator * 0 0 2958 0 0 0 0 0 0 0 0 0 0
3085 22 SimpleAllocatorBlock * 0 8576 22 SimpleAllocatorBlock * 22 SimpleAllocatorBlock * 0 0 2959 0 0 0 0 0 0 0 0 0 0
3086 23 SimpleAllocator const * 0 8576 23 SimpleAllocator const * 23 SimpleAllocator const * 0 0 3087 0 0 0 0 0 0 0 0 0 0
3087 21 SimpleAllocator const 0 8832 21 SimpleAllocator const 21 SimpleAllocator const 0 0 2958 0 0 0 0 0 0 0 0 0 0
3088 28 SimpleAllocatorBlock const * 0 8576 28 SimpleAllocatorBlock const * 28 SimpleAllocatorBlock const * 0 0 3089 0 0 0 0 0 0 0 0 0 0
3089 26 SimpleAllocatorBlock const 0 8832 26 SimpleAllocatorBlock const 26 SimpleAllocatorBlock const 0 0 2959 0 0 0 0 0 0 0 0 0 0
3090 26 VertexDataSaveFile const * 0 8576 26 VertexDataSaveFile const * 26 VertexDataSaveFile const * 0 0 3091 0 0 0 0 0 0 0 0 0 0
3091 24 VertexDataSaveFile const 0 8832 24 VertexDataSaveFile const 24 VertexDataSaveFile const 0 0 2960 0 0 0 0 0 0 0 0 0 0
3092 22 VertexDataPage const * 0 8576 22 VertexDataPage const * 22 VertexDataPage const * 0 0 3093 0 0 0 0 0 0 0 0 0 0
3093 20 VertexDataPage const 0 8832 20 VertexDataPage const 20 VertexDataPage const 0 0 2961 0 0 0 0 0 0 0 0 0 0
3094 16 VertexDataPage * 0 8576 16 VertexDataPage * 16 VertexDataPage * 0 0 2961 0 0 0 0 0 0 0 0 0 0
3095 17 VertexDataBlock * 0 8576 17 VertexDataBlock * 17 VertexDataBlock * 0 0 2964 0 0 0 0 0 0 0 0 0 0
3096 16 VertexDataBook * 0 8576 16 VertexDataBook * 16 VertexDataBook * 0 0 2963 0 0 0 0 0 0 0 0 0 0
3097 20 VertexDataSaveFile * 0 8576 20 VertexDataSaveFile * 20 VertexDataSaveFile * 0 0 2960 0 0 0 0 0 0 0 0 0 0
3098 22 VertexDataBook const * 0 8576 22 VertexDataBook const * 22 VertexDataBook const * 0 0 3099 0 0 0 0 0 0 0 0 0 0
3099 20 VertexDataBook const 0 8832 20 VertexDataBook const 20 VertexDataBook const 0 0 2963 0 0 0 0 0 0 0 0 0 0
3100 23 VertexDataBlock const * 0 8576 23 VertexDataBlock const * 23 VertexDataBlock const * 0 0 3101 0 0 0 0 0 0 0 0 0 0
3101 21 VertexDataBlock const 0 8832 21 VertexDataBlock const 21 VertexDataBlock const 0 0 2964 0 0 0 0 0 0 0 0 0 0
3102 16 ReferenceCount * 0 8576 16 ReferenceCount * 16 ReferenceCount * 0 0 2965 0 0 0 0 0 0 0 0 0 0
3103 21 GeomVertexArrayData * 0 8576 21 GeomVertexArrayData * 21 GeomVertexArrayData * 0 0 2967 0 0 0 0 0 0 0 0 0 0
3104 9 UpdateSeq 0 2048 9 UpdateSeq 9 UpdateSeq 0 0 0 0 0 0 0 0 0 0 0 0 1140
////////////////////////////////////////////////////////////////////
// Class : UpdateSeq
// Description : This is a sequence number that increments
// monotonically. It can be used to track cache
// updates, or serve as a kind of timestamp for any
// changing properties.
//
// A special class is used instead of simply an int, so
// we can elegantly handle such things as wraparound and
// special cases. There are two special cases.
// Firstly, a sequence number is 'initial' when it is
// first created. This sequence is older than any other
// sequence number. Secondly, a sequence number may be
// explicitly set to 'old'. This is older than any
// other sequence number except 'initial'. Finally, we
// have the explicit number 'fresh', which is newer
// than any other sequence number. All other sequences
// are numeric and are monotonically increasing.
////////////////////////////////////////////////////////////////////
3105 11 UpdateSeq * 0 8576 11 UpdateSeq * 11 UpdateSeq * 0 0 3104 0 0 0 0 0 0 0 0 0 0
3106 31 GeomVertexArrayDataHandle const 0 8832 31 GeomVertexArrayDataHandle const 31 GeomVertexArrayDataHandle const 0 0 2969 0 0 0 0 0 0 0 0 0 0
3107 8 Thread * 0 8576 8 Thread * 8 Thread * 0 0 3108 0 0 0 0 0 0 0 0 0 0
3108 6 Thread 0 2048 6 Thread 6 Thread 0 0 0 0 0 0 0 0 0 0 0 0 668
////////////////////////////////////////////////////////////////////
// Class : Thread
// Description : A thread; that is, a lightweight process. This is an
// abstract base class; to use it, you must subclass
// from it and redefine thread_main().
//
// The thread itself will keep a reference count on the
// Thread object while it is running; when the thread
// returns from its root function, the Thread object
// will automatically be destructed if no other pointers
// are referencing it.
////////////////////////////////////////////////////////////////////
3109 33 GeomVertexArrayDataHandle const * 0 8576 33 GeomVertexArrayDataHandle const * 33 GeomVertexArrayDataHandle const * 0 0 3106 0 0 0 0 0 0 0 0 0 0
3110 27 GeomVertexArrayDataHandle * 0 8576 27 GeomVertexArrayDataHandle * 27 GeomVertexArrayDataHandle * 0 0 2969 0 0 0 0 0 0 0 0 0 0
3111 25 PreparedGraphicsObjects * 0 8576 25 PreparedGraphicsObjects * 25 PreparedGraphicsObjects * 0 0 3014 0 0 0 0 0 0 0 0 0 0
3112 27 GraphicsStateGuardianBase * 0 8576 27 GraphicsStateGuardianBase * 27 GraphicsStateGuardianBase * 0 0 3113 0 0 0 0 0 0 0 0 0 0
3113 25 GraphicsStateGuardianBase 0 2048 25 GraphicsStateGuardianBase 25 GraphicsStateGuardianBase 0 0 0 0 0 0 0 0 0 0 0 0 957
////////////////////////////////////////////////////////////////////
// Class : GraphicsStateGuardianBase
// Description : This is a base class for the GraphicsStateGuardian
// class, which is itself a base class for the various
// GSG's for different platforms. This class contains
// all the function prototypes to support the
// double-dispatch of GSG to geoms, transitions, etc. It
// lives in a separate class in its own package so we
// can avoid circular build dependency problems.
//
// GraphicsStateGuardians are not actually writable to
// bam files, of course, but they may be passed as event
// parameters, so they inherit from
// TypedWritableReferenceCount instead of
// TypedReferenceCount for that convenience.
////////////////////////////////////////////////////////////////////
3114 21 VertexBufferContext * 0 8576 21 VertexBufferContext * 21 VertexBufferContext * 0 0 3031 0 0 0 0 0 0 0 0 0 0
3115 10 PyObject * 0 8576 10 PyObject * 10 PyObject * 0 0 3116 0 0 0 0 0 0 0 0 0 0
3116 8 PyObject 0 2048 8 PyObject 8 PyObject 0 0 0 0 0 0 0 0 0 0 0 0 0
3117 11 Py_buffer * 0 8576 11 Py_buffer * 11 Py_buffer * 0 0 3118 0 0 0 0 0 0 0 0 0 0
3118 9 Py_buffer 0 1024 9 Py_buffer 9 Py_buffer 0 0 0 0 0 0 0 0 0 0 0 0 0
3119 19 CopyOnWriteObject * 0 8576 19 CopyOnWriteObject * 19 CopyOnWriteObject * 0 0 2968 0 0 0 0 0 0 0 0 0 0
3120 24 GeomCacheManager const * 0 8576 24 GeomCacheManager const * 24 GeomCacheManager const * 0 0 3121 0 0 0 0 0 0 0 0 0 0
3121 22 GeomCacheManager const 0 8832 22 GeomCacheManager const 22 GeomCacheManager const 0 0 2970 0 0 0 0 0 0 0 0 0 0
3122 18 GeomCacheManager * 0 8576 18 GeomCacheManager * 18 GeomCacheManager * 0 0 2970 0 0 0 0 0 0 0 0 0 0
3123 23 VertexTransform const * 0 8576 23 VertexTransform const * 23 VertexTransform const * 0 0 3124 0 0 0 0 0 0 0 0 0 0
3124 21 VertexTransform const 0 8832 21 VertexTransform const 21 VertexTransform const 0 0 2971 0 0 0 0 0 0 0 0 0 0
3125 11 LMatrix4f * 0 8576 11 LMatrix4f * 11 LMatrix4f * 0 0 3126 0 0 0 0 0 0 0 0 0 0
3126 9 LMatrix4f 0 2048 9 LMatrix4f 9 LMatrix4f 0 0 0 0 0 0 0 3 3354 3355 3356 0 0 0 0 215
////////////////////////////////////////////////////////////////////
// Class : LMatrix4
// Description : This is a 4-by-4 transform matrix.
////////////////////////////////////////////////////////////////////
3127 17 LMatrix4f const * 0 8576 17 LMatrix4f const * 17 LMatrix4f const * 0 0 3128 0 0 0 0 0 0 0 0 0 0
3128 15 LMatrix4f const 0 8832 15 LMatrix4f const 15 LMatrix4f const 0 0 3126 0 0 0 0 0 0 0 0 0 0
3129 16 TransformTable * 0 8576 16 TransformTable * 16 TransformTable * 0 0 2972 0 0 0 0 0 0 0 0 0 0
3130 22 TransformTable const * 0 8576 22 TransformTable const * 22 TransformTable const * 0 0 3131 0 0 0 0 0 0 0 0 0 0
3131 20 TransformTable const 0 8832 20 TransformTable const 20 TransformTable const 0 0 2972 0 0 0 0 0 0 0 0 0 0
3132 16 TransformBlend * 0 8576 16 TransformBlend * 16 TransformBlend * 0 0 2973 0 0 0 0 0 0 0 0 0 0
3133 22 TransformBlend const * 0 8576 22 TransformBlend const * 22 TransformBlend const * 0 0 3134 0 0 0 0 0 0 0 0 0 0
3134 20 TransformBlend const 0 8832 20 TransformBlend const 20 TransformBlend const 0 0 2973 0 0 0 0 0 0 0 0 0 0
3135 10 LPoint3d * 0 8576 10 LPoint3d * 10 LPoint3d * 0 0 3136 0 0 0 0 0 0 0 0 0 0
3136 8 LPoint3d 0 2048 8 LPoint3d 8 LPoint3d 0 0 0 0 0 0 0 0 0 0 0 0 1083
// Filename: lpoint3_src.h
// Created by: drose (25Sep99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LPoint3
// Description : This is a three-component point in space (as opposed
// to a three-component vector, which represents a
// direction and a distance). Some of the methods are
// slightly different between LPoint3 and LVector3; in
// particular, subtraction of two points yields a
// vector, while addition of a vector and a point yields
// a point.
////////////////////////////////////////////////////////////////////
3137 10 LPoint3f * 0 8576 10 LPoint3f * 10 LPoint3f * 0 0 3138 0 0 0 0 0 0 0 0 0 0
3138 8 LPoint3f 0 2048 8 LPoint3f 8 LPoint3f 0 0 0 0 0 0 0 0 0 0 0 0 1083
// Filename: lpoint3_src.h
// Created by: drose (25Sep99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LPoint3
// Description : This is a three-component point in space (as opposed
// to a three-component vector, which represents a
// direction and a distance). Some of the methods are
// slightly different between LPoint3 and LVector3; in
// particular, subtraction of two points yields a
// vector, while addition of a vector and a point yields
// a point.
////////////////////////////////////////////////////////////////////
3139 10 LPoint4d * 0 8576 10 LPoint4d * 10 LPoint4d * 0 0 3140 0 0 0 0 0 0 0 0 0 0
3140 8 LPoint4d 0 2048 8 LPoint4d 8 LPoint4d 0 0 0 0 0 0 0 0 0 0 0 0 707
// Filename: lpoint4_src.h
// Created by: drose (08Mar00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LPoint4
// Description : This is a four-component point in space.
////////////////////////////////////////////////////////////////////
3141 10 LPoint4f * 0 8576 10 LPoint4f * 10 LPoint4f * 0 0 3142 0 0 0 0 0 0 0 0 0 0
3142 8 LPoint4f 0 2048 8 LPoint4f 8 LPoint4f 0 0 0 0 0 0 0 0 0 0 0 0 707
// Filename: lpoint4_src.h
// Created by: drose (08Mar00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LPoint4
// Description : This is a four-component point in space.
////////////////////////////////////////////////////////////////////
3143 11 LVector3d * 0 8576 11 LVector3d * 11 LVector3d * 0 0 3144 0 0 0 0 0 0 0 0 0 0
3144 9 LVector3d 0 2048 9 LVector3d 9 LVector3d 0 0 0 0 0 0 0 0 0 0 0 0 1086
// Filename: lvector3_src.h
// Created by: drose (24Sep99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LVector3
// Description : This is a three-component vector distance (as opposed
// to a three-component point, which represents a
// particular point in space). Some of the methods are
// slightly different between LPoint3 and LVector3; in
// particular, subtraction of two points yields a
// vector, while addition of a vector and a point yields
// a point.
////////////////////////////////////////////////////////////////////
3145 11 LVector3f * 0 8576 11 LVector3f * 11 LVector3f * 0 0 3146 0 0 0 0 0 0 0 0 0 0
3146 9 LVector3f 0 2048 9 LVector3f 9 LVector3f 0 0 0 0 0 0 0 0 0 0 0 0 1086
// Filename: lvector3_src.h
// Created by: drose (24Sep99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LVector3
// Description : This is a three-component vector distance (as opposed
// to a three-component point, which represents a
// particular point in space). Some of the methods are
// slightly different between LPoint3 and LVector3; in
// particular, subtraction of two points yields a
// vector, while addition of a vector and a point yields
// a point.
////////////////////////////////////////////////////////////////////
3147 21 TransformBlendTable * 0 8576 21 TransformBlendTable * 21 TransformBlendTable * 0 0 2974 0 0 0 0 0 0 0 0 0 0
3148 27 TransformBlendTable const * 0 8576 27 TransformBlendTable const * 27 TransformBlendTable const * 0 0 3149 0 0 0 0 0 0 0 0 0 0
3149 25 TransformBlendTable const 0 8832 25 TransformBlendTable const 25 TransformBlendTable const 0 0 2974 0 0 0 0 0 0 0 0 0 0
3150 19 SparseArray const * 0 8576 19 SparseArray const * 19 SparseArray const * 0 0 3151 0 0 0 0 0 0 0 0 0 0
3151 17 SparseArray const 0 8832 17 SparseArray const 17 SparseArray const 0 0 3152 0 0 0 0 0 0 0 0 0 0
3152 11 SparseArray 0 2048 11 SparseArray 11 SparseArray 0 0 0 0 0 0 0 0 0 0 0 0 1136
////////////////////////////////////////////////////////////////////
// Class : SparseArray
// Description : This class records a set of integers, where each
// integer is either present or not present in the set.
//
// It is similar in principle and in interface to a
// BitArray (which can be thought of as a set of
// integers, one integer corresponding to each different
// bit position), but the SparseArray is implemented as
// a list of min/max subrange lists, rather than as a
// bitmask.
//
// This makes it particularly efficient for storing sets
// which consist of large sections of consecutively
// included or consecutively excluded elements, with
// arbitrarily large integers, but particularly
// inefficient for doing boolean operations such as & or
// |.
//
// Also, unlike BitArray, the SparseArray can store
// negative integers.
////////////////////////////////////////////////////////////////////
3153 13 SparseArray * 0 8576 13 SparseArray * 13 SparseArray * 0 0 3152 0 0 0 0 0 0 0 0 0 0
3154 20 VertexSlider const * 0 8576 20 VertexSlider const * 20 VertexSlider const * 0 0 3155 0 0 0 0 0 0 0 0 0 0
3155 18 VertexSlider const 0 8832 18 VertexSlider const 18 VertexSlider const 0 0 2975 0 0 0 0 0 0 0 0 0 0
3156 13 SliderTable * 0 8576 13 SliderTable * 13 SliderTable * 0 0 2976 0 0 0 0 0 0 0 0 0 0
3157 19 SliderTable const * 0 8576 19 SliderTable const * 19 SliderTable const * 0 0 3158 0 0 0 0 0 0 0 0 0 0
3158 17 SliderTable const 0 8832 17 SliderTable const 17 SliderTable const 0 0 2976 0 0 0 0 0 0 0 0 0 0
3159 16 GeomVertexData * 0 8576 16 GeomVertexData * 16 GeomVertexData * 0 0 2977 0 0 0 0 0 0 0 0 0 0
3160 18 LVecBase4f const * 0 8576 18 LVecBase4f const * 18 LVecBase4f const * 0 0 3161 0 0 0 0 0 0 0 0 0 0
3161 16 LVecBase4f const 0 8832 16 LVecBase4f const 16 LVecBase4f const 0 0 3162 0 0 0 0 0 0 0 0 0 0
3162 10 LVecBase4f 0 2048 10 LVecBase4f 10 LVecBase4f 0 0 0 0 0 0 0 0 0 0 0 0 265
////////////////////////////////////////////////////////////////////
// Class : LVecBase4
// Description : This is the base class for all three-component
// vectors and points.
////////////////////////////////////////////////////////////////////
3163 24 AnimateVerticesRequest * 0 8576 24 AnimateVerticesRequest * 24 AnimateVerticesRequest * 0 0 2978 0 0 0 0 0 0 0 0 0 0
3164 30 AnimateVerticesRequest const * 0 8576 30 AnimateVerticesRequest const * 30 AnimateVerticesRequest const * 0 0 3165 0 0 0 0 0 0 0 0 0 0
3165 28 AnimateVerticesRequest const 0 8832 28 AnimateVerticesRequest const 28 AnimateVerticesRequest const 0 0 2978 0 0 0 0 0 0 0 0 0 0
3166 21 BufferContext const * 0 8576 21 BufferContext const * 21 BufferContext const * 0 0 3167 0 0 0 0 0 0 0 0 0 0
3167 19 BufferContext const 0 8832 19 BufferContext const 19 BufferContext const 0 0 2982 0 0 0 0 0 0 0 0 0 0
3168 15 BufferContext * 0 8576 15 BufferContext * 15 BufferContext * 0 0 2982 0 0 0 0 0 0 0 0 0 0
3169 14 SavedContext * 0 8576 14 SavedContext * 14 SavedContext * 0 0 2980 0 0 0 0 0 0 0 0 0 0
3170 15 GeomPrimitive * 0 8576 15 GeomPrimitive * 15 GeomPrimitive * 0 0 2983 0 0 0 0 0 0 0 0 0 0
3171 21 GeomPrimitive const * 0 8576 21 GeomPrimitive const * 21 GeomPrimitive const * 0 0 3172 0 0 0 0 0 0 0 0 0 0
3172 19 GeomPrimitive const 0 8832 19 GeomPrimitive const 19 GeomPrimitive const 0 0 2983 0 0 0 0 0 0 0 0 0 0
3173 8 CPTA_int 0 2048 26 ConstPointerToArray< int > 26 ConstPointerToArray< int > 0 0 0 0 0 0 0 0 0 0 0 0 0
3174 28 ConstPointerToArray< int > * 0 8576 28 ConstPointerToArray< int > * 28 ConstPointerToArray< int > * 0 0 3173 0 0 0 0 0 0 0 0 0 0
3175 7 PTA_int 0 2048 21 PointerToArray< int > 21 PointerToArray< int > 0 0 0 0 0 0 0 0 0 0 0 0 0
3176 23 PointerToArray< int > * 0 8576 23 PointerToArray< int > * 23 PointerToArray< int > * 0 0 3175 0 0 0 0 0 0 0 0 0 0
3177 14 TextureStage * 0 8576 14 TextureStage * 14 TextureStage * 0 0 2984 0 0 0 0 0 0 0 0 0 0
3178 20 TextureStage const * 0 8576 20 TextureStage const * 20 TextureStage const * 0 0 3179 0 0 0 0 0 0 0 0 0 0
3179 18 TextureStage const 0 8832 18 TextureStage const 18 TextureStage const 0 0 2984 0 0 0 0 0 0 0 0 0 0
3180 12 LVecBase4f * 0 8576 12 LVecBase4f * 12 LVecBase4f * 0 0 3162 0 0 0 0 0 0 0 0 0 0
3181 6 Geom * 0 8576 6 Geom * 6 Geom * 0 0 2989 0 0 0 0 0 0 0 0 0 0
3182 12 Geom const * 0 8576 12 Geom const * 12 Geom const * 0 0 3183 0 0 0 0 0 0 0 0 0 0
3183 10 Geom const 0 8832 10 Geom const 10 Geom const 0 0 2989 0 0 0 0 0 0 0 0 0 0
3184 20 BoundingVolume const 0 8832 20 BoundingVolume const 20 BoundingVolume const 0 0 3185 0 0 0 0 0 0 0 0 0 0
3185 14 BoundingVolume 0 2048 14 BoundingVolume 14 BoundingVolume 0 0 0 0 0 0 0 0 0 0 0 0 596
////////////////////////////////////////////////////////////////////
// Class : BoundingVolume
// Description : This is an abstract class for any volume in any sense
// which can be said to define the locality of reference
// of a node in a graph, along with all of its
// descendants. It is not necessarily a geometric
// volume (although see GeometricBoundingVolume); this
// is simply an abstract interface for bounds of any
// sort.
////////////////////////////////////////////////////////////////////
3186 22 BoundingVolume const * 0 8576 22 BoundingVolume const * 22 BoundingVolume const * 0 0 3184 0 0 0 0 0 0 0 0 0 0
3187 10 BoundsType 0 794624 26 BoundingVolume::BoundsType 26 BoundingVolume::BoundsType 3185 0 0 0 0 0 0 0 0 0 4 10 BT_default 26 BoundingVolume::BT_default 0 7 BT_best 23 BoundingVolume::BT_best 1 9 BT_sphere 25 BoundingVolume::BT_sphere 2 6 BT_box 22 BoundingVolume::BT_box 3 0 80
// This enum is used to control the automatic generation of bounding
// volumes.
3188 13 GeomContext * 0 8576 13 GeomContext * 13 GeomContext * 0 0 2990 0 0 0 0 0 0 0 0 0 0
3189 19 GeomContext const * 0 8576 19 GeomContext const * 19 GeomContext const * 0 0 3190 0 0 0 0 0 0 0 0 0 0
3190 17 GeomContext const 0 8832 17 GeomContext const 17 GeomContext const 0 0 2990 0 0 0 0 0 0 0 0 0 0
3191 11 GeomLines * 0 8576 11 GeomLines * 11 GeomLines * 0 0 2991 0 0 0 0 0 0 0 0 0 0
3192 17 GeomLines const * 0 8576 17 GeomLines const * 17 GeomLines const * 0 0 3193 0 0 0 0 0 0 0 0 0 0
3193 15 GeomLines const 0 8832 15 GeomLines const 15 GeomLines const 0 0 2991 0 0 0 0 0 0 0 0 0 0
3194 16 GeomLinestrips * 0 8576 16 GeomLinestrips * 16 GeomLinestrips * 0 0 2992 0 0 0 0 0 0 0 0 0 0
3195 22 GeomLinestrips const * 0 8576 22 GeomLinestrips const * 22 GeomLinestrips const * 0 0 3196 0 0 0 0 0 0 0 0 0 0
3196 20 GeomLinestrips const 0 8832 20 GeomLinestrips const 20 GeomLinestrips const 0 0 2992 0 0 0 0 0 0 0 0 0 0
3197 19 GeomPatches const * 0 8576 19 GeomPatches const * 19 GeomPatches const * 0 0 3198 0 0 0 0 0 0 0 0 0 0
3198 17 GeomPatches const 0 8832 17 GeomPatches const 17 GeomPatches const 0 0 2993 0 0 0 0 0 0 0 0 0 0
3199 13 GeomPatches * 0 8576 13 GeomPatches * 13 GeomPatches * 0 0 2993 0 0 0 0 0 0 0 0 0 0
3200 12 GeomPoints * 0 8576 12 GeomPoints * 12 GeomPoints * 0 0 2994 0 0 0 0 0 0 0 0 0 0
3201 18 GeomPoints const * 0 8576 18 GeomPoints const * 18 GeomPoints const * 0 0 3202 0 0 0 0 0 0 0 0 0 0
3202 16 GeomPoints const 0 8832 16 GeomPoints const 16 GeomPoints const 0 0 2994 0 0 0 0 0 0 0 0 0 0
3203 15 GeomTriangles * 0 8576 15 GeomTriangles * 15 GeomTriangles * 0 0 2995 0 0 0 0 0 0 0 0 0 0
3204 21 GeomTriangles const * 0 8576 21 GeomTriangles const * 21 GeomTriangles const * 0 0 3205 0 0 0 0 0 0 0 0 0 0
3205 19 GeomTriangles const 0 8832 19 GeomTriangles const 19 GeomTriangles const 0 0 2995 0 0 0 0 0 0 0 0 0 0
3206 13 GeomTrifans * 0 8576 13 GeomTrifans * 13 GeomTrifans * 0 0 2996 0 0 0 0 0 0 0 0 0 0
3207 19 GeomTrifans const * 0 8576 19 GeomTrifans const * 19 GeomTrifans const * 0 0 3208 0 0 0 0 0 0 0 0 0 0
3208 17 GeomTrifans const 0 8832 17 GeomTrifans const 17 GeomTrifans const 0 0 2996 0 0 0 0 0 0 0 0 0 0
3209 15 GeomTristrips * 0 8576 15 GeomTristrips * 15 GeomTristrips * 0 0 2997 0 0 0 0 0 0 0 0 0 0
3210 21 GeomTristrips const * 0 8576 21 GeomTristrips const * 21 GeomTristrips const * 0 0 3211 0 0 0 0 0 0 0 0 0 0
3211 19 GeomTristrips const 0 8832 19 GeomTristrips const 19 GeomTristrips const 0 0 2997 0 0 0 0 0 0 0 0 0 0
3212 18 GeomVertexReader * 0 8576 18 GeomVertexReader * 18 GeomVertexReader * 0 0 2998 0 0 0 0 0 0 0 0 0 0
3213 24 GeomVertexReader const * 0 8576 24 GeomVertexReader const * 24 GeomVertexReader const * 0 0 3214 0 0 0 0 0 0 0 0 0 0
3214 22 GeomVertexReader const 0 8832 22 GeomVertexReader const 22 GeomVertexReader const 0 0 2998 0 0 0 0 0 0 0 0 0 0
3215 18 LVecBase2f const * 0 8576 18 LVecBase2f const * 18 LVecBase2f const * 0 0 3216 0 0 0 0 0 0 0 0 0 0
3216 16 LVecBase2f const 0 8832 16 LVecBase2f const 16 LVecBase2f const 0 0 3217 0 0 0 0 0 0 0 0 0 0
3217 10 LVecBase2f 0 2048 10 LVecBase2f 10 LVecBase2f 0 0 0 0 0 0 0 0 0 0 0 0 752
// Filename: lvecBase2_src.h
// Created by: drose (08Mar00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LVecBase2
// Description : This is the base class for all two-component
// vectors and points.
////////////////////////////////////////////////////////////////////
3218 18 LVecBase3f const * 0 8576 18 LVecBase3f const * 18 LVecBase3f const * 0 0 3219 0 0 0 0 0 0 0 0 0 0
3219 16 LVecBase3f const 0 8832 16 LVecBase3f const 16 LVecBase3f const 0 0 3220 0 0 0 0 0 0 0 0 0 0
3220 10 LVecBase3f 0 2048 10 LVecBase3f 10 LVecBase3f 0 0 0 0 0 0 0 0 0 0 0 0 754
// Filename: lvecBase3_src.h
// Created by: drose (08Mar00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LVecBase3
// Description : This is the base class for all three-component
// vectors and points.
////////////////////////////////////////////////////////////////////
3221 6 double 0 8194 6 double 6 double 0 3 0 0 0 0 0 0 0 0 0 0 0
3222 18 LVecBase2d const * 0 8576 18 LVecBase2d const * 18 LVecBase2d const * 0 0 3223 0 0 0 0 0 0 0 0 0 0
3223 16 LVecBase2d const 0 8832 16 LVecBase2d const 16 LVecBase2d const 0 0 3224 0 0 0 0 0 0 0 0 0 0
3224 10 LVecBase2d 0 2048 10 LVecBase2d 10 LVecBase2d 0 0 0 0 0 0 0 0 0 0 0 0 752
// Filename: lvecBase2_src.h
// Created by: drose (08Mar00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LVecBase2
// Description : This is the base class for all two-component
// vectors and points.
////////////////////////////////////////////////////////////////////
3225 18 LVecBase3d const * 0 8576 18 LVecBase3d const * 18 LVecBase3d const * 0 0 3226 0 0 0 0 0 0 0 0 0 0
3226 16 LVecBase3d const 0 8832 16 LVecBase3d const 16 LVecBase3d const 0 0 3227 0 0 0 0 0 0 0 0 0 0
3227 10 LVecBase3d 0 2048 10 LVecBase3d 10 LVecBase3d 0 0 0 0 0 0 0 0 0 0 0 0 754
// Filename: lvecBase3_src.h
// Created by: drose (08Mar00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LVecBase3
// Description : This is the base class for all three-component
// vectors and points.
////////////////////////////////////////////////////////////////////
3228 18 LVecBase4d const * 0 8576 18 LVecBase4d const * 18 LVecBase4d const * 0 0 3229 0 0 0 0 0 0 0 0 0 0
3229 16 LVecBase4d const 0 8832 16 LVecBase4d const 16 LVecBase4d const 0 0 3230 0 0 0 0 0 0 0 0 0 0
3230 10 LVecBase4d 0 2048 10 LVecBase4d 10 LVecBase4d 0 0 0 0 0 0 0 0 0 0 0 0 265
////////////////////////////////////////////////////////////////////
// Class : LVecBase4
// Description : This is the base class for all three-component
// vectors and points.
////////////////////////////////////////////////////////////////////
3231 18 LVecBase2i const * 0 8576 18 LVecBase2i const * 18 LVecBase2i const * 0 0 3232 0 0 0 0 0 0 0 0 0 0
3232 16 LVecBase2i const 0 8832 16 LVecBase2i const 16 LVecBase2i const 0 0 3233 0 0 0 0 0 0 0 0 0 0
3233 10 LVecBase2i 0 2048 10 LVecBase2i 10 LVecBase2i 0 0 0 0 0 0 0 0 0 0 0 0 752
// Filename: lvecBase2_src.h
// Created by: drose (08Mar00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LVecBase2
// Description : This is the base class for all two-component
// vectors and points.
////////////////////////////////////////////////////////////////////
3234 18 LVecBase3i const * 0 8576 18 LVecBase3i const * 18 LVecBase3i const * 0 0 3235 0 0 0 0 0 0 0 0 0 0
3235 16 LVecBase3i const 0 8832 16 LVecBase3i const 16 LVecBase3i const 0 0 3236 0 0 0 0 0 0 0 0 0 0
3236 10 LVecBase3i 0 2048 10 LVecBase3i 10 LVecBase3i 0 0 0 0 0 0 0 0 0 0 0 0 754
// Filename: lvecBase3_src.h
// Created by: drose (08Mar00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LVecBase3
// Description : This is the base class for all three-component
// vectors and points.
////////////////////////////////////////////////////////////////////
3237 18 LVecBase4i const * 0 8576 18 LVecBase4i const * 18 LVecBase4i const * 0 0 3238 0 0 0 0 0 0 0 0 0 0
3238 16 LVecBase4i const 0 8832 16 LVecBase4i const 16 LVecBase4i const 0 0 3239 0 0 0 0 0 0 0 0 0 0
3239 10 LVecBase4i 0 2048 10 LVecBase4i 10 LVecBase4i 0 0 0 0 0 0 0 0 0 0 0 0 265
////////////////////////////////////////////////////////////////////
// Class : LVecBase4
// Description : This is the base class for all three-component
// vectors and points.
////////////////////////////////////////////////////////////////////
3240 18 GeomVertexWriter * 0 8576 18 GeomVertexWriter * 18 GeomVertexWriter * 0 0 2999 0 0 0 0 0 0 0 0 0 0
3241 24 GeomVertexWriter const * 0 8576 24 GeomVertexWriter const * 24 GeomVertexWriter const * 0 0 3242 0 0 0 0 0 0 0 0 0 0
3242 22 GeomVertexWriter const 0 8832 22 GeomVertexWriter const 22 GeomVertexWriter const 0 0 2999 0 0 0 0 0 0 0 0 0 0
3243 20 GeomVertexRewriter * 0 8576 20 GeomVertexRewriter * 20 GeomVertexRewriter * 0 0 3000 0 0 0 0 0 0 0 0 0 0
3244 26 GeomVertexRewriter const * 0 8576 26 GeomVertexRewriter const * 26 GeomVertexRewriter const * 0 0 3245 0 0 0 0 0 0 0 0 0 0
3245 24 GeomVertexRewriter const 0 8832 24 GeomVertexRewriter const 24 GeomVertexRewriter const 0 0 3000 0 0 0 0 0 0 0 0 0 0
3246 9 Texture * 0 8576 9 Texture * 9 Texture * 0 0 3001 0 0 0 0 0 0 0 0 0 0
3247 15 Texture const * 0 8576 15 Texture const * 15 Texture const * 0 0 3248 0 0 0 0 0 0 0 0 0 0
3248 13 Texture const 0 8832 13 Texture const 13 Texture const 0 0 3001 0 0 0 0 0 0 0 0 0 0
3249 16 Filename const * 0 8576 16 Filename const * 16 Filename const * 0 0 3250 0 0 0 0 0 0 0 0 0 0
3250 14 Filename const 0 8832 14 Filename const 14 Filename const 0 0 3251 0 0 0 0 0 0 0 0 0 0
3251 8 Filename 0 2048 8 Filename 8 Filename 0 0 0 0 0 0 0 0 0 0 0 0 869
////////////////////////////////////////////////////////////////////
// Class : Filename
// Description : The name of a file, such as a texture file or an Egg
// file. Stores the full pathname, and includes
// functions for extracting out the directory prefix
// part and the file extension and stuff.
//
// A Filename is also aware of the mapping between the
// Unix-like filename convention we use internally, and
// the local OS's specific filename convention, and it
// knows how to perform basic OS-specific I/O, like
// testing for file existence and searching a
// searchpath, as well as the best way to open an
// fstream for reading or writing.
////////////////////////////////////////////////////////////////////
3252 21 LoaderOptions const * 0 8576 21 LoaderOptions const * 21 LoaderOptions const * 0 0 3253 0 0 0 0 0 0 0 0 0 0
3253 19 LoaderOptions const 0 8832 19 LoaderOptions const 19 LoaderOptions const 0 0 3254 0 0 0 0 0 0 0 0 0 0
3254 13 LoaderOptions 0 2048 13 LoaderOptions 13 LoaderOptions 0 0 0 0 0 0 0 0 0 0 0 0 257
////////////////////////////////////////////////////////////////////
// Class : LoaderOptions
// Description : Specifies parameters that may be passed to the
// loader.
////////////////////////////////////////////////////////////////////
3255 16 BamCacheRecord * 0 8576 16 BamCacheRecord * 16 BamCacheRecord * 0 0 3256 0 0 0 0 0 0 0 0 0 0
3256 14 BamCacheRecord 0 2048 14 BamCacheRecord 14 BamCacheRecord 0 0 0 0 0 0 0 0 0 0 0 0 469
////////////////////////////////////////////////////////////////////
// Class : BamCacheRecord
// Description : An instance of this class is written to the front of
// a Bam or Txo file to make the file a cached instance
// of some other loadable resource. This record
// contains information needed to test the validity of
// the cache.
////////////////////////////////////////////////////////////////////
3257 9 istream * 0 8576 9 istream * 9 istream * 0 0 3258 0 0 0 0 0 0 0 0 0 0
3258 7 istream 0 2048 7 istream 7 istream 0 0 0 0 0 0 0 0 0 0 0 0 0
3259 16 PNMImage const * 0 8576 16 PNMImage const * 16 PNMImage const * 0 0 3260 0 0 0 0 0 0 0 0 0 0
3260 14 PNMImage const 0 8832 14 PNMImage const 14 PNMImage const 0 0 3261 0 0 0 0 0 0 0 0 0 0
3261 8 PNMImage 0 2048 8 PNMImage 8 PNMImage 0 0 0 0 0 0 0 0 0 0 0 0 1506
////////////////////////////////////////////////////////////////////
// Class : PNMImage
// Description : The name of this class derives from the fact that we
// originally implemented it as a layer on top of the
// "pnm library", based on netpbm, which was built to
// implement pbm, pgm, and pbm files, and is the
// underlying support of a number of public-domain image
// file converters. Nowadays we are no longer derived
// directly from the pnm library, mainly to allow
// support of C++ iostreams instead of the C stdio FILE
// interface.
//
// Conceptually, a PNMImage is a two-dimensional array
// of xels, which are the PNM-defined generic pixel
// type. Each xel may have a red, green, and blue
// component, or (if the image is grayscale) a gray
// component. The image may be read in, the individual
// xels manipulated, and written out again, or a black
// image may be constructed from scratch.
//
// The image is of size XSize() by YSize() xels,
// numbered from top to bottom, left to right, beginning
// at zero.
//
// Files can be specified by filename, or by an iostream
// pointer. The filename "-" refers to stdin or stdout.
////////////////////////////////////////////////////////////////////
3262 15 PfmFile const * 0 8576 15 PfmFile const * 15 PfmFile const * 0 0 3263 0 0 0 0 0 0 0 0 0 0
3263 13 PfmFile const 0 8832 13 PfmFile const 13 PfmFile const 0 0 3264 0 0 0 0 0 0 0 0 0 0
3264 7 PfmFile 0 2048 7 PfmFile 7 PfmFile 0 0 0 0 0 0 0 0 0 0 0 0 355
////////////////////////////////////////////////////////////////////
// Class : PfmFile
// Description : Defines a pfm file, a 2-d table of floating-point
// numbers, either 3-component or 1-component, or with a
// special extension, 2- or 4-component.
////////////////////////////////////////////////////////////////////
3265 10 PNMImage * 0 8576 10 PNMImage * 10 PNMImage * 0 0 3261 0 0 0 0 0 0 0 0 0 0
3266 9 PfmFile * 0 8576 9 PfmFile * 9 PfmFile * 0 0 3264 0 0 0 0 0 0 0 0 0 0
3267 10 CPTA_uchar 0 2048 36 ConstPointerToArray< unsigned char > 36 ConstPointerToArray< unsigned char > 0 0 0 0 0 0 0 0 0 0 0 0 0
3268 38 ConstPointerToArray< unsigned char > * 0 8576 38 ConstPointerToArray< unsigned char > * 38 ConstPointerToArray< unsigned char > * 0 0 3267 0 0 0 0 0 0 0 0 0 0
3269 9 PTA_uchar 0 2048 31 PointerToArray< unsigned char > 31 PointerToArray< unsigned char > 0 0 0 0 0 0 0 0 0 0 0 0 0
3270 33 PointerToArray< unsigned char > * 0 8576 33 PointerToArray< unsigned char > * 33 PointerToArray< unsigned char > * 0 0 3269 0 0 0 0 0 0 0 0 0 0
3271 7 __int64 0 8226 7 __int64 7 __int64 0 8 0 0 0 0 0 0 0 0 0 0 0
3272 15 TexturePeeker * 0 8576 15 TexturePeeker * 15 TexturePeeker * 0 0 3034 0 0 0 0 0 0 0 0 0 0
3273 16 AutoTextureScale 0 532480 16 AutoTextureScale 16 AutoTextureScale 0 0 0 0 0 0 0 0 0 0 5 8 ATS_none 8 ATS_none 0 8 ATS_down 8 ATS_down 1 6 ATS_up 6 ATS_up 2 7 ATS_pad 7 ATS_pad 3 15 ATS_unspecified 15 ATS_unspecified 4 0 0
3274 21 TypedReferenceCount * 0 8576 21 TypedReferenceCount * 21 TypedReferenceCount * 0 0 3275 0 0 0 0 0 0 0 0 0 0
3275 19 TypedReferenceCount 0 2048 19 TypedReferenceCount 19 TypedReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 710
////////////////////////////////////////////////////////////////////
// Class : TypedReferenceCount
// Description : A base class for things which need to inherit from
// both TypedObject and from ReferenceCount. It's
// convenient to define this intermediate base class
// instead of multiply inheriting from the two classes
// each time they are needed, so that we can sensibly
// pass around pointers to things which are both
// TypedObjects and ReferenceCounters.
//
// See also TypedObject for detailed instructions.
////////////////////////////////////////////////////////////////////
3276 12 LVecBase2f * 0 8576 12 LVecBase2f * 12 LVecBase2f * 0 0 3217 0 0 0 0 0 0 0 0 0 0
3277 16 TextureContext * 0 8576 16 TextureContext * 16 TextureContext * 0 0 3025 0 0 0 0 0 0 0 0 0 0
3278 8 Shader * 0 8576 8 Shader * 8 Shader * 0 0 3009 0 0 0 0 0 0 0 0 0 0
3279 14 Shader const * 0 8576 14 Shader const * 14 Shader const * 0 0 3280 0 0 0 0 0 0 0 0 0 0
3280 12 Shader const 0 8832 12 Shader const 12 Shader const 0 0 3009 0 0 0 0 0 0 0 0 0 0
3281 15 ShaderContext * 0 8576 15 ShaderContext * 15 ShaderContext * 0 0 3026 0 0 0 0 0 0 0 0 0 0
3282 31 PreparedGraphicsObjects const * 0 8576 31 PreparedGraphicsObjects const * 31 PreparedGraphicsObjects const * 0 0 3283 0 0 0 0 0 0 0 0 0 0
3283 29 PreparedGraphicsObjects const 0 8832 29 PreparedGraphicsObjects const 29 PreparedGraphicsObjects const 0 0 3014 0 0 0 0 0 0 0 0 0 0
3284 20 IndexBufferContext * 0 8576 20 IndexBufferContext * 20 IndexBufferContext * 0 0 3015 0 0 0 0 0 0 0 0 0 0
3285 26 IndexBufferContext const * 0 8576 26 IndexBufferContext const * 26 IndexBufferContext const * 0 0 3286 0 0 0 0 0 0 0 0 0 0
3286 24 IndexBufferContext const 0 8832 24 IndexBufferContext const 24 IndexBufferContext const 0 0 3015 0 0 0 0 0 0 0 0 0 0
3287 35 GeomPrimitivePipelineReader const * 0 8576 35 GeomPrimitivePipelineReader const * 35 GeomPrimitivePipelineReader const * 0 0 3288 0 0 0 0 0 0 0 0 0 0
3288 33 GeomPrimitivePipelineReader const 0 8832 33 GeomPrimitivePipelineReader const 33 GeomPrimitivePipelineReader const 0 0 3289 0 0 0 0 0 0 0 0 0 0
3289 27 GeomPrimitivePipelineReader 0 1050624 27 GeomPrimitivePipelineReader 27 GeomPrimitivePipelineReader 0 0 0 0 0 0 0 0 0 0 0 0 303
////////////////////////////////////////////////////////////////////
// Class : GeomPrimitivePipelineReader
// Description : Encapsulates the data from a GeomPrimitive,
// pre-fetched for one stage of the pipeline.
////////////////////////////////////////////////////////////////////
3290 12 Lens const * 0 8576 12 Lens const * 12 Lens const * 0 0 3291 0 0 0 0 0 0 0 0 0 0
3291 10 Lens const 0 8832 10 Lens const 10 Lens const 0 0 3016 0 0 0 0 0 0 0 0 0 0
3292 6 Lens * 0 8576 6 Lens * 6 Lens * 0 0 3016 0 0 0 0 0 0 0 0 0 0
3293 16 LPoint2f const * 0 8576 16 LPoint2f const * 16 LPoint2f const * 0 0 3294 0 0 0 0 0 0 0 0 0 0
3294 14 LPoint2f const 0 8832 14 LPoint2f const 14 LPoint2f const 0 0 3295 0 0 0 0 0 0 0 0 0 0
3295 8 LPoint2f 0 2048 8 LPoint2f 8 LPoint2f 0 0 0 0 0 0 0 0 0 0 0 0 706
// Filename: lpoint2_src.h
// Created by: drose (08Mar00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LPoint2
// Description : This is a two-component point in space.
////////////////////////////////////////////////////////////////////
3296 16 LPoint3f const * 0 8576 16 LPoint3f const * 16 LPoint3f const * 0 0 3297 0 0 0 0 0 0 0 0 0 0
3297 14 LPoint3f const 0 8832 14 LPoint3f const 14 LPoint3f const 0 0 3138 0 0 0 0 0 0 0 0 0 0
3298 10 LPoint2f * 0 8576 10 LPoint2f * 10 LPoint2f * 0 0 3295 0 0 0 0 0 0 0 0 0 0
3299 16 CoordinateSystem 0 532480 16 CoordinateSystem 16 CoordinateSystem 0 0 0 0 0 0 0 0 0 0 6 10 CS_default 10 CS_default 0 12 CS_zup_right 12 CS_zup_right 1 12 CS_yup_right 12 CS_yup_right 2 11 CS_zup_left 11 CS_zup_left 3 11 CS_yup_left 11 CS_yup_left 4 10 CS_invalid 10 CS_invalid 5 0 0
3300 17 LVector2f const * 0 8576 17 LVector2f const * 17 LVector2f const * 0 0 3301 0 0 0 0 0 0 0 0 0 0
3301 15 LVector2f const 0 8832 15 LVector2f const 15 LVector2f const 0 0 3302 0 0 0 0 0 0 0 0 0 0
3302 9 LVector2f 0 2048 9 LVector2f 9 LVector2f 0 0 0 0 0 0 0 0 0 0 0 0 707
// Filename: lvector2_src.h
// Created by: drose (08Mar00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LVector2
// Description : This is a two-component vector offset.
////////////////////////////////////////////////////////////////////
3303 17 LVector3f const * 0 8576 17 LVector3f const * 17 LVector3f const * 0 0 3304 0 0 0 0 0 0 0 0 0 0
3304 15 LVector3f const 0 8832 15 LVector3f const 15 LVector3f const 0 0 3146 0 0 0 0 0 0 0 0 0 0
3305 16 BoundingVolume * 0 8576 16 BoundingVolume * 16 BoundingVolume * 0 0 3185 0 0 0 0 0 0 0 0 0 0
3306 16 Material const * 0 8576 16 Material const * 16 Material const * 0 0 3307 0 0 0 0 0 0 0 0 0 0
3307 14 Material const 0 8832 14 Material const 14 Material const 0 0 3019 0 0 0 0 0 0 0 0 0 0
3308 10 Material * 0 8576 10 Material * 10 Material * 0 0 3019 0 0 0 0 0 0 0 0 0 0
3309 12 MatrixLens * 0 8576 12 MatrixLens * 12 MatrixLens * 0 0 3021 0 0 0 0 0 0 0 0 0 0
3310 18 MatrixLens const * 0 8576 18 MatrixLens const * 18 MatrixLens const * 0 0 3311 0 0 0 0 0 0 0 0 0 0
3311 16 MatrixLens const 0 8832 16 MatrixLens const 16 MatrixLens const 0 0 3021 0 0 0 0 0 0 0 0 0 0
3312 18 OrthographicLens * 0 8576 18 OrthographicLens * 18 OrthographicLens * 0 0 3022 0 0 0 0 0 0 0 0 0 0
3313 17 PerspectiveLens * 0 8576 17 PerspectiveLens * 17 PerspectiveLens * 0 0 3023 0 0 0 0 0 0 0 0 0 0
3314 22 TextureReloadRequest * 0 8576 22 TextureReloadRequest * 22 TextureReloadRequest * 0 0 3024 0 0 0 0 0 0 0 0 0 0
3315 28 TextureReloadRequest const * 0 8576 28 TextureReloadRequest const * 28 TextureReloadRequest const * 0 0 3316 0 0 0 0 0 0 0 0 0 0
3316 26 TextureReloadRequest const 0 8832 26 TextureReloadRequest const 26 TextureReloadRequest const 0 0 3024 0 0 0 0 0 0 0 0 0 0
3317 22 TextureContext const * 0 8576 22 TextureContext const * 22 TextureContext const * 0 0 3318 0 0 0 0 0 0 0 0 0 0
3318 20 TextureContext const 0 8832 20 TextureContext const 20 TextureContext const 0 0 3025 0 0 0 0 0 0 0 0 0 0
3319 21 ShaderContext const * 0 8576 21 ShaderContext const * 21 ShaderContext const * 0 0 3320 0 0 0 0 0 0 0 0 0 0
3320 19 ShaderContext const 0 8832 19 ShaderContext const 19 ShaderContext const 0 0 3026 0 0 0 0 0 0 0 0 0 0
3321 18 UserVertexSlider * 0 8576 18 UserVertexSlider * 18 UserVertexSlider * 0 0 3027 0 0 0 0 0 0 0 0 0 0
3322 21 UserVertexTransform * 0 8576 21 UserVertexTransform * 21 UserVertexTransform * 0 0 3028 0 0 0 0 0 0 0 0 0 0
3323 27 UserVertexTransform const * 0 8576 27 UserVertexTransform const * 27 UserVertexTransform const * 0 0 3324 0 0 0 0 0 0 0 0 0 0
3324 25 UserVertexTransform const 0 8832 25 UserVertexTransform const 25 UserVertexTransform const 0 0 3028 0 0 0 0 0 0 0 0 0 0
3325 20 VideoTexture const * 0 8576 20 VideoTexture const * 20 VideoTexture const * 0 0 3326 0 0 0 0 0 0 0 0 0 0
3326 18 VideoTexture const 0 8832 18 VideoTexture const 18 VideoTexture const 0 0 3029 0 0 0 0 0 0 0 0 0 0
3327 14 VideoTexture * 0 8576 14 VideoTexture * 14 VideoTexture * 0 0 3029 0 0 0 0 0 0 0 0 0 0
3328 15 AnimInterface * 0 8576 15 AnimInterface * 15 AnimInterface * 0 0 3030 0 0 0 0 0 0 0 0 0 0
3329 27 VertexBufferContext const * 0 8576 27 VertexBufferContext const * 27 VertexBufferContext const * 0 0 3330 0 0 0 0 0 0 0 0 0 0
3330 25 VertexBufferContext const 0 8832 25 VertexBufferContext const 25 VertexBufferContext const 0 0 3031 0 0 0 0 0 0 0 0 0 0
3331 19 TextureCollection * 0 8576 19 TextureCollection * 19 TextureCollection * 0 0 3032 0 0 0 0 0 0 0 0 0 0
3332 25 TextureCollection const * 0 8576 25 TextureCollection const * 25 TextureCollection const * 0 0 3333 0 0 0 0 0 0 0 0 0 0
3333 23 TextureCollection const 0 8832 23 TextureCollection const 23 TextureCollection const 0 0 3032 0 0 0 0 0 0 0 0 0 0
3334 21 TexturePeeker const * 0 8576 21 TexturePeeker const * 21 TexturePeeker const * 0 0 3335 0 0 0 0 0 0 0 0 0 0
3335 19 TexturePeeker const 0 8832 19 TexturePeeker const 19 TexturePeeker const 0 0 3034 0 0 0 0 0 0 0 0 0 0
3336 6 string 0 2048 20 basic_string< char > 20 basic_string< char > 0 0 0 0 0 0 0 0 0 0 0 0 0
0
0
20
3337 0 0 120 11 get_columns 15 get_num_columns 10 get_column
3338 0 0 151 10 get_arrays 14 get_num_arrays 9 get_array
3339 0 0 151 11 get_columns 15 get_num_columns 10 get_column
3340 0 0 151 10 get_points 14 get_num_points 9 get_point
3341 0 0 151 11 get_vectors 15 get_num_vectors 10 get_vector
3342 0 0 151 13 get_texcoords 17 get_num_texcoords 12 get_texcoord
3343 0 0 151 17 get_morph_sliders 14 get_num_morphs 16 get_morph_slider
3344 0 0 151 15 get_morph_bases 14 get_num_morphs 14 get_morph_base
3345 0 0 151 16 get_morph_deltas 14 get_num_morphs 15 get_morph_delta
3346 0 0 397 14 get_transforms 18 get_num_transforms 13 get_transform
3347 0 0 410 14 get_transforms 18 get_num_transforms 13 get_transform
3348 0 0 436 10 get_blends 14 get_num_blends 9 get_blend
3349 0 0 459 11 get_sliders 15 get_num_sliders 10 get_slider
3350 0 0 477 10 get_arrays 14 get_num_arrays 9 get_array
3351 0 0 554 15 get_vertex_list 16 get_num_vertices 10 get_vertex
3352 0 0 689 14 get_primitives 18 get_num_primitives 13 get_primitive
3353 0 0 1415 12 get_textures 16 get_num_textures 11 get_texture
3354 0 0 1947 8 get_rows 4 size 7 get_row
3355 0 0 1947 8 get_cols 4 size 7 get_col
3356 0 0 1947 9 get_row3s 4 size 8 get_row3