Murl::Graph::IBoundingVolume Interface Referenceabstract

The IBoundingVolume interface. More...

#include "murl_graph_i_bounding_volume.h"

Inherits Murl::IStatisticsObject.

Inherited by Murl::Graph::BoundingVolume.

Public Member Functions

virtual Bool Clear ()=0
 Clear the bounding volume. More...
 
virtual Bool SetLocalBounds (const Box &box)=0
 Set the local bounding volume extent from a box. More...
 
virtual Bool SetLocalBounds (const Vector &minExtent, const Vector &maxExtent)=0
 Set the local bounding volume extent. More...
 
virtual Bool SetLocalBounds (const Box &outerBox, const Box &innerBox)=0
 Set the local bounding volume extent from an inner and outer box. More...
 
virtual Bool SetLocalBounds (const Vector &minOuterExtent, const Vector &maxOuterExtent, const Vector &minInnerExtent, const Vector &maxInnerExtent)=0
 Set the local bounding volume extent. More...
 
virtual Bool SetLocalBounds (const Sphere &sphere)=0
 Set the local bounding volume extent from a sphere. More...
 
virtual Bool SetLocalBounds (const Vector &sphereCenter, Real sphereRadius)=0
 Set the local bounding volume extent. More...
 
virtual Bool UniteLocalBounds (const IBoundingVolume *other)=0
 Unite the local bounding volume with a given other one. More...
 
virtual Bool UniteLocalBounds (const IBoundingVolume *other, const Matrix &baseTransform, const Vector &baseScale)=0
 Unite the local bounding volume with a given other one using an additional transformation. More...
 
virtual const SphereGetLocalSphere () const =0
 Get the bounding sphere in object space. More...
 
virtual const SphereGetWorldSphere () const =0
 Get the bounding sphere in world space. More...
 
virtual Sphere CalculateWorldSphereRelativeToBase (const Matrix &baseTransform, const Vector &baseScale) const =0
 Calculate the bounding sphere relative to a given base transform and scale. More...
 
virtual Sphere CalculateWorldSphereRelativeToView (const Matrix &viewTransform, const Vector &viewScale) const =0
 Calculate the bounding sphere relative to a given view transform and scale. More...
 
virtual const BoxGetOuterLocalBox () const =0
 Get the outer bounding box in object space. More...
 
virtual const BoxGetOuterWorldBox () const =0
 Get the outer bounding box in world space. More...
 
virtual Box CalculateOuterWorldBoxRelativeToBase (const Matrix &baseTransform, const Vector &baseScale) const =0
 Calculate the outer bounding box relative to a given base transform and scale. More...
 
virtual Box CalculateOuterWorldBoxRelativeToView (const Matrix &viewTransform, const Vector &viewScale) const =0
 Calculate the outer bounding box relative to a given view transform and scale. More...
 
virtual const BoxGetInnerLocalBox () const =0
 Get the inner bounding box in object space. More...
 
virtual const BoxGetInnerWorldBox () const =0
 Get the inner bounding box in world space. More...
 
virtual Box CalculateInnerWorldBoxRelativeToBase (const Matrix &baseTransform, const Vector &baseScale) const =0
 Calculate the inner bounding box relative to a given base transform and scale. More...
 
virtual Box CalculateInnerWorldBoxRelativeToView (const Matrix &viewTransform, const Vector &viewScale) const =0
 Calculate the inner bounding box relative to a given view transform and scale. More...
 
virtual Bool SetWorldTransform (const Matrix &worldTransform)=0
 Set the bounding volume's current world transform matrix. More...
 
virtual Bool ClearWorldTransform ()=0
 Clear the bounding volume's current world transform matrix. More...
 
virtual const MatrixGetWorldTransform () const =0
 Get the bounding volume's current world transform matrix. More...
 
virtual Bool SetWorldScaleFactor (const Vector &worldScaleFactor)=0
 Set the bounding volume's current world scale factor. More...
 
virtual Bool ClearWorldScaleFactor ()=0
 Reset the bounding volume's current world scale factor to 1. More...
 
virtual const VectorGetWorldScaleFactor () const =0
 Get the bounding volume's current world scale factor. More...
 
virtual Bool IsIntersecting (const IBoundingVolume *other) const =0
 Check if the bounding volume intersects another one. More...
 
virtual Bool IsEmpty () const =0
 Check if the bounding volume is empty. More...
 
virtual Bool HasInnerBox () const =0
 Check if the bounding volume has an inner box. More...
 

Detailed Description

The IBoundingVolume interface.

This interface represents a simple bounding volume in 3D space that encloses the outer bounds of some geometry, which are used for e.g. visibility determination (a.k.a. culling), and optionally provides an "inner" volume that is used for alignment purposes.

Member Function Documentation

◆ Clear()

virtual Bool Murl::Graph::IBoundingVolume::Clear ( )
pure virtual

Clear the bounding volume.

This method clears the bounding value by setting all of its internal values to zero.

Returns
true if successful.

◆ SetLocalBounds() [1/6]

virtual Bool Murl::Graph::IBoundingVolume::SetLocalBounds ( const Box box)
pure virtual

Set the local bounding volume extent from a box.

Parameters
boxThe local bounding box.
Returns
true if successful.

◆ SetLocalBounds() [2/6]

virtual Bool Murl::Graph::IBoundingVolume::SetLocalBounds ( const Vector minExtent,
const Vector maxExtent 
)
pure virtual

Set the local bounding volume extent.

This method sets the bounding volume to enclose the given minimum and maximum values in local 3D (object) space.

Parameters
minExtentA vector containing minimum X, Y and Z values of a bounding box.
maxExtentA vector containing maximum X, Y and Z values of a bounding box.
Returns
true if successful.

◆ SetLocalBounds() [3/6]

virtual Bool Murl::Graph::IBoundingVolume::SetLocalBounds ( const Box outerBox,
const Box innerBox 
)
pure virtual

Set the local bounding volume extent from an inner and outer box.

Parameters
outerBoxThe local outer bounding box.
innerBoxThe local inner bounding box.
Returns
true if successful.

◆ SetLocalBounds() [4/6]

virtual Bool Murl::Graph::IBoundingVolume::SetLocalBounds ( const Vector minOuterExtent,
const Vector maxOuterExtent,
const Vector minInnerExtent,
const Vector maxInnerExtent 
)
pure virtual

Set the local bounding volume extent.

This method sets the bounding volume to enclose the given minimum and maximum values in local 3D (object) space, for both an inner and outer box.

Parameters
minOuterExtentA vector containing minimum values of the outer bounding box.
maxOuterExtentA vector containing maximum values of the outer bounding box.
minInnerExtentA vector containing minimum values of the inner bounding box.
maxInnerExtentA vector containing maximum values of the inner bounding box.
Returns
true if successful.

◆ SetLocalBounds() [5/6]

virtual Bool Murl::Graph::IBoundingVolume::SetLocalBounds ( const Sphere sphere)
pure virtual

Set the local bounding volume extent from a sphere.

Parameters
sphereThe local bounding sphere.
Returns
true if successful.

◆ SetLocalBounds() [6/6]

virtual Bool Murl::Graph::IBoundingVolume::SetLocalBounds ( const Vector sphereCenter,
Real  sphereRadius 
)
pure virtual

Set the local bounding volume extent.

This method sets the bounding volume to enclose the sphere represented by the given sphere center and radius.

Parameters
sphereCenterThe bounding sphere center.
sphereRadiusThe bounding sphere radius.
Returns
true if successful.

◆ UniteLocalBounds() [1/2]

virtual Bool Murl::Graph::IBoundingVolume::UniteLocalBounds ( const IBoundingVolume other)
pure virtual

Unite the local bounding volume with a given other one.

Parameters
otherThe other bounding volume to unite with.
Returns
true if successful.

◆ UniteLocalBounds() [2/2]

virtual Bool Murl::Graph::IBoundingVolume::UniteLocalBounds ( const IBoundingVolume other,
const Matrix baseTransform,
const Vector baseScale 
)
pure virtual

Unite the local bounding volume with a given other one using an additional transformation.

Parameters
otherThe other bounding volume to unite with.
baseTransformThe transform to apply to the other volume.
baseScaleThe scale factor to apply to the other volume.
Returns
true if successful.

◆ GetLocalSphere()

virtual const Sphere& Murl::Graph::IBoundingVolume::GetLocalSphere ( ) const
pure virtual

Get the bounding sphere in object space.

Returns
A constant reference to the local object space bounding sphere.

◆ GetWorldSphere()

virtual const Sphere& Murl::Graph::IBoundingVolume::GetWorldSphere ( ) const
pure virtual

Get the bounding sphere in world space.

Returns
A constant reference to the world space bounding sphere.

◆ CalculateWorldSphereRelativeToBase()

virtual Sphere Murl::Graph::IBoundingVolume::CalculateWorldSphereRelativeToBase ( const Matrix baseTransform,
const Vector baseScale 
) const
pure virtual

Calculate the bounding sphere relative to a given base transform and scale.

Parameters
baseTransformThe base transform to use.
baseScaleThe base scale factor to use.
Returns
The calculated sphere.

◆ CalculateWorldSphereRelativeToView()

virtual Sphere Murl::Graph::IBoundingVolume::CalculateWorldSphereRelativeToView ( const Matrix viewTransform,
const Vector viewScale 
) const
pure virtual

Calculate the bounding sphere relative to a given view transform and scale.

Parameters
viewTransformThe view transform to use.
viewScaleThe view scale factor to use.
Returns
The calculated sphere.

◆ GetOuterLocalBox()

virtual const Box& Murl::Graph::IBoundingVolume::GetOuterLocalBox ( ) const
pure virtual

Get the outer bounding box in object space.

Returns
A constant reference to the local object space outer bounding box.

◆ GetOuterWorldBox()

virtual const Box& Murl::Graph::IBoundingVolume::GetOuterWorldBox ( ) const
pure virtual

Get the outer bounding box in world space.

Returns
A constant reference to the world space outer bounding box.

◆ CalculateOuterWorldBoxRelativeToBase()

virtual Box Murl::Graph::IBoundingVolume::CalculateOuterWorldBoxRelativeToBase ( const Matrix baseTransform,
const Vector baseScale 
) const
pure virtual

Calculate the outer bounding box relative to a given base transform and scale.

Parameters
baseTransformThe base transform to use.
baseScaleThe base scale factor to use.
Returns
The calculated box.

◆ CalculateOuterWorldBoxRelativeToView()

virtual Box Murl::Graph::IBoundingVolume::CalculateOuterWorldBoxRelativeToView ( const Matrix viewTransform,
const Vector viewScale 
) const
pure virtual

Calculate the outer bounding box relative to a given view transform and scale.

Parameters
viewTransformThe view transform to use.
viewScaleThe view scale factor to use.
Returns
The calculated box.

◆ GetInnerLocalBox()

virtual const Box& Murl::Graph::IBoundingVolume::GetInnerLocalBox ( ) const
pure virtual

Get the inner bounding box in object space.

Returns
A constant reference to the local object space inner bounding box.

◆ GetInnerWorldBox()

virtual const Box& Murl::Graph::IBoundingVolume::GetInnerWorldBox ( ) const
pure virtual

Get the inner bounding box in world space.

Returns
A constant reference to the world space inner bounding box.

◆ CalculateInnerWorldBoxRelativeToBase()

virtual Box Murl::Graph::IBoundingVolume::CalculateInnerWorldBoxRelativeToBase ( const Matrix baseTransform,
const Vector baseScale 
) const
pure virtual

Calculate the inner bounding box relative to a given base transform and scale.

Parameters
baseTransformThe base transform to use.
baseScaleThe base scale factor to use.
Returns
The calculated box.

◆ CalculateInnerWorldBoxRelativeToView()

virtual Box Murl::Graph::IBoundingVolume::CalculateInnerWorldBoxRelativeToView ( const Matrix viewTransform,
const Vector viewScale 
) const
pure virtual

Calculate the inner bounding box relative to a given view transform and scale.

Parameters
viewTransformThe view transform to use.
viewScaleThe view scale factor to use.
Returns
The calculated box.

◆ SetWorldTransform()

virtual Bool Murl::Graph::IBoundingVolume::SetWorldTransform ( const Matrix worldTransform)
pure virtual

Set the bounding volume's current world transform matrix.

Parameters
worldTransformThe world transform matrix.
Returns
true if successful.

◆ ClearWorldTransform()

virtual Bool Murl::Graph::IBoundingVolume::ClearWorldTransform ( )
pure virtual

Clear the bounding volume's current world transform matrix.

Returns
true if successful.

◆ GetWorldTransform()

virtual const Matrix& Murl::Graph::IBoundingVolume::GetWorldTransform ( ) const
pure virtual

Get the bounding volume's current world transform matrix.

Returns
The world transform matrix.

◆ SetWorldScaleFactor()

virtual Bool Murl::Graph::IBoundingVolume::SetWorldScaleFactor ( const Vector worldScaleFactor)
pure virtual

Set the bounding volume's current world scale factor.

Parameters
worldScaleFactorThe world scale factor in X, Y and Z direction.
Returns
true if successful.

◆ ClearWorldScaleFactor()

virtual Bool Murl::Graph::IBoundingVolume::ClearWorldScaleFactor ( )
pure virtual

Reset the bounding volume's current world scale factor to 1.

Returns
true if successful.

◆ GetWorldScaleFactor()

virtual const Vector& Murl::Graph::IBoundingVolume::GetWorldScaleFactor ( ) const
pure virtual

Get the bounding volume's current world scale factor.

Returns
The world scale factor in X, Y and Z direction.

◆ IsIntersecting()

virtual Bool Murl::Graph::IBoundingVolume::IsIntersecting ( const IBoundingVolume other) const
pure virtual

Check if the bounding volume intersects another one.

Parameters
otherThe bounding volume to check against.
Returns
true if both volumes are intersecting.

◆ IsEmpty()

virtual Bool Murl::Graph::IBoundingVolume::IsEmpty ( ) const
pure virtual

Check if the bounding volume is empty.

Returns
true if the volume is empty.

◆ HasInnerBox()

virtual Bool Murl::Graph::IBoundingVolume::HasInnerBox ( ) const
pure virtual

Check if the bounding volume has an inner box.

Returns
true if the volume has an inner box.

The documentation for this interface was generated from the following file:
  • murl_graph_i_bounding_volume.h


Copyright © 2011-2024 Spraylight GmbH.