95 lines
2.7 KiB
Text
95 lines
2.7 KiB
Text
|
/**
|
||
|
* 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."
|
||
|
*
|
||
|
* @file eggCharacterCollection.I
|
||
|
* @author drose
|
||
|
* @date 2001-02-26
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Returns the number of egg files that have successfully been added to the
|
||
|
* Character table.
|
||
|
*/
|
||
|
INLINE int EggCharacterCollection::
|
||
|
get_num_eggs() const {
|
||
|
return _eggs.size();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the ith egg file.
|
||
|
*/
|
||
|
INLINE EggData *EggCharacterCollection::
|
||
|
get_egg(int i) const {
|
||
|
nassertr(i >= 0 && i < (int)_eggs.size(), nullptr);
|
||
|
return _eggs[i]._egg;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the first model index associated with the indicated egg file. An
|
||
|
* egg file may contain multiple models, which will be consecutive integers
|
||
|
* beginning at get_first_model_index() and continuing for get_num_models().
|
||
|
*
|
||
|
* Each "model" corresponds to a single character model, or one LOD of a
|
||
|
* multiple-LOD model, or a single animation bundle.
|
||
|
*/
|
||
|
INLINE int EggCharacterCollection::
|
||
|
get_first_model_index(int egg_index) const {
|
||
|
nassertr(egg_index >= 0 && egg_index < (int)_eggs.size(), 0);
|
||
|
return _eggs[egg_index]._first_model_index;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the number of different models found in the indicated egg file. An
|
||
|
* egg file may contain multiple models, which will be consecutive integers
|
||
|
* beginning at get_first_model_index() and continuing for get_num_models().
|
||
|
*
|
||
|
* Each "model" corresponds to a single character model, or one LOD of a
|
||
|
* multiple-LOD model, or a single animation bundle.
|
||
|
*/
|
||
|
INLINE int EggCharacterCollection::
|
||
|
get_num_models(int egg_index) const {
|
||
|
nassertr(egg_index >= 0 && egg_index < (int)_eggs.size(), 0);
|
||
|
return _eggs[egg_index]._models.size();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the number of separate Characters that have been discovered in the
|
||
|
* various egg files added to the collection.
|
||
|
*/
|
||
|
INLINE int EggCharacterCollection::
|
||
|
get_num_characters() const {
|
||
|
return _characters.size();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the ith character in the collection.
|
||
|
*/
|
||
|
INLINE EggCharacterData *EggCharacterCollection::
|
||
|
get_character(int i) const {
|
||
|
nassertr(i >= 0 && i < (int)_characters.size(), nullptr);
|
||
|
return _characters[i];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the character associated with the indicated model index.
|
||
|
*/
|
||
|
INLINE EggCharacterData *EggCharacterCollection::
|
||
|
get_character_by_model_index(int model_index) const {
|
||
|
nassertr(model_index >= 0 && model_index < (int)_characters_by_model_index.size(),
|
||
|
nullptr);
|
||
|
return _characters_by_model_index[model_index];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
*/
|
||
|
INLINE EggCharacterCollection::ModelDescription::
|
||
|
ModelDescription() {
|
||
|
_root_node = nullptr;
|
||
|
}
|