Panda3D

Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
TexGenAttrib Class Reference

Computes texture coordinates for geometry automatically based on vertex position and/or normal. More...

`#include "texGenAttrib.h"`

Inheritance diagram for TexGenAttrib:

## Public Types
typedef RenderAttrib::TexGenMode | Mode
Public Types inherited from RenderAttrib
enum | PandaCompareFunc { M_none =0 , M_never , M_less , M_equal , M_less_equal , M_greater , M_not_equal , M_greater_equal , M_always }
enum | TexGenMode { M_off , M_eye_sphere_map , M_world_cube_map , M_eye_cube_map , M_world_normal , M_eye_normal , M_world_position , M_unused , M_eye_position , M_point_sprite , M_unused2 , M_constant }

## Public Member Functions
virtual int | complete_pointers (TypedWritable **plist, BamReader *manager)
| Receives an array of pointers, one for each time manager->read_pointer() was called in fillin(). More...
| CPT (RenderAttrib) add_stage(TextureStage *stage
| CPT (RenderAttrib) add_stage(TextureStage *stage
| CPT (RenderAttrib) remove_stage(TextureStage *stage) const
virtual TypeHandle | force_init_type ()
const LTexCoord3 & | get_constant_value (TextureStage *stage) const
int | get_geom_rendering (int geom_rendering) const
| 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. More...
Mode | get_mode (TextureStage *stage) const
virtual int | get_slot () const
virtual TypeHandle | get_type () const
bool | has_gen_texcoord_stage (TextureStage *stage) const
bool | has_stage (TextureStage *stage) const
bool | is_empty () const
virtual void | output (std::ostream &out) const
virtual void | write_datagram (BamWriter *manager, Datagram &dg)
| Writes the contents of this object to the datagram for shipping out to a Bam file. More...
Public Member Functions inherited from RenderAttrib
| RenderAttrib (const RenderAttrib &copy)=delete
virtual | ~RenderAttrib ()
| The destructor is responsible for removing the RenderAttrib from the global set if it is there. More...
int | compare_to (const RenderAttrib &other) const
| CPT (RenderAttrib) compose(const RenderAttrib *other) const
| CPT (RenderAttrib) get_unique() const
| CPT (RenderAttrib) invert_compose(const RenderAttrib *other) const
virtual bool | cull_callback (CullTraverser *trav, const CullTraverserData &data) const
| If has_cull_callback() returns true, this function will be called during the cull traversal to perform any additional operations that should be performed at cull time. More...
virtual void | finalize (BamReader *manager)
| Called by the BamReader to perform any final actions needed for setting up the object after all objects have been read and all pointers have been completed. More...
size_t | get_hash () const
virtual bool | has_cull_callback () const
| Should be overridden by derived classes to return true if cull_callback() has been defined. More...
virtual bool | lower_attrib_can_override () const
| Intended to be overridden by derived RenderAttrib types to specify how two consecutive RenderAttrib objects of the same type interact. More...
RenderAttrib & | operator= (const RenderAttrib &copy)=delete
virtual bool | unref () const final
| This method overrides ReferenceCount::unref() to clear the pointer from the global object pool when its reference count goes to zero. More...
virtual void | write (std::ostream &out, int indent_level) const
Public Member Functions inherited from TypedWritableReferenceCount
| TypedWritableReferenceCount (const TypedWritableReferenceCount &copy)
virtual ReferenceCount * | as_reference_count ()
| Returns the pointer cast to a ReferenceCount pointer, if it is in fact of that type. More...
void | operator= (const TypedWritableReferenceCount &copy)
Public Member Functions inherited from TypedWritable
| TypedWritable (const TypedWritable &copy)
vector_uchar | encode_to_bam_stream () const
| Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object. More...
bool | encode_to_bam_stream (vector_uchar &data, BamWriter *writer=nullptr) const
| Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string. More...
UpdateSeq | get_bam_modified () const
| Returns the current bam_modified counter. More...
void | mark_bam_modified ()
| Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More...
void | operator= (const TypedWritable &copy)
virtual bool | require_fully_complete () const
| Some objects require all of their nested pointers to have been completed before the objects themselves can be completed. More...
virtual void | update_bam_nested (BamWriter *manager)
| Called by the BamWriter when this object has not itself been modified recently, but it should check its nested objects for updates. More...
Public Member Functions inherited from TypedObject
| TypedObject (const TypedObject &copy)=default
TypedObject * | as_typed_object ()
| Returns the object, upcast (if necessary) to a TypedObject pointer. More...
const TypedObject * | as_typed_object () const
| Returns the object, upcast (if necessary) to a TypedObject pointer. More...
int | get_best_parent_from_Set (const std::set< int > &) const
int | get_type_index () const
| Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More...
bool | is_exact_type (TypeHandle handle) const
| Returns true if the current object is the indicated type exactly. More...
bool | is_of_type (TypeHandle handle) const
| Returns true if the current object is or derives from the indicated type. More...
TypedObject & | operator= (const TypedObject &copy)=default
Public Member Functions inherited from MemoryBase
void | operator delete (void *, void *)
void | operator delete (void *ptr)
void | operator delete[] (void *, void *)
void | operator delete[] (void *ptr)
void * | operator new (size_t size)
void * | operator new (size_t size, void *ptr)
void * | operator new[] (size_t size)
void * | operator new[] (size_t size, void *ptr)
Public Member Functions inherited from ReferenceCount
int | get_ref_count () const
WeakReferenceList * | get_weak_list () const
| Returns the WeakReferenceList associated with this ReferenceCount object. More...
bool | has_weak_list () const
| Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More...
void | local_object ()
| This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More...
void | ref () const
| Explicitly increments the reference count. More...
bool | ref_if_nonzero () const
| Atomically increases the reference count of this object if it is not zero. More...
bool | test_ref_count_integrity () const
| Does some easy checks to make sure that the reference count isn't completely bogus. More...
bool | test_ref_count_nonzero () const
| Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More...
bool | unref_if_one () const
| Atomically decreases the reference count of this object if it is one. More...
WeakReferenceList * | weak_ref ()
| Adds the indicated PointerToVoid as a weak reference to this object. More...
void | weak_unref ()
| Removes the indicated PointerToVoid as a weak reference to this object. More...

## Static Public Member Functions
static | CPT (RenderAttrib) make()
static | CPT (RenderAttrib) make(TextureStage *stage
static | CPT (RenderAttrib) make_default()
static int | get_class_slot ()
static TypeHandle | get_class_type ()
static void | init_type ()
static void | register_with_read_factory ()
| Tells the BamReader how to create objects of type TexGenAttrib. More...
Static Public Member Functions inherited from RenderAttrib
static TypedWritable * | change_this (TypedWritable *old_ptr, BamReader *manager)
| Called immediately after complete_pointers(), this gives the object a chance to adjust its own pointer if desired. More...
static int | garbage_collect ()
| Performs a garbage-collection cycle. More...
static TypeHandle | get_class_type ()
static int | get_num_attribs ()
| Returns the total number of unique RenderAttrib objects allocated in the world. More...
static void | init_attribs ()
| Make sure the global _attribs map is allocated. More...
static void | init_type ()
static void | list_attribs (std::ostream &out)
| Lists all of the RenderAttribs in the cache to the output stream, one per line. More...
static int | register_slot (TypeHandle type_handle, int sort, RenderAttrib *default_attrib)
| Adds the indicated TypeHandle to the registry, if it is not there already, and returns a unique slot number. More...
static bool | validate_attribs ()
| Ensures that the cache is still stored in sorted order. More...
Static Public Member Functions inherited from TypedWritableReferenceCount
static TypeHandle | get_class_type ()
static void | init_type ()
static | PT (TypedWritableReferenceCount) decode_from_bam_stream(vector_uchar data
Static Public Member Functions inherited from TypedWritable
static bool | decode_raw_from_bam_stream (TypedWritable *&ptr, ReferenceCount *&ref_ptr, vector_uchar data, BamReader *reader=nullptr)
| Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts the single object on those bytes. More...
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from TypedObject
static TypeHandle | get_class_type ()
static void | init_type ()
| This function is declared non-inline to work around a compiler bug in g++ 2.96. More...
Static Public Member Functions inherited from ReferenceCount
static TypeHandle | get_class_type ()
static void | init_type ()

## Public Attributes
Mode mode | const
Mode const LTexCoord3 &constant_value | const
| get_class_slot
static Mode | mode
Mode | mode
Public Attributes inherited from RenderAttrib
| get_slot
Public Attributes inherited from TypedWritableReferenceCount
static BamReader * | reader = nullptr)
Public Attributes inherited from TypedObject
| get_type
Public Attributes inherited from ReferenceCount
| get_ref_count
| Returns the current reference count. More...

## Additional Inherited Members
Static Public Attributes inherited from TypedWritable
static TypedWritable *const | Null = nullptr

## Detailed Description

Computes texture coordinates for geometry automatically based on vertex position and/or normal.

This can be used to implement reflection and/or refraction maps, for instance to make shiny surfaces, as well as other special effects such as projective texturing.

Definition at line 32 of file texGenAttrib.h.

## Member Function Documentation

## ◆ complete_pointers()

int TexGenAttrib::complete_pointers | ( | TypedWritable ** | p_list,
|  | BamReader * | manager
| ) |  |
| virtual

Receives an array of pointers, one for each time manager->read_pointer() was called in fillin().

Returns the number of pointers processed.

Reimplemented from TypedWritable.

Definition at line 504 of file texGenAttrib.cxx.

## ◆ get_geom_rendering()

int TexGenAttrib::get_geom_rendering | ( | int | geom_rendering | ) | const
| inline

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.

Definition at line 43 of file texGenAttrib.I.

Referenced by RenderState::get_geom_rendering().

## ◆ register_with_read_factory()

void TexGenAttrib::register_with_read_factory | ( |  | ) |
| static

Tells the BamReader how to create objects of type TexGenAttrib.

Definition at line 475 of file texGenAttrib.cxx.

References BamReader::get_factory(), and Factory< Type >::register_factory().

Referenced by init_libpgraph().

## ◆ write_datagram()

void TexGenAttrib::write_datagram | ( | BamWriter * | manager,
|  | Datagram & | dg
| ) |  |
| virtual

Writes the contents of this object to the datagram for shipping out to a Bam file.

Reimplemented from RenderAttrib.

Definition at line 484 of file texGenAttrib.cxx.

References Datagram::add_uint16(), Datagram::add_uint8(), RenderAttrib::write_datagram(), and BamWriter::write_pointer().

The documentation for this class was generated from the following files:

- panda/src/pgraph/texGenAttrib.h
- panda/src/pgraph/texGenAttrib.cxx
- panda/src/pgraph/texGenAttrib.I