Open CASCADE Technology 7.8.2.dev
|
Buffer of vertex attributes. More...
#include <Graphic3d_Buffer.hxx>
Public Member Functions | |
Graphic3d_Buffer (const Handle< NCollection_BaseAllocator > &theAlloc) | |
Empty constructor. | |
Standard_Integer | NbMaxElements () const |
Return number of initially allocated elements which can fit into this buffer, while NbElements can be overwritten to smaller value. | |
const Graphic3d_Attribute * | AttributesArray () const |
const Graphic3d_Attribute & | Attribute (const Standard_Integer theAttribIndex) const |
Graphic3d_Attribute & | ChangeAttribute (const Standard_Integer theAttribIndex) |
Standard_Integer | FindAttribute (Graphic3d_TypeOfAttribute theAttrib) const |
Find attribute index. | |
data accessors for interleaved array | |
Standard_Integer | AttributeOffset (const Standard_Integer theAttribIndex) const |
const Standard_Byte * | Data (const Standard_Integer theAttribIndex) const |
Standard_Byte * | ChangeData (const Standard_Integer theAttribIndex) |
const Standard_Byte * | value (const Standard_Integer theElem) const |
Access specified element. | |
Standard_Byte * | changeValue (const Standard_Integer theElem) |
Access specified element. | |
template<typename Type_t > | |
const Type_t & | Value (const Standard_Integer theElem) const |
Access element with specified position and type. | |
template<typename Type_t > | |
Type_t & | ChangeValue (const Standard_Integer theElem) |
Access element with specified position and type. | |
Public Member Functions inherited from NCollection_Buffer | |
NCollection_Buffer (const Handle< NCollection_BaseAllocator > &theAlloc, const Standard_Size theSize=0, Standard_Byte *theData=NULL) | |
Default constructor. When theData is NULL but theSize is not 0 than buffer of specified size will be allocated. | |
~NCollection_Buffer () | |
Destructor. | |
const Standard_Byte * | Data () const |
Standard_Byte * | ChangeData () |
bool | IsEmpty () const |
Standard_Size | Size () const |
Return buffer length in bytes. | |
const Handle< NCollection_BaseAllocator > & | Allocator () const |
void | SetAllocator (const Handle< NCollection_BaseAllocator > &theAlloc) |
Assign new buffer allocator with de-allocation of buffer. | |
bool | Allocate (const Standard_Size theSize) |
Allocate the buffer. | |
void | Free () |
De-allocate buffer. | |
Public Member Functions inherited from Standard_Transient | |
Standard_Transient () | |
Empty constructor. | |
Standard_Transient (const Standard_Transient &) | |
Copy constructor – does nothing. | |
Standard_Transient & | operator= (const Standard_Transient &) |
Assignment operator, needed to avoid copying reference counter. | |
virtual | ~Standard_Transient () |
Destructor must be virtual. | |
virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
Returns a type descriptor about this object. | |
Standard_Boolean | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
Returns a true value if this is an instance of Type. | |
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const |
Returns a true value if this is an instance of TypeName. | |
Standard_Boolean | IsKind (const opencascade::handle< Standard_Type > &theType) const |
Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. | |
Standard_Boolean | IsKind (const Standard_CString theTypeName) const |
Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. | |
Standard_Transient * | This () const |
Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. | |
Standard_Integer | GetRefCount () const noexcept |
Get the reference counter of this object. | |
void | IncrementRefCounter () noexcept |
Increments the reference counter of this object. | |
Standard_Integer | DecrementRefCounter () noexcept |
Decrements the reference counter of this object; returns the decremented value. | |
virtual void | Delete () const |
Memory deallocator for transient classes. | |
Static Public Member Functions | |
static const Handle< NCollection_BaseAllocator > & | DefaultAllocator () |
Return default vertex data allocator. | |
Static Public Member Functions inherited from Standard_Transient | |
static constexpr const char * | get_type_name () |
Returns a type descriptor about this object. | |
static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
Returns type descriptor of Standard_Transient class. | |
general accessors | |
Standard_Integer | Stride |
the distance to the attributes of the next vertex within interleaved array | |
Standard_Integer | NbElements |
number of the elements ( | |
Standard_Integer | NbAttributes |
number of vertex attributes | |
Standard_Byte * | ChangeAttributeData (Graphic3d_TypeOfAttribute theAttrib, Standard_Integer &theAttribIndex, Standard_Size &theAttribStride) |
Return the attribute data with stride size specific to this attribute. | |
const Standard_Byte * | AttributeData (Graphic3d_TypeOfAttribute theAttrib, Standard_Integer &theAttribIndex, Standard_Size &theAttribStride) const |
Return the attribute data with stride size specific to this attribute. | |
void | release () |
Release buffer. | |
bool | Init (const Standard_Integer theNbElems, const Graphic3d_Attribute *theAttribs, const Standard_Integer theNbAttribs) |
Allocates new empty array. | |
bool | Init (const Standard_Integer theNbElems, const Graphic3d_Array1OfAttribute &theAttribs) |
Allocates new empty array. | |
virtual Standard_Boolean | IsInterleaved () const |
Flag indicating that attributes in the buffer are interleaved; TRUE by default. Requires sub-classing for creating a non-interleaved buffer (advanced usage). | |
virtual Standard_Boolean | IsMutable () const |
Return TRUE if data can be invalidated; FALSE by default. Requires sub-classing for creating a mutable buffer (advanced usage). | |
virtual Graphic3d_BufferRange | InvalidatedRange () const |
Return invalidated range; EMPTY by default. Requires sub-classing for creating a mutable buffer (advanced usage). | |
virtual void | Validate () |
Reset invalidated range. Requires sub-classing for creating a mutable buffer (advanced usage). | |
virtual void | Invalidate () |
Invalidate entire buffer. | |
virtual void | DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const override |
Dumps the content of me into the stream. | |
const Standard_Byte * | Data () const |
Standard_Byte * | ChangeData () |
Additional Inherited Members | |
Public Types inherited from Standard_Transient | |
typedef void | base_type |
Returns a type descriptor about this object. | |
Protected Attributes inherited from NCollection_Buffer | |
Standard_Byte * | myData |
data pointer | |
Standard_Size | mySize |
buffer length in bytes | |
Handle< NCollection_BaseAllocator > | myAllocator |
buffer allocator | |
Buffer of vertex attributes.
|
inline |
Empty constructor.
|
inline |
|
inline |
Return the attribute data with stride size specific to this attribute.
theAttrib | attribute to find |
theAttribIndex | index of found attribute |
theAttribStride | stride in bytes between values of this attribute within returned data pointer |
|
inline |
|
inline |
|
inline |
|
inline |
Return the attribute data with stride size specific to this attribute.
theAttrib | attribute to find |
theAttribIndex | index of found attribute |
theAttribStride | stride in bytes between values of this attribute within returned data pointer |
|
inline |
|
inline |
|
inline |
Access element with specified position and type.
|
inline |
Access specified element.
|
inline |
|
inline |
|
static |
Return default vertex data allocator.
|
overridevirtual |
Dumps the content of me into the stream.
Reimplemented from NCollection_Buffer.
Reimplemented in Graphic3d_IndexBuffer.
|
inline |
Find attribute index.
theAttrib | attribute to find |
|
inline |
Allocates new empty array.
|
inline |
Allocates new empty array.
|
inlinevirtual |
Invalidate entire buffer.
Reimplemented in Graphic3d_AttribBuffer, and Graphic3d_MutableIndexBuffer.
|
inlinevirtual |
Return invalidated range; EMPTY by default. Requires sub-classing for creating a mutable buffer (advanced usage).
Reimplemented in Graphic3d_AttribBuffer, and Graphic3d_MutableIndexBuffer.
|
inlinevirtual |
Flag indicating that attributes in the buffer are interleaved; TRUE by default. Requires sub-classing for creating a non-interleaved buffer (advanced usage).
Reimplemented in Graphic3d_AttribBuffer.
|
inlinevirtual |
Return TRUE if data can be invalidated; FALSE by default. Requires sub-classing for creating a mutable buffer (advanced usage).
Reimplemented in Graphic3d_AttribBuffer, and Graphic3d_MutableIndexBuffer.
|
inline |
Return number of initially allocated elements which can fit into this buffer, while NbElements can be overwritten to smaller value.
|
inline |
Release buffer.
|
inlinevirtual |
Reset invalidated range. Requires sub-classing for creating a mutable buffer (advanced usage).
Reimplemented in Graphic3d_AttribBuffer, and Graphic3d_MutableIndexBuffer.
|
inline |
Access element with specified position and type.
|
inline |
Access specified element.
Standard_Integer Graphic3d_Buffer::NbAttributes |
number of vertex attributes
Standard_Integer Graphic3d_Buffer::NbElements |
number of the elements (
Standard_Integer Graphic3d_Buffer::Stride |
the distance to the attributes of the next vertex within interleaved array