Kanzi 4.0.0-beta2
kanzi::DebugVisualization Class Reference

Class for displaying debug visualizations. More...

#include <kanzi/core.ui/node/debug_visualization.hpp>

Inheritance diagram for kanzi::DebugVisualization:
[legend]

Classes

class  BoxSettings
 Bounding volume storage. More...
 
class  CoordinateAxisSettings
 Axis settings. More...
 
class  DirectionalLightSettings
 Directional light settings. More...
 
class  EmptyObjectSettings
 Empty object settings. More...
 
class  GridSettings
 Grid settings. More...
 
class  RectangleSettings
 Rectangle settings. More...
 
class  SpotLightSettings
 Spot light settings. More...
 

Public Types

enum class  DebugObjectType {
  Camera , CameraEdges , PointLightBulb , PointLightSocket ,
  PointLightEdges , SpotLightBulb , SpotLightShade , SpotLightEdges ,
  DirectionalLightBulb , DirectionalLightCylinder , DirectionalLightEdges
}
 Types of debug object entities. More...
 
- 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
 

Public Member Functions

void clearState ()
 Clears the state.
 
void draw (Renderer &renderer, const Matrix4x4 &worldTransformation, ColorRGBA color, GraphicsPrimitiveType primitive)
 Draw the visualization.
 
void draw (Renderer &renderer, const Matrix4x4 &worldTransformation, ColorRGBA color, GraphicsPrimitiveType primitive, size_t elementOffset, size_t elementCount)
 Draw the visualization.
 
void drawDebugObject (Renderer &renderer, DebugObjectType type, const Matrix4x4 &worldTransformation, ColorRGBA color)
 Draws the debug object with the given parameters.
 
void drawLines (Renderer &renderer, const Matrix4x4 &worldTransformation, ColorRGBA color)
 Draw the visualization (lines).
 
void drawLines (Renderer &renderer, const Matrix4x4 &worldTransformation, ColorRGBA color, size_t elementOffset, size_t elementCount)
 Draw the visualization (lines).
 
void drawMesh (Renderer &renderer, Mesh &mesh, const Matrix4x4 &worldTransformation, ColorRGBA color)
 Draws the mesh with the given parameters.
 
void drawTriangles (Renderer &renderer, const Matrix4x4 &worldTransformation, ColorRGBA color)
 Draw the visualization (triangles).
 
void drawTriangles (Renderer &renderer, const Matrix4x4 &worldTransformation, ColorRGBA color, size_t elementOffset, size_t elementCount)
 Draw the visualization (triangles).
 
GeometrygetGeometry () const
 Gets a pointer to the contained geometry object.
 
MaterialgetMaterial () const
 Gets the material currently used by the contained render state.
 
template<typename DataType >
void setBrushProperty (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Traits::ParameterType value)
 Sets a property to the brush.
 
void update (Renderer &renderer, const Camera &camera)
 Updates the visualization for given camera.
 
void update (Renderer &renderer, const Mesh::Skeleton &skeleton)
 Updates the visualization for given skeleton.
 
void updateCoordinateAxises (Renderer &renderer, float axisLength)
 Updates the visualization for coordinate axises.
 
void updateDirectionalLight (Renderer &renderer, float endPointDistance, float lineHeadLength, float debugSphereRadius, float debugConeRadius)
 Update the visualization for given directional light.
 
void updateEmptyObject (Renderer &renderer, float radiusInner, float radiusOuter)
 Updates the visualization for an empty object.
 
void updateGrid (Renderer &renderer, const Matrix4x4 &viewMatrix)
 Updates the visualization for grid.
 
void updateRectangle (Renderer &renderer, float width, float height, float textureHeight, float textureOffset)
 Updates the visualization for given 2D rectangle.
 
void updateSpotLight (Renderer &renderer, float cutoffAngle, float innerAngle, float debugSphereRadius, const Matrix4x4 &worldTransform)
 Update the visualization for given spot light.
 
void updateSpotLightCircleLines (Renderer &renderer, float cutoffAngle, float innerAngle)
 Update the visualization for given spot light circle and cone lines.
 
void updateVolume (Renderer &renderer, const Box &boundingVolume)
 Update the visualization for given volume.
 
void updateVolume (Renderer &renderer, Vector3 minimumCorner, Vector3 maximumCorner)
 Updates the visualization for given volume.
 
- 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 DebugVisualizationSharedPtr create (Domain *domain, MaterialSharedPtr material, const PropertyType< ColorRGBA > &colorProperty)
 Creates a new bounding visualization (for property type).
 
static DebugVisualizationSharedPtr create (Domain *domain, MaterialSharedPtr material, Node *node, const PropertyType< ColorRGBA > &colorProperty)
 Creates a new bounding visualization (for property type).
 
static DebugVisualizationSharedPtr create (Domain *domain, MaterialSharedPtr material, Node *node, string_view colorHandleName)
 Creates a new bounding visualization (for handle name).
 
static DebugVisualizationSharedPtr create (Domain *domain, MaterialSharedPtr material, string_view colorHandleName)
 Creates a new bounding visualization (for handle name).
 
- 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 Types

using StateType
 Storage for current state of the visualization.
 
- Protected Types inherited from kanzi::Object
typedef vector< AppliedStyleEntrySharedPtrAppliedStyleContainer
 Applied style container.
 

Protected Member Functions

GridSettings calculateGridSettings (const Matrix4x4 &viewMatrix)
 Calculates grid settings based on the camera settings.
 
 DebugVisualization (Domain *domain, MaterialSharedPtr material, Node *node, const PropertyType< ColorRGBA > &colorProperty)
 Constructor with property type.
 
 DebugVisualization (Domain *domain, MaterialSharedPtr material, Node *node, string_view colorHandleName)
 Constructor with handle name.
 
void destroyOverride () override
 GPUResource::destroyOverride() implementation.
 
size_t getGPUMemoryUsageOverride () const override
 GPUResource::getGPUMemoryUsageOverride() implementation.
 
void invalidateOverride () override
 GPUResource::invalidateOverride() implementation.
 
bool isDeployedOverride () const override
 GPUResource::isDeployedOverride() 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)
 
virtual void reloadOverride ()
 
 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

BrushSharedPtr m_brush
 Brush used for rendering the geometry.
 
BrushRendererPtr m_brushRenderer
 Brush renderer for rendering the geometry.
 
GlRenderState::HandleType m_colorHandle
 Handle for setting the color.
 
optional< DynamicPropertyType< ColorRGBA > > m_colorProperty
 Color property type.
 
StateType m_currentState
 Current state.
 
GeometrySharedPtr m_geometry
 Geometry being rendered.
 
- Protected Attributes inherited from kanzi::Object
AppliedStyleContainer m_appliedStyles
 Listing of applied styles applied to this object.
 

Detailed Description

Class for displaying debug visualizations.

Renders different kinds of debug visualizations and caches the settings used to create the visualizations. This potentially means the geometry does not need to be recreated and reuploaded.

Since
Kanzi 4.0.0

Member Typedef Documentation

◆ StateType

Storage for current state of the visualization.

Member Enumeration Documentation

◆ DebugObjectType

Types of debug object entities.

Enumerator
Camera 
CameraEdges 
PointLightBulb 
PointLightSocket 
PointLightEdges 
SpotLightBulb 
SpotLightShade 
SpotLightEdges 
DirectionalLightBulb 
DirectionalLightCylinder 
DirectionalLightEdges 

Constructor & Destructor Documentation

◆ DebugVisualization() [1/2]

kanzi::DebugVisualization::DebugVisualization ( Domain * domain,
MaterialSharedPtr material,
Node * node,
string_view colorHandleName )
explicitprotected

Constructor with handle name.

Parameters
domainDomain to use.
materialMaterial to use for visualization.
nodeNode to attach to, may be nullptr.
colorHandleNameName of the color handle, if applicable.

◆ DebugVisualization() [2/2]

kanzi::DebugVisualization::DebugVisualization ( Domain * domain,
MaterialSharedPtr material,
Node * node,
const PropertyType< ColorRGBA > & colorProperty )
explicitprotected

Constructor with property type.

Parameters
domainDomain to use.
materialMaterial to use for visualization.
nodeNode to attach to, may be nullptr.
colorPropertyProperty type to set if applicable.

Member Function Documentation

◆ create() [1/4]

static DebugVisualizationSharedPtr kanzi::DebugVisualization::create ( Domain * domain,
MaterialSharedPtr material,
Node * node,
string_view colorHandleName )
inlinestatic

Creates a new bounding visualization (for handle name).

Parameters
domainDomain to use.
materialMaterial to use for visualization.
nodeNode to attach to, may be nullptr.
colorHandleNameName of the color handle, if applicable.
Returns
Bounding visualization as an unique pointer.

◆ create() [2/4]

static DebugVisualizationSharedPtr kanzi::DebugVisualization::create ( Domain * domain,
MaterialSharedPtr material,
string_view colorHandleName )
inlinestatic

Creates a new bounding visualization (for handle name).

Parameters
domainDomain to use.
materialMaterial to use for visualization.
colorHandleNameName of the color handle, if applicable.
Returns
Bounding visualization as an unique pointer.

◆ create() [3/4]

static DebugVisualizationSharedPtr kanzi::DebugVisualization::create ( Domain * domain,
MaterialSharedPtr material,
Node * node,
const PropertyType< ColorRGBA > & colorProperty )
inlinestatic

Creates a new bounding visualization (for property type).

Parameters
domainDomain to use.
materialMaterial to use for visualization.
nodeNode to attach to, may be nullptr.
colorPropertyProperty type to set if applicable.

◆ create() [4/4]

static DebugVisualizationSharedPtr kanzi::DebugVisualization::create ( Domain * domain,
MaterialSharedPtr material,
const PropertyType< ColorRGBA > & colorProperty )
inlinestatic

Creates a new bounding visualization (for property type).

Parameters
domainDomain to use.
materialMaterial to use for visualization.
colorPropertyProperty type to set if applicable.

◆ setBrushProperty()

template<typename DataType >
void kanzi::DebugVisualization::setBrushProperty ( const PropertyType< DataType > & propertyType,
typename PropertyType< DataType >::Traits::ParameterType value )
inline

Sets a property to the brush.

Parameters
propertyTypeProperty type to set.
valueValue to set.

◆ getMaterial()

Material * kanzi::DebugVisualization::getMaterial ( ) const

Gets the material currently used by the contained render state.

Returns
Pointer to a Material or nullptr.

◆ updateVolume() [1/2]

void kanzi::DebugVisualization::updateVolume ( Renderer & renderer,
Vector3 minimumCorner,
Vector3 maximumCorner )

Updates the visualization for given volume.

Parameters
rendererRenderer to use.
minimumCornerMinimum corner.
maximumCornerMaximum corner.

◆ updateVolume() [2/2]

void kanzi::DebugVisualization::updateVolume ( Renderer & renderer,
const Box & boundingVolume )
inline

Update the visualization for given volume.

Parameters
rendererRenderer to use.
boundingVolumeBounding volume.

◆ updateRectangle()

void kanzi::DebugVisualization::updateRectangle ( Renderer & renderer,
float width,
float height,
float textureHeight,
float textureOffset )

Updates the visualization for given 2D rectangle.

Parameters
rendererRenderer to use.
widthRectangle width.
heightRectangle height.
textureHeightTexture height.
textureOffsetTexture offset.

◆ updateDirectionalLight()

void kanzi::DebugVisualization::updateDirectionalLight ( Renderer & renderer,
float endPointDistance,
float lineHeadLength,
float debugSphereRadius,
float debugConeRadius )

Update the visualization for given directional light.

Parameters
rendererRenderer to use.
endPointDistanceLength (towards negative direction) for the light arrow.
lineHeadLengthLength of the arrow head.
debugSphereRadiusRadius of the visualization sphere.
debugConeRadiusRadius of the visualization cone.

◆ updateSpotLight()

void kanzi::DebugVisualization::updateSpotLight ( Renderer & renderer,
float cutoffAngle,
float innerAngle,
float debugSphereRadius,
const Matrix4x4 & worldTransform )

Update the visualization for given spot light.

Parameters
rendererRenderer to use.
cutoffAngleSpot light cutoff angle.
innerAngleSpot light inner angle.
debugSphereRadiusRadius of the visualization sphere.
worldTransformWorld transformation.

◆ updateSpotLightCircleLines()

void kanzi::DebugVisualization::updateSpotLightCircleLines ( Renderer & renderer,
float cutoffAngle,
float innerAngle )

Update the visualization for given spot light circle and cone lines.

Parameters
rendererRenderer to use.
cutoffAngleSpot light cutoff angle.
innerAngleSpot light inner angle.

◆ updateCoordinateAxises()

void kanzi::DebugVisualization::updateCoordinateAxises ( Renderer & renderer,
float axisLength )

Updates the visualization for coordinate axises.

Parameters
rendererRenderer to use.
axisLengthAxis length.

◆ updateEmptyObject()

void kanzi::DebugVisualization::updateEmptyObject ( Renderer & renderer,
float radiusInner,
float radiusOuter )

Updates the visualization for an empty object.

Parameters
rendererRenderer to use.
radiusInnerInner radius.
radiusOuterOuter radius.

◆ updateGrid()

void kanzi::DebugVisualization::updateGrid ( Renderer & renderer,
const Matrix4x4 & viewMatrix )

Updates the visualization for grid.

Parameters
rendererRenderer to use.
viewMatrixView matrix of actual camera.

◆ update() [1/2]

void kanzi::DebugVisualization::update ( Renderer & renderer,
const Camera & camera )

Updates the visualization for given camera.

Comparing the vertex data is too difficult - this function will always update the data.

Parameters
rendererRenderer to use.
cameraCamera to generate the geometry for.

◆ update() [2/2]

void kanzi::DebugVisualization::update ( Renderer & renderer,
const Mesh::Skeleton & skeleton )

Updates the visualization for given skeleton.

Comparing the vertex data is too difficult - this function will always update the data.

Parameters
rendererRenderer to use.
skeletonSkeleton to generate the geometry for.

◆ draw() [1/2]

void kanzi::DebugVisualization::draw ( Renderer & renderer,
const Matrix4x4 & worldTransformation,
ColorRGBA color,
GraphicsPrimitiveType primitive,
size_t elementOffset,
size_t elementCount )

Draw the visualization.

Parameters
rendererRenderer to use.
worldTransformationTransformation matrix to use.
colorColor to use.
primitivePrimitive type.
elementOffsetElement offset.
elementCountElement count.
Since
Kanzi 4.0.0 changed the type of the renderer parameter to Renderer&.

◆ draw() [2/2]

void kanzi::DebugVisualization::draw ( Renderer & renderer,
const Matrix4x4 & worldTransformation,
ColorRGBA color,
GraphicsPrimitiveType primitive )

Draw the visualization.

Parameters
rendererRenderer to use.
worldTransformationTransformation matrix to use.
colorColor to use.
primitivePrimitive type.
Since
Kanzi 4.0.0 changed the type of the renderer parameter to Renderer&.

◆ drawLines() [1/2]

void kanzi::DebugVisualization::drawLines ( Renderer & renderer,
const Matrix4x4 & worldTransformation,
ColorRGBA color,
size_t elementOffset,
size_t elementCount )
inline

Draw the visualization (lines).

Parameters
rendererRenderer to use.
worldTransformationTransformation matrix to use.
colorColor to use.
elementOffsetElement offset.
elementCountElement count.

◆ drawLines() [2/2]

void kanzi::DebugVisualization::drawLines ( Renderer & renderer,
const Matrix4x4 & worldTransformation,
ColorRGBA color )
inline

Draw the visualization (lines).

Parameters
rendererRenderer to use.
worldTransformationTransformation matrix to use.
colorColor to use.
Since
Kanzi 4.0.0 changed the type of the renderer parameter to Renderer&.

◆ drawTriangles() [1/2]

void kanzi::DebugVisualization::drawTriangles ( Renderer & renderer,
const Matrix4x4 & worldTransformation,
ColorRGBA color,
size_t elementOffset,
size_t elementCount )
inline

Draw the visualization (triangles).

Parameters
rendererRenderer to use.
worldTransformationTransformation matrix to use.
colorColor to use.
elementOffsetElement offset.
elementCountElement count.
Since
Kanzi 4.0.0 changed the type of the renderer parameter to Renderer&.

◆ drawTriangles() [2/2]

void kanzi::DebugVisualization::drawTriangles ( Renderer & renderer,
const Matrix4x4 & worldTransformation,
ColorRGBA color )
inline

Draw the visualization (triangles).

Parameters
rendererRenderer to use.
worldTransformationTransformation matrix to use.
colorColor to use.
Since
Kanzi 4.0.0 changed the type of the renderer parameter to Renderer&.

◆ drawDebugObject()

void kanzi::DebugVisualization::drawDebugObject ( Renderer & renderer,
DebugObjectType type,
const Matrix4x4 & worldTransformation,
ColorRGBA color )

Draws the debug object with the given parameters.

Parameters
rendererRenderer to use.
typeType of the debug object to draw.
worldTransformationTransformation matrix to use.
colorColor to use.

◆ drawMesh()

void kanzi::DebugVisualization::drawMesh ( Renderer & renderer,
Mesh & mesh,
const Matrix4x4 & worldTransformation,
ColorRGBA color )

Draws the mesh with the given parameters.

Parameters
rendererRenderer to use.
meshMesh to draw.
worldTransformationTransformation matrix to use.
colorColor to use.

◆ getGeometry()

Geometry * kanzi::DebugVisualization::getGeometry ( ) const
inline

Gets a pointer to the contained geometry object.

Returns
Non-owning pointer to the contained geometry object.

◆ clearState()

void kanzi::DebugVisualization::clearState ( )
inline

Clears the state.

Call this function if assigning geometry contents manually.

◆ getGPUMemoryUsageOverride()

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

GPUResource::getGPUMemoryUsageOverride() implementation.

Reimplemented from kanzi::GPUResource.

◆ isDeployedOverride()

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

◆ invalidateOverride()

void kanzi::DebugVisualization::invalidateOverride ( )
overrideprotectedvirtual

GPUResource::invalidateOverride() implementation.

Reimplemented from kanzi::GPUResource.

◆ destroyOverride()

void kanzi::DebugVisualization::destroyOverride ( )
overrideprotectedvirtual

GPUResource::destroyOverride() implementation.

Reimplemented from kanzi::GPUResource.

◆ calculateGridSettings()

GridSettings kanzi::DebugVisualization::calculateGridSettings ( const Matrix4x4 & viewMatrix)
protected

Calculates grid settings based on the camera settings.

Parameters
viewMatrixView matrix of actual camera.

Member Data Documentation

◆ m_geometry

GeometrySharedPtr kanzi::DebugVisualization::m_geometry
protected

Geometry being rendered.

◆ m_brush

BrushSharedPtr kanzi::DebugVisualization::m_brush
protected

Brush used for rendering the geometry.

◆ m_brushRenderer

BrushRendererPtr kanzi::DebugVisualization::m_brushRenderer
protected

Brush renderer for rendering the geometry.

◆ m_colorHandle

GlRenderState::HandleType kanzi::DebugVisualization::m_colorHandle
protected

Handle for setting the color.

◆ m_colorProperty

optional<DynamicPropertyType<ColorRGBA> > kanzi::DebugVisualization::m_colorProperty
protected

Color property type.

◆ m_currentState

StateType kanzi::DebugVisualization::m_currentState
protected

Current state.


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