Panda3D
Public Member Functions | Friends | List of all members
TexturePeeker Class Reference

An instance of this object is returned by Texture::peek(). More...

#include "texturePeeker.h"

Inheritance diagram for TexturePeeker:
ReferenceCount MemoryBase

Public Member Functions

void fetch_pixel (LColor &color, int x, int y) const
 Works like TexturePeeker::lookup(), but instead uv-coordinates integer coordinates are used. More...
 
void filter_rect (LColor &color, PN_stdfloat min_u, PN_stdfloat min_v, PN_stdfloat max_u, PN_stdfloat max_v) const
 Fills "color" with the average RGBA color of the texels within the rectangle defined by the specified coordinate range. More...
 
void filter_rect (LColor &color, PN_stdfloat min_u, PN_stdfloat min_v, PN_stdfloat min_w, PN_stdfloat max_u, PN_stdfloat max_v, PN_stdfloat max_w) const
 Fills "color" with the average RGBA color of the texels within the rectangle defined by the specified coordinate range. More...
 
int get_x_size () const
 Returns the width of the texture image that is contributing to the TexturePeeker's information. More...
 
int get_y_size () const
 Returns the height of the texture image that is contributing to the TexturePeeker's information. More...
 
int get_z_size () const
 Returns the depth of the texture image that is contributing to the TexturePeeker's information. More...
 
bool has_pixel (int x, int y) const
 Returns whether a given coordinate is inside of the texture dimensions. More...
 
bool is_valid () const
 Returns true if the TexturePeeker was able to initialize itself and is ready to return texel colors. More...
 
void lookup (LColor &color, PN_stdfloat u, PN_stdfloat v) const
 Fills "color" with the RGBA color of the texel at point (u, v). More...
 
void lookup (LColor &color, PN_stdfloat u, PN_stdfloat v, PN_stdfloat w) const
 Fills "color" with the RGBA color of the texel at point (u, v, w). More...
 
bool lookup_bilinear (LColor &color, PN_stdfloat u, PN_stdfloat v) const
 Performs a bilinear lookup to retrieve the color value stored at the uv coordinate (u, v). More...
 
- Public Member Functions inherited from ReferenceCount
int get_ref_count () const
 
WeakReferenceListget_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...
 
virtual bool unref () const
 Explicitly decrements the reference count. More...
 
WeakReferenceListweak_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...
 

Friends

class Texture
 

Additional Inherited Members

- Static Public Member Functions inherited from ReferenceCount
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Public Attributes inherited from ReferenceCount
 get_ref_count
 Returns the current reference count. More...
 

Detailed 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.

Definition at line 27 of file texturePeeker.h.

Member Function Documentation

◆ fetch_pixel()

void TexturePeeker::fetch_pixel ( LColor &  color,
int  x,
int  y 
) const

Works like TexturePeeker::lookup(), but instead uv-coordinates integer coordinates are used.

Definition at line 221 of file texturePeeker.cxx.

Referenced by lookup_bilinear().

◆ filter_rect() [1/2]

void TexturePeeker::filter_rect ( LColor &  color,
PN_stdfloat  min_u,
PN_stdfloat  min_v,
PN_stdfloat  max_u,
PN_stdfloat  max_v 
) const

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.

Definition at line 306 of file texturePeeker.cxx.

◆ filter_rect() [2/2]

void TexturePeeker::filter_rect ( LColor &  color,
PN_stdfloat  min_u,
PN_stdfloat  min_v,
PN_stdfloat  min_w,
PN_stdfloat  max_u,
PN_stdfloat  max_v,
PN_stdfloat  max_w 
) const

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.

Definition at line 334 of file texturePeeker.cxx.

◆ get_x_size()

int TexturePeeker::get_x_size ( ) const
inline

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.

Definition at line 29 of file texturePeeker.I.

◆ get_y_size()

int TexturePeeker::get_y_size ( ) const
inline

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.

Definition at line 39 of file texturePeeker.I.

◆ get_z_size()

int TexturePeeker::get_z_size ( ) const
inline

Returns the depth of the texture image that is contributing to the TexturePeeker's information.

Definition at line 48 of file texturePeeker.I.

◆ has_pixel()

bool TexturePeeker::has_pixel ( int  x,
int  y 
) const
inline

Returns whether a given coordinate is inside of the texture dimensions.

Definition at line 56 of file texturePeeker.I.

Referenced by lookup_bilinear().

◆ is_valid()

bool TexturePeeker::is_valid ( ) const
inline

Returns true if the TexturePeeker was able to initialize itself and is ready to return texel colors.

Definition at line 19 of file texturePeeker.I.

References PointerToVoid::is_null().

◆ lookup() [1/2]

void TexturePeeker::lookup ( LColor &  color,
PN_stdfloat  u,
PN_stdfloat  v 
) const

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.

Definition at line 210 of file texturePeeker.cxx.

◆ lookup() [2/2]

void TexturePeeker::lookup ( LColor &  color,
PN_stdfloat  u,
PN_stdfloat  v,
PN_stdfloat  w 
) const

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.

Definition at line 286 of file texturePeeker.cxx.

◆ lookup_bilinear()

bool TexturePeeker::lookup_bilinear ( LColor &  color,
PN_stdfloat  u,
PN_stdfloat  v 
) const

Performs a bilinear lookup to retrieve the color value stored at the uv coordinate (u, v).

In case the point is outside of the uv range, color is set to zero, and false is returned. Otherwise true is returned.

Definition at line 236 of file texturePeeker.cxx.

References fetch_pixel(), and has_pixel().


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