Panda3D

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
BulletHeightfieldShape Class Reference
Inheritance diagram for BulletHeightfieldShape:

## Public Member Functions
| BulletHeightfieldShape (const BulletHeightfieldShape &copy)
| BulletHeightfieldShape (const PNMImage &image, PN_stdfloat max_height, BulletUpAxis up=Z_up)
| Creates a collision shape suited for terrains from a rectangular image.
| BulletHeightfieldShape (Texture *tex, PN_stdfloat max_height, BulletUpAxis up=Z_up)
| Creates a collision shape suited for terrains from a rectangular texture.
virtual TypeHandle | force_init_type ()
virtual TypeHandle | get_type () const
virtual btCollisionShape * | ptr () const
void | set_use_diamond_subdivision (bool flag=true)
virtual void | write_datagram (BamWriter *manager, Datagram &dg)
| Writes the contents of this object to the datagram for shipping out to a Bam file.
Public Member Functions inherited from BulletShape
void | do_set_local_scale (const LVecBase3 &scale)
| Assumes the lock(bullet global lock) is held by the caller.
LVecBase3 | get_local_scale () const
PN_stdfloat | get_margin () const
const char * | get_name () const
BoundingSphere | get_shape_bounds () const
bool | is_concave () const
bool | is_convex () const
bool | is_convex_2d () const
bool | is_infinite () const
bool | is_non_moving () const
bool | is_polyhedral () const
bool | is_soft_body () const
void | set_local_scale (const LVecBase3 &scale)
void | set_margin (PN_stdfloat margin)
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.
void | operator= (const TypedWritableReferenceCount &copy)
Public Member Functions inherited from TypedWritable
| TypedWritable (const TypedWritable &copy)
virtual int | complete_pointers (TypedWritable **p_list, BamReader *manager)
| Receives an array of pointers, one for each time manager->read_pointer() was called in fillin().
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.
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.
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.
UpdateSeq | get_bam_modified () const
| Returns the current bam_modified counter.
void | mark_bam_modified ()
| Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams.
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.
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.
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.
const TypedObject * | as_typed_object () const
| Returns the object, upcast (if necessary) to a TypedObject pointer.
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.
bool | is_exact_type (TypeHandle handle) const
| Returns true if the current object is the indicated type exactly.
bool | is_of_type (TypeHandle handle) const
| Returns true if the current object is or derives from the indicated type.
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.
bool | has_weak_list () const
| Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise.
void | local_object ()
| This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack.
void | ref () const
| Explicitly increments the reference count.
bool | ref_if_nonzero () const
| Atomically increases the reference count of this object if it is not zero.
bool | test_ref_count_integrity () const
| Does some easy checks to make sure that the reference count isn't completely bogus.
bool | test_ref_count_nonzero () const
| Does some easy checks to make sure that the reference count isn't zero, or completely bogus.
virtual bool | unref () const
| Explicitly decrements the reference count.
bool | unref_if_one () const
| Atomically decreases the reference count of this object if it is one.
WeakReferenceList * | weak_ref ()
| Adds the indicated PointerToVoid as a weak reference to this object.
void | weak_unref ()
| Removes the indicated PointerToVoid as a weak reference to this object.

## Static Public Member Functions
static TypeHandle | get_class_type ()
static void | init_type ()
static void | register_with_read_factory ()
| Tells the BamReader how to create objects of type BulletShape.
Static Public Member Functions inherited from BulletShape
static TypeHandle | get_class_type ()
static void | init_type ()
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.
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.
Static Public Member Functions inherited from ReferenceCount
static TypeHandle | get_class_type ()
static void | init_type ()

## Additional Inherited Members
Public Attributes inherited from BulletShape
| get_margin
| get_name
| get_shape_bounds
| Returns the current bounds of this collision shape.
| is_concave
| is_convex
| is_convex_2d
| is_infinite
| is_non_moving
| is_polyhedral
| is_soft_body
| set_margin
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.
Static Public Attributes inherited from TypedWritable
static TypedWritable *const | Null = nullptr

## Detailed Description

Definition at line 30 of file bulletHeightfieldShape.h.

## Constructor & Destructor Documentation

## ◆ BulletHeightfieldShape() [1/3]

BulletHeightfieldShape::BulletHeightfieldShape | ( | const PNMImage & | image,
|  | PN_stdfloat | max_height,
|  | BulletUpAxis | up = Z_up )
| explicit

Creates a collision shape suited for terrains from a rectangular image.

Stores the image's brightness values in a vector Bullet can use, while rotating it 90 degrees to the right.

Definition at line 27 of file bulletHeightfieldShape.cxx.

References PNMImage::get_bright(), PNMImageHeader::get_x_size(), and PNMImageHeader::get_y_size().

## ◆ BulletHeightfieldShape() [2/3]

BulletHeightfieldShape::BulletHeightfieldShape | ( | Texture * | tex,
|  | PN_stdfloat | max_height,
|  | BulletUpAxis | up = Z_up )
| explicit

Creates a collision shape suited for terrains from a rectangular texture.

Alternative constructor intended for use with ShaderTerrainMesh. This will do bilinear sampling at the corners of all texels. Also works with textures that are non-power-of-two and/or rectangular.

Definition at line 79 of file bulletHeightfieldShape.cxx.

References Texture::get_x_size, and Texture::get_y_size.

## ◆ BulletHeightfieldShape() [3/3]

BulletHeightfieldShape::BulletHeightfieldShape | ( | const BulletHeightfieldShape & | copy | ) |

Definition at line 115 of file bulletHeightfieldShape.cxx.

## ◆ ~BulletHeightfieldShape()

BulletHeightfieldShape::~BulletHeightfieldShape | ( |  | ) |
| inline

Definition at line 30 of file bulletHeightfieldShape.I.

## Member Function Documentation

## ◆ force_init_type()

virtual TypeHandle BulletHeightfieldShape::force_init_type | ( |  | ) |
| inline virtual

Reimplemented from BulletShape.

Definition at line 73 of file bulletHeightfieldShape.h.

## ◆ get_class_type()

static TypeHandle BulletHeightfieldShape::get_class_type | ( |  | ) |
| inline static

Definition at line 62 of file bulletHeightfieldShape.h.

## ◆ get_type()

virtual TypeHandle BulletHeightfieldShape::get_type | ( |  | ) | const
| inline virtual

Reimplemented from BulletShape.

Definition at line 70 of file bulletHeightfieldShape.h.

## ◆ init_type()

static void BulletHeightfieldShape::init_type | ( |  | ) |
| inline static

Definition at line 65 of file bulletHeightfieldShape.h.

## ◆ ptr()

btCollisionShape * BulletHeightfieldShape::ptr | ( |  | ) | const
| virtual

Implements BulletShape.

Definition at line 57 of file bulletHeightfieldShape.cxx.

## ◆ register_with_read_factory()

void BulletHeightfieldShape::register_with_read_factory | ( |  | ) |
| static

Tells the BamReader how to create objects of type BulletShape.

Definition at line 140 of file bulletHeightfieldShape.cxx.

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

Referenced by init_libbullet().

## ◆ set_use_diamond_subdivision()

void BulletHeightfieldShape::set_use_diamond_subdivision | ( | bool | flag = true | ) |

Definition at line 66 of file bulletHeightfieldShape.cxx.

## ◆ write_datagram()

void BulletHeightfieldShape::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 TypedWritable.

Definition at line 149 of file bulletHeightfieldShape.cxx.

References Datagram::add_int32(), Datagram::add_int8(), Datagram::add_stdfloat(), and TypedWritable::write_datagram().

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

- panda/src/bullet/bulletHeightfieldShape.h
- panda/src/bullet/bulletHeightfieldShape.cxx
- panda/src/bullet/bulletHeightfieldShape.I