| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- // Filename: texGenAttrib.I
- // Created by: masad (21Jun04)
- //
- ////////////////////////////////////////////////////////////////////
- //
- // PANDA 3D SOFTWARE
- // Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
- //
- // All use of this software is subject to the terms of the Panda 3d
- // Software license. You should have received a copy of this license
- // along with this source code; you will also find a current copy of
- // the license at http://etc.cmu.edu/panda3d/docs/license/ .
- //
- // To contact the maintainers of this program write to
- // [email protected] .
- //
- ////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////
- // Function: TexGenAttrib::Constructor
- // Access: Protected
- // Description: Use TexGenAttrib::make() to construct a new
- // TexGenAttrib object.
- ////////////////////////////////////////////////////////////////////
- INLINE TexGenAttrib::
- TexGenAttrib() :
- _num_point_sprites(0),
- _num_light_vectors(0),
- _point_geom_rendering(0),
- _geom_rendering(0)
- {
- }
- ////////////////////////////////////////////////////////////////////
- // Function: TexGenAttrib::Copy Constructor
- // Access: Protected
- // Description: Use TexGenAttrib::make() to construct a new
- // TexGenAttrib object.
- ////////////////////////////////////////////////////////////////////
- INLINE TexGenAttrib::
- TexGenAttrib(const TexGenAttrib ©) :
- _stages(copy._stages),
- _no_texcoords(copy._no_texcoords),
- _num_point_sprites(copy._num_point_sprites),
- _num_light_vectors(copy._num_light_vectors),
- _point_geom_rendering(copy._point_geom_rendering),
- _geom_rendering(copy._geom_rendering)
- {
- }
- ////////////////////////////////////////////////////////////////////
- // Function: TexGenAttrib::get_geom_rendering
- // Access: Published
- // Description: Returns the union of the Geom::GeomRendering bits
- // that will be required once this TexGenAttrib is
- // applied to a geom which includes the indicated
- // geom_rendering bits.
- ////////////////////////////////////////////////////////////////////
- INLINE int TexGenAttrib::
- get_geom_rendering(int geom_rendering) const {
- if ((geom_rendering & Geom::GR_point) != 0) {
- geom_rendering |= _point_geom_rendering;
- }
- return geom_rendering | _geom_rendering;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: TexGenAttrib::get_no_texcoords
- // Access: Public
- // Description: Returns the set of TextureStages that have texture
- // coordinates computed for them, and hence do not need
- // to have texture coordinates sent from the Geom. This
- // is, of course, the set of TextureStages that is
- // listed in the attrib (except for those listed with M_off).
- ////////////////////////////////////////////////////////////////////
- INLINE const Geom::NoTexCoordStages &TexGenAttrib::
- get_no_texcoords() const {
- return _no_texcoords;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: TexGenAttrib::get_light_vectors
- // Access: Public
- // Description: Returns the set of TextureStages that have
- // M_light_vector in effect, as well as the associated
- // Lights.
- ////////////////////////////////////////////////////////////////////
- INLINE const TexGenAttrib::LightVectors &TexGenAttrib::
- get_light_vectors() const {
- return _light_vectors;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: TexGenAttrib::ModeDef::Constructor
- // Access: Public
- // Description:
- ////////////////////////////////////////////////////////////////////
- INLINE TexGenAttrib::ModeDef::
- ModeDef() :
- _mode(M_off)
- {
- }
- ////////////////////////////////////////////////////////////////////
- // Function: TexGenAttrib::ModeDef::compare_to
- // Access: Public
- // Description:
- ////////////////////////////////////////////////////////////////////
- INLINE int TexGenAttrib::ModeDef::
- compare_to(const TexGenAttrib::ModeDef &other) const {
- if (_mode != other._mode) {
- return (int)_mode < (int)other._mode ? -1 : 1;
- }
- int compare = _light.compare_to(other._light);
- if (compare != 0) {
- return compare;
- }
- return strcmp(_source_name.c_str(), other._source_name.c_str());
- }
|