Kanzi 4.0.0-beta2
kanzi::Geometry Class Reference

Geometry represents 2D coordinate data that you can use to render 2D nodes and text. More...

#include <kanzi/core.ui/graphics2d/geometry.hpp>

Inheritance diagram for kanzi::Geometry:
[legend]

Classes

struct  Vertex
 Vertex for geometry. More...
 

Public Member Functions

void addQuadDescription (const QuadDescription &quad, Vector2 tiling, bool duplicateFirstVertex, bool duplicateLastVertex)
 Adds single quad description using triangle strip primitive type.
 
void appendVertex (float x, float y, float s, float t)
 Adds a vertex to the end of an array.
 
void appendVertex (Vector3 pos)
 Adds a vertex to the end of an array.
 
void appendVertex (Vector3 pos, Vector2 texCoord)
 Adds a vertex to the end of an array.
 
void clearData ()
 Clears the data.
 
Box getBoundingVolume () const
 Gets the bounding volume of contained vertices.
 
span< VertexgetLocalVertexData ()
 Gets the vertex data (local memory pointer).
 
span< const VertexgetLocalVertexData () const
 Gets the vertex data (local memory pointer).
 
const floatgetPositionData () const
 Returns a pointer to position data.
 
const floatgetPositionData (size_t vertexOffset) const
 Returns a pointer to position data but with an offset (vertices).
 
const floatgetTexcoordData () const
 Returns a pointer to texcoord data.
 
const floatgetTexcoordData (size_t vertexOffset) const
 Returns a pointer to texcoord data but with an offset (vertices).
 
GraphicsPrimitiveType getTopology () const
 Gets the topology used by the vertex buffer.
 
gfx::BufferHandleGuard getVertexBufferHandle () const
 Gets the Kanzi graphics vertex buffer handle.
 
size_t getVertexCount () const
 Gets the vertex count.
 
bool isValid () const
 Indicates whether the geometry is valid.
 
void setGeometry (Renderer &renderer, const FrameDescription &frame, Vector2 tiling)
 Creates geometry based on tiling.
 
void setGeometry (Renderer &renderer, const QuadDescription &quad)
 Sets quad geometry.
 
void setGeometry (Renderer &renderer, const QuadDescription &quad, Vector2 tiling)
 Sets quad geometry.
 
void setTopology (GraphicsPrimitiveType topology)
 Sets the topology used by the vertex buffer.
 
void setVertex (size_t index, float x, float y)
 Sets the data for a vertex by index.
 
void setVertexCount (size_t count)
 Sets the vertex count.
 
void uploadData (Renderer &renderer)
 Uploads the complete data blob to GPU.
 
void uploadData (Renderer &renderer, size_t vertexOffset, size_t vertexCount)
 Uploads the data to GPU.
 
- Public Member Functions inherited from kanzi::GPUResource
void destroy ()
 Destroys a GPU resource.
 
size_t getGPUMemoryUsage () const
 Gets the amount of GPU memory used by the resource.
 
RenderergetRenderer () const
 
void invalidate ()
 Notify resource that graphics context was lost and all GPU resources are invalid.
 
bool isDeployed () const
 
 ~GPUResource () override
 
- Public Member Functions inherited from kanzi::Resource
size_t getCPUMemoryUsage () const
 Gets the amount of CPU memory used by the resource.
 
const string & getName () const
 Gets the resource name.
 
const string & getUrl () const
 Gets the resource URL.
 
bool isKeepAlive () const
 Tells if the resource has keep alive flag set.
 
void reload ()
 
void reloadFromFile (string_view filePath)
 
void reloadFromKzb (KzbFile &kzbFile, ReadOnlyMemoryFile &file, KzbMemoryParser &parser)
 
void setKeepAlive (bool keepAlive)
 Sets the keep alive flag.
 
void setUrl (string_view url)
 Sets the resource URL.
 
 ~Resource () override
 Destructor.
 
- Public Member Functions inherited from kanzi::Object
AppliedStyleEntrySharedPtr applyObjectStyle (kanzi::StyleSharedPtr style)
 Applies a style to an object.
 
void applyObjectStyles ()
 Apply all styles for an object node.
 
DomaingetDomain () const
 Returns the domain the object belongs to.
 
const MetaclassgetDynamicMetaclass () const override
 Returns the metaclass of the dynamic type of the object.
 
MainLoopSchedulergetMainLoopScheduler () const
 Returns the MainLoopScheduler instance of the associated Domain.
 
detail::MessageDispatcher * getMessageDispatcher () const
 Returns the message dispatcher of the object.
 
ResourceManagergetResourceManager () const
 Returns the resource manager of the object.
 
ScriptingContextSharedPtr getScriptingContext () const
 Gets the scripting context of the object.
 
 Object (Domain *domain)
 
void setScriptingContext (ScriptingContextSharedPtr context)
 Sets the scripting context of the object.
 
void unapplyObjectStyle (AppliedStyleEntrySharedPtr appliedStyleEntry)
 
void unapplyObjectStyles ()
 Unapplies and removes all applied styles.
 
 ~Object () override
 
- Public Member Functions inherited from kanzi::MetaObject
bool isTypeOf (const Metaclass *objectType) const
 Determines if the type of this object is the given type or derived from it.
 
virtual ~MetaObject ()
 
- Public Member Functions inherited from kanzi::PropertyObject
template<typename DataType >
void addPropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner)
 Adds a property modifier.
 
template<typename DataType >
void addPropertyModifierWithoutNotifyingHandlers (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner)
 Adds a property modifier without notifying handlers.
 
template<typename DataType >
void addPropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner)
 
template<typename DataType >
void addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, AbstractPropertyTypeDescriptor::ValueSourceOwner *owner)
 
template<typename DataType >
void addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, void *ownerPointer)
 
PropertyStorageContainer::iterator beginPropertyStorage ()
 Returns the begin iterator to the internal property storage container.
 
PropertyStorageContainer::const_iterator beginPropertyStorage () const
 Returns the begin iterator to the internal property storage container.
 
void clearPropertyFlag (AbstractPropertyType propertyType, uint32_t flag)
 
void copyLocalValue (const PropertyObject &other, AbstractPropertyType propertyType)
 Copies local value of single property from another object.
 
void copyLocalValues (const PropertyObject &other)
 Copies all local values from another object.
 
PropertyStorageContainer::iterator endPropertyStorage ()
 Returns the end iterator to the internal property storage container.
 
PropertyStorageContainer::const_iterator endPropertyStorage () const
 Returns the end iterator to the internal property storage container.
 
template<typename DataType >
PropertyType< DataType >::Traits::ReturnType getAbstractProperty (AbstractPropertyType abstractPropertyType) const
 
template<typename DataType >
PropertyType< DataType >::Traits::ReturnType getAbstractPropertyBase (AbstractPropertyType abstractPropertyType) const
 
template<typename DataType >
optional< typename PropertyType< DataType >::Traits::ReturnType > getOptionalAbstractProperty (AbstractPropertyType abstractPropertyType) const
 
template<typename DataType >
optional< typename PropertyType< DataType >::Traits::ReturnType > getOptionalProperty (const PropertyType< DataType > &propertyType) const
 Evaluates the property value in the same way as the overload above but does not default to the value in property metadata if there are no inputs to the property value.
 
template<typename DataType >
optional< typename PropertyType< DataType >::Traits::ReturnType > getOptionalPropertyBase (const PropertyType< DataType > &propertyType) const
 Returns the current value of a property disregarding modifiers, but does not default to the value in property metadata if there are no inputs to the property value.
 
template<typename DataType >
PropertyType< DataType >::Traits::ReturnType getProperty (const PropertyType< DataType > &propertyType) const
 Returns the current value of a property type.
 
template<typename DataType >
PropertyType< DataType >::Traits::ReturnType getPropertyBase (const PropertyType< DataType > &propertyType) const
 Returns the current value of a property disregarding modifiers.
 
template<typename DataType >
size_t getPropertyNotificationHandlerCount (const PropertyType< DataType > &propertyType) const
 Gets number of current notification handlers for given property type.
 
bool hasBaseValue (AbstractPropertyType propertyType) const
 Evaluates whether there are any inputs into the property value, disregarding modifiers.
 
bool hasLocalValue (AbstractPropertyType propertyType) const
 Evaluates whether there is a local value set for the property.
 
bool hasNonClassValue (AbstractPropertyType propertyType) const
 Evaluates whether there is a value of any precedence higher than class default value set for the property.
 
bool hasValue (AbstractPropertyType propertyType) const
 Evaluates whether there are any inputs into the property value.
 
bool isPropertyFlagSet (AbstractPropertyType propertyType, uint32_t flag) const
 
virtual void onPropertyChanged (AbstractPropertyType propertyType, PropertyNotificationReason reason)
 Virtual function to handle property change notifications.
 
 PropertyObject ()
 
void removeKzbProperties ()
 Remove all KZB properties.
 
void removeKzbProperties (flat_set< AbstractPropertyType > *keepProperties)
 Remove all KZB properties that are not included in a given set.
 
template<typename DataType >
void removeLocalPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer)
 
void removeLocalValue (AbstractPropertyType propertyType)
 Removes the local value associated with the property.
 
template<typename DataType >
void removePropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner)
 Removes a property modifier.
 
template<typename DataType >
void removePropertyModifierWithoutNotifyingHandlers (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner)
 Removes a property modifier without notifying handlers.
 
template<typename DataType >
void removePropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner)
 
template<typename DataType >
void removePropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer)
 
template<typename DataType >
void setAbstractProperty (AbstractPropertyType abstractPropertyType, typename PropertyType< DataType >::Traits::ParameterType value)
 
template<typename DataType >
void setProperty (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Traits::ParameterType value)
 Sets the local value of a property type.
 
void setPropertyFlag (AbstractPropertyType propertyType, uint32_t flag)
 
void validatePropertyModifiersAndNotifyHandlers (AbstractPropertyType propertyType)
 Validates property modifiers and notifies handlers.
 
virtual ~PropertyObject ()
 

Static Public Member Functions

static GeometrySharedPtr create (Domain *domain, string_view name="")
 Creates a geometry resource.
 
static gfx::VertexInputStateHandleGuard getTexturedVertexInputState ()
 Gets the vertex input state with the texture attributes.
 
static gfx::VertexInputStateHandleGuard getUntexturedVertexInputState ()
 Gets the vertex input state with the texture attributes.
 
static size_t getVertexStride ()
 Gets the vertex data size in bytes.
 
static void releaseVertexInputStates ()
 Releases the cached vertex input states.
 
- Static Public Member Functions inherited from kanzi::Object
static const MetaclassgetStaticMetaclass ()
 Returns the metaclass of Object class.
 
static PropertyTypeEditorInfoSharedPtr makeEditorInfo ()
 Default implementation that returns empty editor info.
 
- Static Public Member Functions inherited from kanzi::MetaObject
static const MetaclassgetStaticMetaclass ()
 Returns the metaclass of Object class.
 
static PropertyTypeEditorInfoSharedPtr makeEditorInfo ()
 Default implementation that returns empty editor info.
 

Protected Member Functions

void destroyOverride () override
 GPUResource::destroyOverride() implementation.
 
 Geometry (Domain *domain, string_view name="")
 Constructor.
 
size_t getGPUMemoryUsageOverride () const override
 GPUResource::isDeployedOverride() implementation.
 
void invalidateOverride () override
 GPUResource::invalidateOverride() implementation.
 
bool isDeployedOverride () const override
 GPUResource::isDeployedOverride() implementation.
 
void reloadOverride () override
 GPUResource::reloadOverride() implementation.
 
- Protected Member Functions inherited from kanzi::GPUResource
 GPUResource (Domain *domain, string_view name="")
 Constructor.
 
- Protected Member Functions inherited from kanzi::Resource
virtual size_t getCPUMemoryUsageOverride () const
 Implementation for getting the amount of CPU memory used by the resource.
 
virtual void reloadFromFileOverride (string_view filePath)
 
virtual void reloadFromKzbOverride (KzbFile &kzbFile, ReadOnlyMemoryFile &file, KzbMemoryParser &parser)
 
 Resource (Domain *domain, string_view name)
 Constructor.
 
- Protected Member Functions inherited from kanzi::Object
void initialize ()
 
void onCopy (const Object &other)
 
- Protected Member Functions inherited from kanzi::MetaObject
void initialize ()
 
 MetaObject ()
 
- Protected Member Functions inherited from kanzi::PropertyObject
AbstractPropertyTypeDescriptor::ValueSourceEntryacquireLocalValueSourceEntry (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::PropertyStorage &propertyStorage)
 Acquires a local value source entry that is free for the assignment of a value.
 
AbstractPropertyTypeDescriptor::ModifierStorageacquireModifierStorage (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::PropertyStorage &propertyStorage)
 
AbstractPropertyTypeDescriptor::NotificationStorageacquireNotificationStorage (AbstractPropertyTypeDescriptor &descriptor)
 
PropertyStoragePtr acquirePropertyStorage (AbstractPropertyTypeDescriptor &descriptor)
 Acquires a property storage.
 
template<typename DataType >
void addPropertyModifierBase (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner, bool notify)
 Adds a property modifier entry to the property modifier stack and validates the modifiers.
 
void addPropertyValueSource (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::ValueSource *valueSource, PropertyValuePrecedence precedence, AbstractPropertyTypeDescriptor::ValueSourceOwner *owner)
 Internally adds a property value source.
 
void addPropertyValueSource (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::ValueSource *valueSource, PropertyValuePrecedence precedence, void *ownerPointer)
 Internally adds a property value source.
 
AbstractPropertyTypeDescriptor::ValueSourceEntryconstructLocalValueSourceEntry (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::PropertyStorage &propertyStorage)
 Constructs a new local value source entry.
 
void copyLocalValue (const AbstractPropertyTypeDescriptor::PropertyStorage &otherPropertyStorage)
 Copy local value from property storage.
 
AbstractPropertyTypeDescriptor::ModifierStoragefindModifierStorage (AbstractPropertyTypeDescriptor &descriptor)
 
AbstractPropertyTypeDescriptor::NotificationStoragefindNotificationStorage (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::PropertyStoragefindPropertyStorage (AbstractPropertyTypeDescriptor &descriptor) const
 Gets the property storage for given property type descriptor.
 
PropertyStoragePtr findPropertyStoragePtr (AbstractPropertyTypeDescriptor &descriptor) const
 Gets property storage intrusive pointer which you can use to hold a reference until the end of the operation.
 
AbstractPropertyTypeDescriptorfindPropertyTypeDescriptorByNameAndDataType (string_view name, PropertyDataType dataType) const
 Finds a property type descriptor by name and data type.
 
AbstractPropertyTypeDescriptorfindPropertyTypeDescriptorByQualifiedNameAndDataType (string_view qualifiedName, PropertyDataType dataType) const
 Like findPropertyTypeDescriptorByNameAndDataType, but only searches by matching with qualified names.
 
AbstractPropertyTypeDescriptorfindPropertyTypeDescriptorByUnqualifiedNameAndDataType (string_view unqualifiedName, PropertyDataType dataType) const
 Like findPropertyTypeDescriptorByNameAndDataType, but only searches by matching with unqualified names.
 
AbstractPropertyTypeDescriptor::ValueSourcegetClassValueSource (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::ValueSourcegetFinalValueSource (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::ValueSourcegetNonClassValueSource (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::ValueSourcegetTopValueSource (AbstractPropertyTypeDescriptor &descriptor) const
 Gets the top-level value source for a given property descriptor.
 
virtual void notifyPropertyHandlers (PropertyStoragePtr &propertyStorage, PropertyNotificationReason reason)
 Notifies all property handlers on a property storage.
 
void onCopy (const PropertyObject &other)
 
void removeLocalValue (AbstractPropertyTypeDescriptor &descriptor, PropertyStoragePtr &propertyStorage)
 Removes a local value from the given property storage.
 
template<typename DataType >
void removePropertyModifierBase (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner, bool notify)
 Removes a property modifier entry from the property modifier stack and validates the remaining modifiers.
 
void removePropertyValueSource (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::ValueSource *valueSource, void *owner)
 Removes a property value source.
 
void validatePropertyModifiers (AbstractPropertyTypeDescriptor::PropertyStorage &propertyStorage)
 Validates property modifiers without notifying handlers.
 
void validatePropertyModifiersAndNotifyHandlers (PropertyStoragePtr &propertyStorage)
 Validates property modifiers and notifies handlers.
 

Protected Attributes

GPUBufferUniquePtr m_buffer
 GPU buffer.
 
vector< Vertexm_data
 Vertex data.
 
GraphicsPrimitiveType m_topology
 Primative topology.
 
- Protected Attributes inherited from kanzi::Object
AppliedStyleContainer m_appliedStyles
 Listing of applied styles applied to this object.
 

Static Protected Attributes

static gfx::VertexInputStateHandleGuard s_texturedVertexInputState
 
static gfx::VertexInputStateHandleGuard s_untexturedVertexInputState
 

Additional Inherited Members

- Public Types inherited from kanzi::GPUResource
enum  MemoryType { GpuOnly , GpuAndRam , RamOnly }
 Memory upload and RAM preservation strategy for GPU resources. More...
 
- Public Types inherited from kanzi::PropertyObject
using PropertyStorageConstIterator
 
using PropertyStorageContainer
 
using PropertyStorageIterator
 
using PropertyStoragePtr
 
using PropertyStorageReverseIterator
 
- Protected Types inherited from kanzi::Object
typedef vector< AppliedStyleEntrySharedPtrAppliedStyleContainer
 Applied style container.
 

Detailed Description

Geometry represents 2D coordinate data that you can use to render 2D nodes and text.

When rendering using Geometry, create the Geometry object beforehand instead of allocating it on the spot. Because Geometry inherits GPUResource, it needs to register into the resource manager after creation. Combined with memory allocation, this is a relatively expensive operation.

To render 2D coordinate data using Geometry:

// Create Geometry.
// If possible, do this only once and reuse the Geometry.
GeometrySharedPtr geometry = Geometry::create(domain);
// Declare a quad of size 40x30.
QuadDescription quad(Vector2(0.0f, 0.0f), Vector2(40.0f, 30.0f));
geometry->setGeometry(*renderer, quad);
geometry->setTopology(GraphicsPrimitiveTypeTriangleStrip);
// Make a transformation that translates an object 50 units to the right.
Matrix4x4 transform = Matrix4x4::createTranslation(50.0f, 0.0f, 0.0f);
// Draw the geometry.
brushRenderer->draw(*renderer, *geometry, transform);
Since
Kanzi 3.9.4 inherits from GPUResource.

Constructor & Destructor Documentation

◆ Geometry()

kanzi::Geometry::Geometry ( Domain * domain,
string_view name = "" )
explicitprotected

Constructor.

Parameters
domainDomain to use.
nameResource name.

Member Function Documentation

◆ create()

static GeometrySharedPtr kanzi::Geometry::create ( Domain * domain,
string_view name = "" )
static

Creates a geometry resource.

Parameters
domainDomain to use.
nameResource name.

◆ getPositionData() [1/2]

const float * kanzi::Geometry::getPositionData ( ) const
inline

Returns a pointer to position data.

Returns
Data pointer.

◆ getPositionData() [2/2]

const float * kanzi::Geometry::getPositionData ( size_t vertexOffset) const
inline

Returns a pointer to position data but with an offset (vertices).

Parameters
vertexOffsetVertex offset.
Returns
Data pointer.
Since
Kanzi 4.0.0 changed the type of the vertexOffset parameter to size_t.

◆ getTexcoordData() [1/2]

const float * kanzi::Geometry::getTexcoordData ( ) const
inline

Returns a pointer to texcoord data.

Returns
Data pointer.

◆ getTexcoordData() [2/2]

const float * kanzi::Geometry::getTexcoordData ( size_t vertexOffset) const
inline

Returns a pointer to texcoord data but with an offset (vertices).

Parameters
vertexOffsetVertex offset.
Returns
Data pointer.
Since
Kanzi 4.0.0 changed the type of the vertexOffset parameter to size_t.

◆ getLocalVertexData() [1/2]

span< Vertex > kanzi::Geometry::getLocalVertexData ( )
inline

Gets the vertex data (local memory pointer).

You can modify the vertices through this pointer.

Returns
Span of the vertices.
Since
Kanzi 4.0.0 changed the return type to span<Vertex>.

◆ getLocalVertexData() [2/2]

span< const Vertex > kanzi::Geometry::getLocalVertexData ( ) const
inline

Gets the vertex data (local memory pointer).

Returns
Span of the vertices.
Since
Kanzi 4.0.0 changed the return type to span<const Vertex>.

◆ getVertexBufferHandle()

gfx::BufferHandleGuard kanzi::Geometry::getVertexBufferHandle ( ) const
inline

Gets the Kanzi graphics vertex buffer handle.

Returns
Kanzi graphics handle.

◆ getVertexCount()

size_t kanzi::Geometry::getVertexCount ( ) const
inline

Gets the vertex count.

Returns
Number of vertices.
Since
Kanzi 4.0.0 changed the type of the return value to size_t.

◆ setVertexCount()

void kanzi::Geometry::setVertexCount ( size_t count)

Sets the vertex count.

When you are only adding vertices, use appendVertex() instead.

Parameters
countVertex count.

◆ isValid()

bool kanzi::Geometry::isValid ( ) const
inline

Indicates whether the geometry is valid.

Geometry with any vertices defined is valid.

◆ getVertexStride()

static size_t kanzi::Geometry::getVertexStride ( )
inlinestatic

Gets the vertex data size in bytes.

Returns
Vertex stride in bytes.
Since
Kanzi 4.0.0 changed the type of the return value to size_t.

◆ appendVertex() [1/3]

void kanzi::Geometry::appendVertex ( float x,
float y,
float s,
float t )
inline

Adds a vertex to the end of an array.

Kanzi uses this internally in functions that write vertices into the vertex buffer.

Parameters
xX coordinate.
yY coordinate.
sS texture coordinate.
tT texture coordinate.

◆ appendVertex() [2/3]

void kanzi::Geometry::appendVertex ( Vector3 pos,
Vector2 texCoord )
inline

Adds a vertex to the end of an array.

Kanzi uses this internally in functions that write vertices into the vertex buffer.

Parameters
posPosition.
texCoordTexture coordinates.
Since
Kanzi 4.0.0

◆ appendVertex() [3/3]

void kanzi::Geometry::appendVertex ( Vector3 pos)
inline

Adds a vertex to the end of an array.

Kanzi uses this internally in functions that write vertices into the vertex buffer. Texture coordinates are set to 0.0.

Parameters
posPosition.
Since
Kanzi 4.0.0

◆ setVertex()

void kanzi::Geometry::setVertex ( size_t index,
float x,
float y )
inline

Sets the data for a vertex by index.

Parameters
indexIndex to set.
xX coordinate.
yY coordinate.
Since
Kanzi 4.0.0 changed the type of the index parameter to size_t.

◆ getBoundingVolume()

Box kanzi::Geometry::getBoundingVolume ( ) const

Gets the bounding volume of contained vertices.

If there are no vertices in the geometry, the volume will be an empty box at (0, 0, 0).

Returns
Bounding volume corresponding to data in this geometry.
Since
Kanzi 4.0.0

◆ clearData()

void kanzi::Geometry::clearData ( )

Clears the data.

◆ uploadData() [1/2]

void kanzi::Geometry::uploadData ( Renderer & renderer,
size_t vertexOffset,
size_t vertexCount )

Uploads the data to GPU.

If the data has not yet been uploaded, instead uploads the complete data blob.

Parameters
rendererRenderer to use.
vertexOffsetFirst vertex offset to upload.
vertexCountNumber of vertices to upload.
Since
Kanzi 4.0.0 changed the type of the vertexOffset and vertexCount parameters to size_t.

◆ uploadData() [2/2]

void kanzi::Geometry::uploadData ( Renderer & renderer)

Uploads the complete data blob to GPU.

Parameters
rendererRenderer to use.

◆ addQuadDescription()

void kanzi::Geometry::addQuadDescription ( const QuadDescription & quad,
Vector2 tiling,
bool duplicateFirstVertex,
bool duplicateLastVertex )

Adds single quad description using triangle strip primitive type.

Call this function as part of geometry assignment.

Parameters
quadQuad description to add.
tilingTiling for the texture coordinates.
duplicateFirstVertexTrue to duplicate first vertex.
duplicateLastVertexTrue to duplicate last vertex.

◆ setGeometry() [1/3]

void kanzi::Geometry::setGeometry ( Renderer & renderer,
const QuadDescription & quad,
Vector2 tiling )

Sets quad geometry.

Replaces existing geometry.

Parameters
rendererRenderer to use.
quadQuad to read.
tilingTiling for the texture coordinates.

◆ setGeometry() [2/3]

void kanzi::Geometry::setGeometry ( Renderer & renderer,
const QuadDescription & quad )
inline

Sets quad geometry.

Replaces existing geometry with quad geometry using triangle strip primitive type. Tiling encompasses full quad area.

Parameters
rendererRenderer to use.
quadQuad to read.

◆ setGeometry() [3/3]

void kanzi::Geometry::setGeometry ( Renderer & renderer,
const FrameDescription & frame,
Vector2 tiling )

Creates geometry based on tiling.

Replaces existing geometry.

Parameters
rendererRenderer to use.
frameFrame description used to generate the geometry.
tilingTiling for the texture coordinates.

◆ getTexturedVertexInputState()

static gfx::VertexInputStateHandleGuard kanzi::Geometry::getTexturedVertexInputState ( )
static

Gets the vertex input state with the texture attributes.

Returns
The textured vertex input state.
Since
Kanzi 4.0.0

◆ getUntexturedVertexInputState()

static gfx::VertexInputStateHandleGuard kanzi::Geometry::getUntexturedVertexInputState ( )
static

Gets the vertex input state with the texture attributes.

Returns
The textured vertex input state.
Since
Kanzi 4.0.0

◆ releaseVertexInputStates()

static void kanzi::Geometry::releaseVertexInputStates ( )
static

Releases the cached vertex input states.

Since
Kanzi 4.0.0

◆ getTopology()

GraphicsPrimitiveType kanzi::Geometry::getTopology ( ) const
inline

Gets the topology used by the vertex buffer.

Returns
The topology.
Since
Kanzi 4.0.0

◆ setTopology()

void kanzi::Geometry::setTopology ( GraphicsPrimitiveType topology)
inline

Sets the topology used by the vertex buffer.

Parameters
topologyThe primitive topology.
Since
Kanzi 4.0.0

◆ getGPUMemoryUsageOverride()

size_t kanzi::Geometry::getGPUMemoryUsageOverride ( ) const
overrideprotectedvirtual

GPUResource::isDeployedOverride() implementation.

Reimplemented from kanzi::GPUResource.

◆ isDeployedOverride()

bool kanzi::Geometry::isDeployedOverride ( ) const
overrideprotectedvirtual

◆ invalidateOverride()

void kanzi::Geometry::invalidateOverride ( )
overrideprotectedvirtual

GPUResource::invalidateOverride() implementation.

Reimplemented from kanzi::GPUResource.

◆ destroyOverride()

void kanzi::Geometry::destroyOverride ( )
overrideprotectedvirtual

GPUResource::destroyOverride() implementation.

Reimplemented from kanzi::GPUResource.

◆ reloadOverride()

void kanzi::Geometry::reloadOverride ( )
overrideprotectedvirtual

GPUResource::reloadOverride() implementation.

Reimplemented from kanzi::Resource.

Member Data Documentation

◆ m_data

vector<Vertex> kanzi::Geometry::m_data
protected

Vertex data.

Size of the array is the vertex count.

◆ m_buffer

GPUBufferUniquePtr kanzi::Geometry::m_buffer
protected

GPU buffer.

◆ m_topology

GraphicsPrimitiveType kanzi::Geometry::m_topology
protected

Primative topology.

◆ s_texturedVertexInputState

gfx::VertexInputStateHandleGuard kanzi::Geometry::s_texturedVertexInputState
staticprotected

◆ s_untexturedVertexInputState

gfx::VertexInputStateHandleGuard kanzi::Geometry::s_untexturedVertexInputState
staticprotected

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