LibreOffice Module drawinglayer (master) 1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
drawinglayer::processor3d::Shadow3DExtractingProcessor Class Referencefinal

Shadow3DExtractingProcessor class. More...

#include <shadow3dextractor.hxx>

Inheritance diagram for drawinglayer::processor3d::Shadow3DExtractingProcessor:
[legend]
Collaboration diagram for drawinglayer::processor3d::Shadow3DExtractingProcessor:
[legend]

Public Member Functions

 Shadow3DExtractingProcessor (const geometry::ViewInformation3D &rViewInformation, basegfx::B2DHomMatrix aObjectTransformation, const basegfx::B3DVector &rLightNormal, double fShadowSlant, const basegfx::B3DRange &rContained3DRange)
 
virtual ~Shadow3DExtractingProcessor () override
 
const primitive2d::Primitive2DContainergetPrimitive2DSequence () const
 data read access More...
 
const basegfx::B2DHomMatrixgetObjectTransformation () const
 
const basegfx::B3DHomMatrixgetWorldToEye () const
 
- Public Member Functions inherited from drawinglayer::processor3d::BaseProcessor3D
 BaseProcessor3D (geometry::ViewInformation3D aViewInformation)
 
virtual ~BaseProcessor3D ()
 
void process (const primitive3d::Primitive3DContainer &rSource)
 
const geometry::ViewInformation3DgetViewInformation3D () const
 

Private Member Functions

basegfx::B2DPolygon impDoShadowProjection (const basegfx::B3DPolygon &rSource)
 local helpers More...
 
basegfx::B2DPolyPolygon impDoShadowProjection (const basegfx::B3DPolyPolygon &rSource)
 
virtual void processBasePrimitive3D (const primitive3d::BasePrimitive3D &rCandidate) override
 

Private Attributes

primitive2d::Primitive2DContainer maPrimitive2DSequence
 result holding vector (2D) and target vector for stacking (inited to &maPrimitive2DSequence) More...
 
primitive2d::Primitive2DContainermpPrimitive2DSequence
 
basegfx::B2DHomMatrix maObjectTransformation
 object transformation for scene for 2d definition More...
 
basegfx::B3DHomMatrix maWorldToEye
 prepared data (transformations) for 2D/3D shadow calculations More...
 
basegfx::B3DHomMatrix maEyeToView
 
basegfx::B3DVector maLightNormal
 
basegfx::B3DVector maShadowPlaneNormal
 
basegfx::B3DPoint maPlanePoint
 
double mfLightPlaneScalar
 
bool mbShadowProjectionIsValid: 1
 flag if shadow plane projection preparation led to valid results More...
 
bool mbConvert: 1
 flag if conversion is switched on More...
 
bool mbUseProjection: 1
 flag if conversion shall use projection More...
 

Additional Inherited Members

- Protected Member Functions inherited from drawinglayer::processor3d::BaseProcessor3D
void updateViewInformation (const geometry::ViewInformation3D &rViewInformation3D)
 
virtual void processBasePrimitive3D (const primitive3d::BasePrimitive3D &rCandidate)
 

Detailed Description

Shadow3DExtractingProcessor class.

This processor extracts the 2D shadow geometry (projected geometry) of all fed primitives. It is used to create the shadow of 3D objects which consists of 2D geometry. It needs quite some data to do so since we do not only offer flat projected 2D shadow, but also projections dependent on the light source

Definition at line 42 of file shadow3dextractor.hxx.

Constructor & Destructor Documentation

◆ Shadow3DExtractingProcessor()

drawinglayer::processor3d::Shadow3DExtractingProcessor::Shadow3DExtractingProcessor ( const geometry::ViewInformation3D rViewInformation,
basegfx::B2DHomMatrix  aObjectTransformation,
const basegfx::B3DVector rLightNormal,
double  fShadowSlant,
const basegfx::B3DRange rContained3DRange 
)

◆ ~Shadow3DExtractingProcessor()

drawinglayer::processor3d::Shadow3DExtractingProcessor::~Shadow3DExtractingProcessor ( )
overridevirtual

Definition at line 245 of file shadow3dextractor.cxx.

References maPrimitive2DSequence.

Member Function Documentation

◆ getObjectTransformation()

const basegfx::B2DHomMatrix & drawinglayer::processor3d::Shadow3DExtractingProcessor::getObjectTransformation ( ) const
inline

Definition at line 89 of file shadow3dextractor.hxx.

References maObjectTransformation.

Referenced by processBasePrimitive3D().

◆ getPrimitive2DSequence()

const primitive2d::Primitive2DContainer & drawinglayer::processor3d::Shadow3DExtractingProcessor::getPrimitive2DSequence ( ) const

◆ getWorldToEye()

const basegfx::B3DHomMatrix & drawinglayer::processor3d::Shadow3DExtractingProcessor::getWorldToEye ( ) const
inline

Definition at line 90 of file shadow3dextractor.hxx.

References maWorldToEye.

Referenced by impDoShadowProjection(), and Shadow3DExtractingProcessor().

◆ impDoShadowProjection() [1/2]

basegfx::B2DPolygon drawinglayer::processor3d::Shadow3DExtractingProcessor::impDoShadowProjection ( const basegfx::B3DPolygon rSource)
private

◆ impDoShadowProjection() [2/2]

basegfx::B2DPolyPolygon drawinglayer::processor3d::Shadow3DExtractingProcessor::impDoShadowProjection ( const basegfx::B3DPolyPolygon rSource)
private

◆ processBasePrimitive3D()

void drawinglayer::processor3d::Shadow3DExtractingProcessor::processBasePrimitive3D ( const primitive3d::BasePrimitive3D rCandidate)
overrideprivatevirtual

Reimplemented from drawinglayer::processor3d::BaseProcessor3D.

Definition at line 44 of file shadow3dextractor.cxx.

References basegfx::B2DPolygon::count(), basegfx::B2DPolyPolygon::count(), basegfx::utils::createB2DPolygonFromB3DPolygon(), basegfx::utils::createB2DPolyPolygonFromB3DPolyPolygon(), drawinglayer::primitive3d::BasePrimitive3D::get3DDecomposition(), drawinglayer::primitive3d::PolygonHairlinePrimitive3D::getB3DPolygon(), drawinglayer::primitive3d::PolyPolygonMaterialPrimitive3D::getB3DPolyPolygon(), drawinglayer::primitive3d::GroupPrimitive3D::getChildren(), drawinglayer::geometry::ViewInformation3D::getDeviceToView(), drawinglayer::geometry::ViewInformation3D::getExtendedInformationSequence(), getObjectTransformation(), drawinglayer::geometry::ViewInformation3D::getObjectTransformation(), drawinglayer::geometry::ViewInformation3D::getOrientation(), drawinglayer::primitive3d::BasePrimitive3D::getPrimitive3DID(), drawinglayer::geometry::ViewInformation3D::getProjection(), drawinglayer::primitive3d::ShadowPrimitive3D::getShadow3D(), drawinglayer::primitive3d::ShadowPrimitive3D::getShadowColor(), drawinglayer::primitive3d::ShadowPrimitive3D::getShadowTransform(), drawinglayer::primitive3d::ShadowPrimitive3D::getShadowTransparence(), drawinglayer::primitive3d::TransformPrimitive3D::getTransformation(), drawinglayer::processor3d::BaseProcessor3D::getViewInformation3D(), drawinglayer::geometry::ViewInformation3D::getViewTime(), impDoShadowProjection(), maEyeToView, maWorldToEye, mbConvert, mbShadowProjectionIsValid, mbUseProjection, basegfx::fTools::more(), mpPrimitive2DSequence, PRIMITIVE3D_ID_POLYGONHAIRLINEPRIMITIVE3D, PRIMITIVE3D_ID_POLYPOLYGONMATERIALPRIMITIVE3D, PRIMITIVE3D_ID_SHADOWPRIMITIVE3D, PRIMITIVE3D_ID_TRANSFORMPRIMITIVE3D, drawinglayer::processor3d::BaseProcessor3D::process(), basegfx::B2DPolygon::transform(), basegfx::B2DPolyPolygon::transform(), and drawinglayer::processor3d::BaseProcessor3D::updateViewInformation().

Member Data Documentation

◆ maEyeToView

basegfx::B3DHomMatrix drawinglayer::processor3d::Shadow3DExtractingProcessor::maEyeToView
private

◆ maLightNormal

basegfx::B3DVector drawinglayer::processor3d::Shadow3DExtractingProcessor::maLightNormal
private

Definition at line 55 of file shadow3dextractor.hxx.

Referenced by impDoShadowProjection(), and Shadow3DExtractingProcessor().

◆ maObjectTransformation

basegfx::B2DHomMatrix drawinglayer::processor3d::Shadow3DExtractingProcessor::maObjectTransformation
private

object transformation for scene for 2d definition

Definition at line 50 of file shadow3dextractor.hxx.

Referenced by getObjectTransformation().

◆ maPlanePoint

basegfx::B3DPoint drawinglayer::processor3d::Shadow3DExtractingProcessor::maPlanePoint
private

Definition at line 57 of file shadow3dextractor.hxx.

Referenced by impDoShadowProjection(), and Shadow3DExtractingProcessor().

◆ maPrimitive2DSequence

primitive2d::Primitive2DContainer drawinglayer::processor3d::Shadow3DExtractingProcessor::maPrimitive2DSequence
private

result holding vector (2D) and target vector for stacking (inited to &maPrimitive2DSequence)

Definition at line 46 of file shadow3dextractor.hxx.

Referenced by getPrimitive2DSequence(), and ~Shadow3DExtractingProcessor().

◆ maShadowPlaneNormal

basegfx::B3DVector drawinglayer::processor3d::Shadow3DExtractingProcessor::maShadowPlaneNormal
private

Definition at line 56 of file shadow3dextractor.hxx.

Referenced by impDoShadowProjection(), and Shadow3DExtractingProcessor().

◆ maWorldToEye

basegfx::B3DHomMatrix drawinglayer::processor3d::Shadow3DExtractingProcessor::maWorldToEye
private

prepared data (transformations) for 2D/3D shadow calculations

Definition at line 53 of file shadow3dextractor.hxx.

Referenced by getWorldToEye(), processBasePrimitive3D(), and Shadow3DExtractingProcessor().

◆ mbConvert

bool drawinglayer::processor3d::Shadow3DExtractingProcessor::mbConvert
private

flag if conversion is switched on

Definition at line 64 of file shadow3dextractor.hxx.

Referenced by processBasePrimitive3D().

◆ mbShadowProjectionIsValid

bool drawinglayer::processor3d::Shadow3DExtractingProcessor::mbShadowProjectionIsValid
private

flag if shadow plane projection preparation led to valid results

Definition at line 61 of file shadow3dextractor.hxx.

Referenced by processBasePrimitive3D(), and Shadow3DExtractingProcessor().

◆ mbUseProjection

bool drawinglayer::processor3d::Shadow3DExtractingProcessor::mbUseProjection
private

flag if conversion shall use projection

Definition at line 67 of file shadow3dextractor.hxx.

Referenced by processBasePrimitive3D().

◆ mfLightPlaneScalar

double drawinglayer::processor3d::Shadow3DExtractingProcessor::mfLightPlaneScalar
private

Definition at line 58 of file shadow3dextractor.hxx.

Referenced by impDoShadowProjection(), and Shadow3DExtractingProcessor().

◆ mpPrimitive2DSequence

primitive2d::Primitive2DContainer* drawinglayer::processor3d::Shadow3DExtractingProcessor::mpPrimitive2DSequence
private

Definition at line 47 of file shadow3dextractor.hxx.

Referenced by processBasePrimitive3D().


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