mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
*** empty log message ***
This commit is contained in:
parent
dfddc7cf2a
commit
1ae36cf9e9
@ -4,6 +4,13 @@
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggVertexPool::get_vertex
|
||||||
|
// Access: Public
|
||||||
|
// Description: Returns the vertex in the pool with the indicated
|
||||||
|
// index number, or NULL if no vertices have that index
|
||||||
|
// number.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE EggVertex *EggVertexPool::
|
INLINE EggVertex *EggVertexPool::
|
||||||
get_vertex(int index) const {
|
get_vertex(int index) const {
|
||||||
IndexVertices::const_iterator ivi = _index_vertices.find(index);
|
IndexVertices::const_iterator ivi = _index_vertices.find(index);
|
||||||
@ -15,11 +22,24 @@ get_vertex(int index) const {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggVertexPool::indexing operator
|
||||||
|
// Access: Public
|
||||||
|
// Description: Returns the vertex in the pool with the indicated
|
||||||
|
// index number, or NULL if no vertices have that index
|
||||||
|
// number.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE EggVertex *EggVertexPool::
|
INLINE EggVertex *EggVertexPool::
|
||||||
operator [](int index) const {
|
operator [](int index) const {
|
||||||
return get_vertex(index);
|
return get_vertex(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggVertexPool::get_highest_index
|
||||||
|
// Access: Public
|
||||||
|
// Description: Returns the highest index number used by any vertex
|
||||||
|
// in the pool.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE int EggVertexPool::
|
INLINE int EggVertexPool::
|
||||||
get_highest_index() const {
|
get_highest_index() const {
|
||||||
if (_index_vertices.empty()) {
|
if (_index_vertices.empty()) {
|
||||||
@ -30,6 +50,12 @@ get_highest_index() const {
|
|||||||
return (*ivi).first;
|
return (*ivi).first;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggVertexPool::begin()
|
||||||
|
// Access: Public
|
||||||
|
// Description: Returns an iterator that can be used to traverse
|
||||||
|
// through all the vertices in the pool.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE EggVertexPool::iterator EggVertexPool::
|
INLINE EggVertexPool::iterator EggVertexPool::
|
||||||
begin() const {
|
begin() const {
|
||||||
nassertr(_index_vertices.size() == _unique_vertices.size(),
|
nassertr(_index_vertices.size() == _unique_vertices.size(),
|
||||||
@ -37,18 +63,120 @@ begin() const {
|
|||||||
return iterator(_index_vertices.begin());
|
return iterator(_index_vertices.begin());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggVertexPool::end()
|
||||||
|
// Access: Public
|
||||||
|
// Description: Returns an iterator that can be used to traverse
|
||||||
|
// through all the vertices in the pool.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE EggVertexPool::iterator EggVertexPool::
|
INLINE EggVertexPool::iterator EggVertexPool::
|
||||||
end() const {
|
end() const {
|
||||||
return iterator(_index_vertices.end());
|
return iterator(_index_vertices.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggVertexPool::empty()
|
||||||
|
// Access: Public
|
||||||
|
// Description: Returns true if the pool is empty.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE bool EggVertexPool::
|
INLINE bool EggVertexPool::
|
||||||
empty() const {
|
empty() const {
|
||||||
return _index_vertices.empty();
|
return _index_vertices.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggVertexPool::size()
|
||||||
|
// Access: Public
|
||||||
|
// Description: Returns the number of vertices in the pool.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE EggVertexPool::size_type EggVertexPool::
|
INLINE EggVertexPool::size_type EggVertexPool::
|
||||||
size() const {
|
size() const {
|
||||||
nassertr(_index_vertices.size() == _unique_vertices.size(), 0);
|
nassertr(_index_vertices.size() == _unique_vertices.size(), 0);
|
||||||
return _index_vertices.size();
|
return _index_vertices.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggVertexPool::make_new_vertex()
|
||||||
|
// Access: Public
|
||||||
|
// Description: Allocates and returns a new vertex from the pool.
|
||||||
|
// This is one of three ways to add new vertices to a
|
||||||
|
// vertex pool.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
INLINE EggVertex *EggVertexPool::
|
||||||
|
make_new_vertex() {
|
||||||
|
PT(EggVertex) vertex = new EggVertex;
|
||||||
|
add_vertex(vertex);
|
||||||
|
return vertex;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggVertexPool::make_new_vertex()
|
||||||
|
// Access: Public
|
||||||
|
// Description: Allocates and returns a new vertex from the pool.
|
||||||
|
// This is one of three ways to add new vertices to a
|
||||||
|
// vertex pool.
|
||||||
|
//
|
||||||
|
// This flavor of make_new_vertex() explicitly sets the
|
||||||
|
// vertex position as it is allocated. It does not
|
||||||
|
// attempt to share vertices.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
INLINE EggVertex *EggVertexPool::
|
||||||
|
make_new_vertex(double pos) {
|
||||||
|
EggVertex *vertex = make_new_vertex();
|
||||||
|
vertex->set_pos(pos);
|
||||||
|
return vertex;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggVertexPool::make_new_vertex()
|
||||||
|
// Access: Public
|
||||||
|
// Description: Allocates and returns a new vertex from the pool.
|
||||||
|
// This is one of three ways to add new vertices to a
|
||||||
|
// vertex pool.
|
||||||
|
//
|
||||||
|
// This flavor of make_new_vertex() explicitly sets the
|
||||||
|
// vertex position as it is allocated. It does not
|
||||||
|
// attempt to share vertices.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
INLINE EggVertex *EggVertexPool::
|
||||||
|
make_new_vertex(const LPoint2d &pos) {
|
||||||
|
EggVertex *vertex = make_new_vertex();
|
||||||
|
vertex->set_pos(pos);
|
||||||
|
return vertex;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggVertexPool::make_new_vertex()
|
||||||
|
// Access: Public
|
||||||
|
// Description: Allocates and returns a new vertex from the pool.
|
||||||
|
// This is one of three ways to add new vertices to a
|
||||||
|
// vertex pool.
|
||||||
|
//
|
||||||
|
// This flavor of make_new_vertex() explicitly sets the
|
||||||
|
// vertex position as it is allocated. It does not
|
||||||
|
// attempt to share vertices.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
INLINE EggVertex *EggVertexPool::
|
||||||
|
make_new_vertex(const LPoint3d &pos) {
|
||||||
|
EggVertex *vertex = make_new_vertex();
|
||||||
|
vertex->set_pos(pos);
|
||||||
|
return vertex;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: EggVertexPool::make_new_vertex()
|
||||||
|
// Access: Public
|
||||||
|
// Description: Allocates and returns a new vertex from the pool.
|
||||||
|
// This is one of three ways to add new vertices to a
|
||||||
|
// vertex pool.
|
||||||
|
//
|
||||||
|
// This flavor of make_new_vertex() explicitly sets the
|
||||||
|
// vertex position as it is allocated. It does not
|
||||||
|
// attempt to share vertices.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
INLINE EggVertex *EggVertexPool::
|
||||||
|
make_new_vertex(const LPoint4d &pos) {
|
||||||
|
EggVertex *vertex = make_new_vertex();
|
||||||
|
vertex->set_pos(pos);
|
||||||
|
return vertex;
|
||||||
|
}
|
||||||
|
@ -80,6 +80,14 @@ public:
|
|||||||
// user to allocate the vertex.
|
// user to allocate the vertex.
|
||||||
void add_vertex(PT(EggVertex) vertex, int index = -1);
|
void add_vertex(PT(EggVertex) vertex, int index = -1);
|
||||||
|
|
||||||
|
// make_new_vertex() allocates and returns a new vertex from the
|
||||||
|
// pool.
|
||||||
|
INLINE EggVertex *make_new_vertex();
|
||||||
|
INLINE EggVertex *make_new_vertex(double pos);
|
||||||
|
INLINE EggVertex *make_new_vertex(const LPoint2d &pos);
|
||||||
|
INLINE EggVertex *make_new_vertex(const LPoint3d &pos);
|
||||||
|
INLINE EggVertex *make_new_vertex(const LPoint4d &pos);
|
||||||
|
|
||||||
// create_unique_vertex() creates a new vertex if there is not
|
// create_unique_vertex() creates a new vertex if there is not
|
||||||
// already one identical to the indicated vertex, or returns the
|
// already one identical to the indicated vertex, or returns the
|
||||||
// existing one if there is.
|
// existing one if there is.
|
||||||
|
@ -395,10 +395,10 @@ filter_image(PNMImage &dest, const PNMImage &source,
|
|||||||
filter_red_xy(dest, source, width, make_filter);
|
filter_red_xy(dest, source, width, make_filter);
|
||||||
filter_green_xy(dest, source, width, make_filter);
|
filter_green_xy(dest, source, width, make_filter);
|
||||||
filter_blue_xy(dest, source, width, make_filter);
|
filter_blue_xy(dest, source, width, make_filter);
|
||||||
|
}
|
||||||
|
|
||||||
if (dest.has_alpha() && source.has_alpha()) {
|
if (dest.has_alpha() && source.has_alpha()) {
|
||||||
filter_alpha_xy(dest, source, width, make_filter);
|
filter_alpha_xy(dest, source, width, make_filter);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -408,10 +408,10 @@ filter_image(PNMImage &dest, const PNMImage &source,
|
|||||||
filter_red_yx(dest, source, width, make_filter);
|
filter_red_yx(dest, source, width, make_filter);
|
||||||
filter_green_yx(dest, source, width, make_filter);
|
filter_green_yx(dest, source, width, make_filter);
|
||||||
filter_blue_yx(dest, source, width, make_filter);
|
filter_blue_yx(dest, source, width, make_filter);
|
||||||
|
}
|
||||||
|
|
||||||
if (dest.has_alpha() && source.has_alpha()) {
|
if (dest.has_alpha() && source.has_alpha()) {
|
||||||
filter_alpha_yx(dest, source, width, make_filter);
|
filter_alpha_yx(dest, source, width, make_filter);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -96,6 +96,33 @@ extract_words(const string &str, vector_string &words) {
|
|||||||
return num_words;
|
return num_words;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: tokenize
|
||||||
|
// Description: Chops the source string up into pieces delimited by
|
||||||
|
// any of the characters specified in delimiters.
|
||||||
|
// Repeated delimiter characters represent zero-length
|
||||||
|
// tokens.
|
||||||
|
//
|
||||||
|
// It is the user's responsibility to ensure the output
|
||||||
|
// vector is cleared before calling this function; the
|
||||||
|
// results will simply be appended to the end of the
|
||||||
|
// vector.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
void
|
||||||
|
tokenize(const string &str, vector_string &words, const string &delimiters) {
|
||||||
|
size_t p = 0;
|
||||||
|
while (p < str.length()) {
|
||||||
|
size_t q = str.find_first_of(delimiters, p);
|
||||||
|
if (q == string::npos) {
|
||||||
|
words.push_back(str.substr(p));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
words.push_back(str.substr(p, q - p));
|
||||||
|
p = q + 1;
|
||||||
|
}
|
||||||
|
words.push_back(string());
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: trim_left
|
// Function: trim_left
|
||||||
// Description: Returns a new string representing the contents of the
|
// Description: Returns a new string representing the contents of the
|
||||||
|
@ -24,6 +24,10 @@ EXPCL_PANDA string downcase(const string &s);
|
|||||||
// Separates the string into words according to whitespace.
|
// Separates the string into words according to whitespace.
|
||||||
EXPCL_PANDA int extract_words(const string &str, vector_string &words);
|
EXPCL_PANDA int extract_words(const string &str, vector_string &words);
|
||||||
|
|
||||||
|
// Separates the string into words according to the indicated delimiters.
|
||||||
|
EXPCL_PANDA void tokenize(const string &str, vector_string &words,
|
||||||
|
const string &delimiters);
|
||||||
|
|
||||||
// Trims leading and/or trailing whitespace from the string.
|
// Trims leading and/or trailing whitespace from the string.
|
||||||
EXPCL_PANDA string trim_left(const string &str);
|
EXPCL_PANDA string trim_left(const string &str);
|
||||||
EXPCL_PANDA string trim_right(const string &str);
|
EXPCL_PANDA string trim_right(const string &str);
|
||||||
|
@ -158,7 +158,7 @@ handle_args(Args &args) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
_source_files = args;
|
_source_files.insert(_source_files.end(), args.begin(), args.end());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user