LibreOffice Module drawinglayer (master) 1
Public Types | Public Member Functions | Private Attributes | List of all members
drawinglayer::geometry::ViewInformation3D Class Reference

ViewInformation3D class. More...

#include <viewinformation3d.hxx>

Collaboration diagram for drawinglayer::geometry::ViewInformation3D:
[legend]

Public Types

typedef o3tl::cow_wrapper< ImpViewInformation3D, o3tl::ThreadSafeRefCountingPolicyImplType
 

Public Member Functions

 ViewInformation3D (const basegfx::B3DHomMatrix &rObjectTransformation, const basegfx::B3DHomMatrix &rOrientation, const basegfx::B3DHomMatrix &rProjection, const basegfx::B3DHomMatrix &rDeviceToView, double fViewTime, const css::uno::Sequence< css::beans::PropertyValue > &rExtendedParameters)
 Constructor: Create a ViewInformation3D. More...
 
 ViewInformation3D (const css::uno::Sequence< css::beans::PropertyValue > &rViewParameters)
 Constructor: Create a ViewInformation3D. More...
 
 ViewInformation3D ()
 default (empty) constructor More...
 
 ViewInformation3D (const ViewInformation3D &)
 copy constructor More...
 
 ViewInformation3D (ViewInformation3D &&)
 
 ~ViewInformation3D ()
 destructor More...
 
bool isDefault () const
 
ViewInformation3Doperator= (const ViewInformation3D &)
 assignment operator More...
 
ViewInformation3Doperator= (ViewInformation3D &&)
 
bool operator== (const ViewInformation3D &rCandidate) const
 compare operators More...
 
bool operator!= (const ViewInformation3D &rCandidate) const
 
const basegfx::B3DHomMatrixgetObjectTransformation () const
 data access More...
 
const basegfx::B3DHomMatrixgetOrientation () const
 
const basegfx::B3DHomMatrixgetProjection () const
 
const basegfx::B3DHomMatrixgetDeviceToView () const
 
double getViewTime () const
 
const basegfx::B3DHomMatrixgetObjectToView () const
 for convenience, the linear combination of the above four transformations is offered More...
 
const css::uno::Sequence< css::beans::PropertyValue > & getExtendedInformationSequence () const
 Get the uno::Sequence< beans::PropertyValue > which contains only ViewInformation not offered directly. More...
 

Private Attributes

ImplType mpViewInformation3D
 pointer to private implementation class More...
 

Detailed Description

ViewInformation3D class.

This class holds all view-relevant information for a 3d geometry. It works together with UNO API definitions and supports holding a sequence of PropertyValues. The most used data is for convenience offered directly using basegfx tooling classes. It is an implementation to support the sequence of PropertyValues used in a css::graphic::XPrimitive3D for C++ implementations working with those

Definition at line 52 of file viewinformation3d.hxx.

Member Typedef Documentation

◆ ImplType

Definition at line 55 of file viewinformation3d.hxx.

Constructor & Destructor Documentation

◆ ViewInformation3D() [1/5]

drawinglayer::geometry::ViewInformation3D::ViewInformation3D ( const basegfx::B3DHomMatrix rObjectTransformation,
const basegfx::B3DHomMatrix rOrientation,
const basegfx::B3DHomMatrix rProjection,
const basegfx::B3DHomMatrix rDeviceToView,
double  fViewTime,
const css::uno::Sequence< css::beans::PropertyValue > &  rExtendedParameters 
)

Constructor: Create a ViewInformation3D.

Parameters
rObjectTransformationThe Transformation from Object to World coordinates (normally logic coordinates).
rOrientationA part of the 3D ViewTransformation, the World to Camera coordinates transformation which holds the camera coordinate system.
rProjectionA part of the 3D ViewTransformation, the Camera to Device transformation which transforms coordinates to a [0.0 .. 1.0] device range in X,Y and Z. Z may be used as source for Z-Buffers. This transformation may be e.g. a parallel projection, but also a perspective one and thus may use the last line of the matrix.
rDeviceToViewA part of the 3D ViewTransformation, the Device to View transformation which normally translates and scales from [0.0 .. 1.0] range in X,Y and Z to discrete position and size.

rOrientation, rProjection and rDeviceToView define the 3D transformation pipeline and are normally used multiplied together to have a direct transformation from World to View coordinates

Parameters
fViewTimeThe time the view is defined for. Default is 0.0. This parameter is used e.g. for animated objects
rExtendedParametersA sequence of property values which allows holding various other parameters besides the obvious and needed ones above. For this constructor none of the other parameters should be added as data. The constructor will parse the given parameters and if data for the other parameters is given, the value in rExtendedParameters will be preferred and overwrite the given parameter

◆ ViewInformation3D() [2/5]

drawinglayer::geometry::ViewInformation3D::ViewInformation3D ( const css::uno::Sequence< css::beans::PropertyValue > &  rViewParameters)
explicit

Constructor: Create a ViewInformation3D.

Parameters
rViewParametersA sequence of property values which allows holding any combination of local and various other parameters. This constructor is fed completely with a sequence of PropertyValues which will be parsed to be able to offer the most used ones in a convenient way.

◆ ViewInformation3D() [3/5]

drawinglayer::geometry::ViewInformation3D::ViewInformation3D ( )

default (empty) constructor

Definition at line 305 of file viewinformation3d.cxx.

◆ ViewInformation3D() [4/5]

drawinglayer::geometry::ViewInformation3D::ViewInformation3D ( const ViewInformation3D )
default

copy constructor

◆ ViewInformation3D() [5/5]

drawinglayer::geometry::ViewInformation3D::ViewInformation3D ( ViewInformation3D &&  )
default

◆ ~ViewInformation3D()

drawinglayer::geometry::ViewInformation3D::~ViewInformation3D ( )
default

destructor

Member Function Documentation

◆ getDeviceToView()

const basegfx::B3DHomMatrix & drawinglayer::geometry::ViewInformation3D::getDeviceToView ( ) const

◆ getExtendedInformationSequence()

const uno::Sequence< beans::PropertyValue > & drawinglayer::geometry::ViewInformation3D::getExtendedInformationSequence ( ) const

Get the uno::Sequence< beans::PropertyValue > which contains only ViewInformation not offered directly.

Use this call if You only need ViewInformation which is not offered conveniently, but only exists as PropertyValue. This is e.g. used to create partially updated incarnations of ViewInformation3D without losing the only with PropertyValues defined data. It does not contain a complete description.

Definition at line 360 of file viewinformation3d.cxx.

References mpViewInformation3D.

Referenced by drawinglayer::primitive2d::ScenePrimitive2D::create2DDecomposition(), drawinglayer::processor3d::DefaultProcessor3D::impRenderTransformPrimitive3D(), drawinglayer::processor3d::Geometry2DExtractingProcessor::processBasePrimitive3D(), drawinglayer::processor3d::Shadow3DExtractingProcessor::processBasePrimitive3D(), and drawinglayer::processor3d::CutFindProcessor::processBasePrimitive3D().

◆ getObjectToView()

const basegfx::B3DHomMatrix & drawinglayer::geometry::ViewInformation3D::getObjectToView ( ) const

for convenience, the linear combination of the above four transformations is offered

Definition at line 350 of file viewinformation3d.cxx.

References mpViewInformation3D.

Referenced by drawinglayer::processor2d::HitTestProcessor2D::check3DHit(), and drawinglayer::primitive3d::createReducedOutlines().

◆ getObjectTransformation()

const basegfx::B3DHomMatrix & drawinglayer::geometry::ViewInformation3D::getObjectTransformation ( ) const

◆ getOrientation()

const basegfx::B3DHomMatrix & drawinglayer::geometry::ViewInformation3D::getOrientation ( ) const

◆ getProjection()

const basegfx::B3DHomMatrix & drawinglayer::geometry::ViewInformation3D::getProjection ( ) const

◆ getViewTime()

double drawinglayer::geometry::ViewInformation3D::getViewTime ( ) const

◆ isDefault()

bool drawinglayer::geometry::ViewInformation3D::isDefault ( ) const

◆ operator!=()

bool drawinglayer::geometry::ViewInformation3D::operator!= ( const ViewInformation3D rCandidate) const
inline

Definition at line 134 of file viewinformation3d.hxx.

References operator==().

◆ operator=() [1/2]

ViewInformation3D & drawinglayer::geometry::ViewInformation3D::operator= ( const ViewInformation3D )
default

assignment operator

◆ operator=() [2/2]

ViewInformation3D & drawinglayer::geometry::ViewInformation3D::operator= ( ViewInformation3D &&  )
default

References operator==().

◆ operator==()

bool drawinglayer::geometry::ViewInformation3D::operator== ( const ViewInformation3D rCandidate) const

compare operators

Definition at line 325 of file viewinformation3d.cxx.

References mpViewInformation3D.

Member Data Documentation

◆ mpViewInformation3D

ImplType drawinglayer::geometry::ViewInformation3D::mpViewInformation3D
private

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