AGX Dynamics 2.42.1.1
Loading...
Searching...
No Matches
agx::Container Class Reference

The Container is the base class for several of the container classes proided by AGX, such as agx::Vector and agx::HashSet. More...

#include <Container.h>

+ Inheritance diagram for agx::Container:

Public Types

enum  ClearPolicy { SHRINK_BUFFER , SHRINK_BUFFER_AVERAGED , MAINTAIN_BUFFER }
 agxData::Values from this enumeration is passed to the subclasses' 'clear' method in order to control what should become of the container's memory. More...
 

Public Member Functions

size_t capacity () const
 Returns the size of the memory are used by the container to store its elements.
 
bool empty () const
 
void * ptr ()
 
const void * ptr () const
 
size_t size () const
 

Protected Member Functions

 Container ()
 
 Container (const Container &other)
 
 Container (Container &&other)
 
 ~Container ()
 

Protected Attributes

void * m_buffer
 
size_t m_capacity
 
size_t m_size
 

Detailed Description

The Container is the base class for several of the container classes proided by AGX, such as agx::Vector and agx::HashSet.

Definition at line 34 of file Container.h.

Member Enumeration Documentation

◆ ClearPolicy

agxData::Values from this enumeration is passed to the subclasses' 'clear' method in order to control what should become of the container's memory.

Enumerator
SHRINK_BUFFER 

Buffer is deallocated and replaced by an newly allocated empty buffer.

SHRINK_BUFFER_AVERAGED 

Buffer is shrunk if a smoothing average (which is updated each clear call) goes below a threshold.

MAINTAIN_BUFFER 

Buffer is maintained (normal stl behavior).

Definition at line 42 of file Container.h.

Constructor & Destructor Documentation

◆ Container() [1/3]

agx::Container::Container ( )
protected

Definition at line 102 of file Container.h.

◆ Container() [2/3]

agx::Container::Container ( Container &&  other)
protected

Definition at line 111 of file Container.h.

References m_buffer, m_capacity, and m_size.

◆ Container() [3/3]

agx::Container::Container ( const Container other)
protected

Definition at line 103 of file Container.h.

References m_buffer, m_capacity, and m_size.

◆ ~Container()

agx::Container::~Container ( )
protected

Definition at line 127 of file Container.h.

References m_buffer, m_capacity, and m_size.

Member Function Documentation

◆ capacity()

size_t agx::Container::capacity ( ) const

Returns the size of the memory are used by the container to store its elements.

Some types of containers, e.g. the agx::Vector, will not do a reallocation until the size of the container reaches the capacity. However, this is not the case for e.g., agx::HashTable, which may perform a reallocation earlier.

Returns
The size of the allocated memory area, in number of elements.

Definition at line 135 of file Container.h.

References m_capacity.

Referenced by agx::Vector< T, Allocator >::operator=().

◆ empty()

◆ ptr() [1/2]

void * agx::Container::ptr ( )
Returns
Pointer to the container's memory area.

Definition at line 137 of file Container.h.

References m_buffer.

◆ ptr() [2/2]

const void * agx::Container::ptr ( ) const

Definition at line 138 of file Container.h.

References m_buffer.

◆ size()

size_t agx::Container::size ( ) const
Returns
The number of elements in the container.

Definition at line 134 of file Container.h.

References m_size.

Referenced by agxData::Array< T >::Array(), agxStream::StoreObjects< T >::~StoreObjects(), agx::HashVector< KeyT, DataT, HashT >::back(), agx::SetVector< DataT, HashT >::back(), agx::WireContactConstraint::calculateD(), agx::WireContactConstraint::calculateRHS(), agxData::BufferT< T >::commit(), agx::GlobalResult::Transaction::commit(), agxSDK::copyVectors(), agx::createMissingTiers(), agxCollide::Space::disableForContacts(), agxSDK::LinkedSegmentIterator< T >::end(), agxWire::Link::findConnectingNode(), agx::ConstraintImplementation::findSecondaryConstraintGivenType(), agxData::EntityStorage::get(), agxSDK::MergeSplitThresholds::get(), agx::WireContactConstraint::getForceOnParticle(), agx::WireContactConstraint::getInvMass(), agx::WireContactConstraint::getJacobian(), agx::WireContactConstraint::getMass(), agx::ConstraintImplementation::BodyView::getNumBodies(), agxTerrain::ShovelAggregateFrictionModel::getNumPoints(), agxSDK::LinkedStructure::getNumSegments(), agxIO::MeshReader::getNumTriangles(), agxSDK::MergeSplitThresholds::getNumValues(), agxUtil::Spline::getTension(), agxSDK::CollisionGroupFilter::hasMemberGroup(), agxModel::SuctionCupSensorFilter::match(), agxModel::TireFilter::match(), agxSDK::CollisionGroupFilter::match(), agx::Vector< T, Allocator >::operator!=(), agx::VectorPOD< T, Allocator >::operator!=(), agx::HashSetImplementation< KeyT, HashT, AllocatorT >::operator=(), agx::QuadraticProbingHashTableImplementation< KeyT, DataT, HashT, AllocatorT >::operator=(), agx::Vector< T, Allocator >::operator=(), agx::VectorPOD< T, Allocator >::operator=(), agx::Vector< T, Allocator >::operator==(), agx::VectorPOD< T, Allocator >::operator==(), agx::HashVector< KeyT, DataT, HashT >::operator[](), agx::SetVector< DataT, HashT >::operator[](), agxOSG::RenderStateManager::parseUniform(), agx::HashVector< KeyT, DataT, HashT >::purge(), agx::SetVector< DataT, HashT >::purge(), agx::HashVector< KeyT, DataT, HashT >::push_back(), agx::SetVector< DataT, HashT >::push_back(), agxIO::ArgumentParser::read1(), agxIO::ArgumentParser::read2(), agxIO::ArgumentParser::read3(), agx::HashSetImplementation< KeyT, HashT, AllocatorT >::rebuild(), agx::QuadraticProbingHashTableImplementation< KeyT, DataT, HashT, AllocatorT >::rebuild(), agx::HashSetImplementation< KeyT, HashT, AllocatorT >::reserve(), agx::QuadraticProbingHashTableImplementation< KeyT, DataT, HashT, AllocatorT >::reserve(), agx::HashVector< KeyT, DataT, HashT >::size(), agx::SetVector< DataT, HashT >::size(), agxUtil::ConvexHull2D::size(), agxVehicle::TrackCurveControlPoints::size(), agxVehicle::utils::splitNonconsecutive(), agxWire::transformPointToShape(), agxWire::transformPointToWorld(), agxWire::transformVectorToShape(), agxWire::transformVectorToWorld(), and agx::Event::trigger().

Member Data Documentation

◆ m_buffer

◆ m_capacity

◆ m_size


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