The IScale graph node interface. More...

#include "murl_graph_i_scale.h"

Inheritance diagram for Murl::Graph::IScale:

Public Member Functions

virtual INodeGetNodeInterface ()=0
 Get the mutable Graph::INode interface. More...
 
virtual const INodeGetNodeInterface () const =0
 Get the constant Graph::INode interface. More...
 
virtual Bool SetInverted (Bool inverted)=0
 Enable/disable scale inversion. More...
 
virtual Bool IsInverted () const =0
 Check if scale inversion is enabled. More...
 
- Public Member Functions inherited from Murl::Graph::IScalable
virtual Bool SetScaleFactor (const Vector &scaleFactor)=0
 Set individual scaling factors for the X, Y and Z axes. More...
 
virtual Bool SetScaleFactor (Real x, Real y, Real z)=0
 Set individual scaling factors for the X, Y and Z axes. More...
 
virtual Bool SetScaleFactor (Real s)=0
 Set a uniform scaling factor for all three axes. More...
 
virtual Bool SetScaleFactorX (Real x)=0
 Set the scaling factor for the X axis only. More...
 
virtual Bool SetScaleFactorY (Real y)=0
 Set the scaling factor for the Y axis only. More...
 
virtual Bool SetScaleFactorZ (Real z)=0
 Set the scaling factor for the Z axis only. More...
 
virtual const VectorGetScaleFactor () const =0
 Get the scaling factors for the X, Y and Z axes. More...
 
virtual Real GetScaleFactorX () const =0
 Get the scaling factor for the X axis. More...
 
virtual Real GetScaleFactorY () const =0
 Get the scaling factor for the Y axis. More...
 
virtual Real GetScaleFactorZ () const =0
 Get the scaling factor for the Z axis. More...
 

Detailed Description

The IScale graph node interface.

This interface represents a node implementing the Graph::IScalable interface, for the purpose to add an explicit scaling factor to a transform hierarchy made up from e.g. Graph::ITransform nodes.

Although scaling is a basic operation on a transformation matrix, this should not be done directly through the Graph::ITransformable interface. Instead, individual IScale nodes should be used, which (in addition to the regular scaling operation) explicitly calculate a global scale factor from the transform hierarchy to quickly determine e.g. the radius of a bounding sphere.

Member Function Documentation

◆ GetNodeInterface() [1/2]

virtual INode* Murl::Graph::IScale::GetNodeInterface ( )
pure virtual

Get the mutable Graph::INode interface.

This method returns a mutable pointer to the node's Graph::INode interface, to be able to query or modify common node properties such as active state, visibility or ID.

Returns
The mutable Graph::INode interface, or null if not available

◆ GetNodeInterface() [2/2]

virtual const INode* Murl::Graph::IScale::GetNodeInterface ( ) const
pure virtual

Get the constant Graph::INode interface.

This method returns a constant pointer to the node's Graph::INode interface, to be able to query common node properties such as active state, visibility or ID.

Returns
The constant Graph::INode interface, or null if not available

◆ SetInverted()

virtual Bool Murl::Graph::IScale::SetInverted ( Bool  inverted)
pure virtual

Enable/disable scale inversion.

If set to true, the actual scaling factors used during traversal are the reciprocals of the given values. However, calls made to the IScalable getter methods always return the non-inverted values.

Parameters
invertedIf true, scaling is inverted.
Returns
true if successful.

◆ IsInverted()

virtual Bool Murl::Graph::IScale::IsInverted ( ) const
pure virtual

Check if scale inversion is enabled.

Returns
true if enabled.

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


Copyright © 2011-2022 Spraylight GmbH.