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

This 3D renderer derived from DefaultProcessor3D renders all fed primitives to a 2D raster bitmap using a Z-Buffer based approach. More...

#include <zbufferprocessor3d.hxx>

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

Public Member Functions

 ZBufferProcessor3D (const geometry::ViewInformation3D &rViewInformation3D, const attribute::SdrSceneAttribute &rSdrSceneAttribute, const attribute::SdrLightingAttribute &rSdrLightingAttribute, const basegfx::B2DRange &rVisiblePart, sal_uInt16 nAntiAlialize, double fFullViewSizeX, double fFullViewSizeY, basegfx::BZPixelRaster &rBZPixelRaster, sal_uInt32 nStartLine, sal_uInt32 nStopLine)
 
virtual ~ZBufferProcessor3D () override
 
void finish ()
 
- Public Member Functions inherited from drawinglayer::processor3d::DefaultProcessor3D
 DefaultProcessor3D (const geometry::ViewInformation3D &rViewInformation, const attribute::SdrSceneAttribute &rSdrSceneAttribute, const attribute::SdrLightingAttribute &rSdrLightingAttribute)
 
virtual ~DefaultProcessor3D () override
 
const attribute::SdrSceneAttributegetSdrSceneAttribute () const
 data read access More...
 
const attribute::SdrLightingAttributegetSdrLightingAttribute () const
 
const basegfx::BColorModifierStackgetBColorModifierStack () const
 data read access renderer stuff More...
 
const std::shared_ptr< texture::GeoTexSvx > & getGeoTexSvx () const
 
const std::shared_ptr< texture::GeoTexSvx > & getTransparenceGeoTexSvx () const
 
sal_uInt32 getTransparenceCounter () const
 
bool getModulate () const
 
bool getFilter () const
 
bool getSimpleTextureActive () 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

virtual void rasterconvertB3DPolygon (const attribute::MaterialAttribute3D &rMaterial, const basegfx::B3DPolygon &rHairline) const override
 
virtual void rasterconvertB3DPolyPolygon (const attribute::MaterialAttribute3D &rMaterial, const basegfx::B3DPolyPolygon &rFill) const override
 

Private Attributes

basegfx::B3DHomMatrix maInvEyeToView
 inverse of EyeToView for rasterconversion with evtl. Phong shading More...
 
std::unique_ptr< ZBufferRasterConverter3DmpZBufferRasterConverter3D
 The raster converter for Z-Buffer. More...
 
sal_uInt16 mnAntiAlialize
 
std::vector< RasterPrimitive3DmaRasterPrimitive3Ds
 
sal_uInt32 mnStartLine
 
sal_uInt32 mnStopLine
 

Additional Inherited Members

- Protected Member Functions inherited from drawinglayer::processor3d::DefaultProcessor3D
void impRenderGradientTexturePrimitive3D (const primitive3d::GradientTexturePrimitive3D &rPrimitive, bool bTransparence)
 
void impRenderHatchTexturePrimitive3D (const primitive3d::HatchTexturePrimitive3D &rPrimitive)
 
void impRenderBitmapTexturePrimitive3D (const primitive3d::BitmapTexturePrimitive3D &rPrimitive)
 
void impRenderModifiedColorPrimitive3D (const primitive3d::ModifiedColorPrimitive3D &rModifiedCandidate)
 
void impRenderPolygonHairlinePrimitive3D (const primitive3d::PolygonHairlinePrimitive3D &rPrimitive) const
 
void impRenderPolyPolygonMaterialPrimitive3D (const primitive3d::PolyPolygonMaterialPrimitive3D &rPrimitive) const
 
void impRenderTransformPrimitive3D (const primitive3d::TransformPrimitive3D &rTransformCandidate)
 
virtual void rasterconvertB3DPolygon (const attribute::MaterialAttribute3D &rMaterial, const basegfx::B3DPolygon &rHairline) const =0
 
virtual void rasterconvertB3DPolyPolygon (const attribute::MaterialAttribute3D &rMaterial, const basegfx::B3DPolyPolygon &rFill) const =0
 
virtual void processBasePrimitive3D (const primitive3d::BasePrimitive3D &rBasePrimitive) override
 
- Protected Member Functions inherited from drawinglayer::processor3d::BaseProcessor3D
void updateViewInformation (const geometry::ViewInformation3D &rViewInformation3D)
 
virtual void processBasePrimitive3D (const primitive3d::BasePrimitive3D &rCandidate)
 
- Protected Attributes inherited from drawinglayer::processor3d::DefaultProcessor3D
const attribute::SdrSceneAttributemrSdrSceneAttribute
 read-only scene infos (normal handling, etc...) More...
 
const attribute::SdrLightingAttributemrSdrLightingAttribute
 read-only light infos (lights, etc...) More...
 
basegfx::B2DRange maRasterRange
 renderer range. More...
 
basegfx::BColorModifierStack maBColorModifierStack
 the modifiedColorPrimitive stack More...
 
std::shared_ptr< texture::GeoTexSvxmpGeoTexSvx
 the current active texture More...
 
std::shared_ptr< texture::GeoTexSvxmpTransparenceGeoTexSvx
 the current active transparence texture More...
 
sal_uInt32 mnTransparenceCounter
 counter for entered transparence textures More...
 
bool mbModulate: 1
 
bool mbFilter: 1
 
bool mbSimpleTextureActive: 1
 

Detailed Description

This 3D renderer derived from DefaultProcessor3D renders all fed primitives to a 2D raster bitmap using a Z-Buffer based approach.

It is able to supersample and to handle transparent content.

Definition at line 47 of file zbufferprocessor3d.hxx.

Constructor & Destructor Documentation

◆ ZBufferProcessor3D()

drawinglayer::processor3d::ZBufferProcessor3D::ZBufferProcessor3D ( const geometry::ViewInformation3D rViewInformation3D,
const attribute::SdrSceneAttribute rSdrSceneAttribute,
const attribute::SdrLightingAttribute rSdrLightingAttribute,
const basegfx::B2DRange rVisiblePart,
sal_uInt16  nAntiAlialize,
double  fFullViewSizeX,
double  fFullViewSizeY,
basegfx::BZPixelRaster rBZPixelRaster,
sal_uInt32  nStartLine,
sal_uInt32  nStopLine 
)

◆ ~ZBufferProcessor3D()

drawinglayer::processor3d::ZBufferProcessor3D::~ZBufferProcessor3D ( )
overridevirtual

Definition at line 582 of file zbufferprocessor3d.cxx.

References maRasterPrimitive3Ds, and mpZBufferRasterConverter3D.

Member Function Documentation

◆ finish()

void drawinglayer::processor3d::ZBufferProcessor3D::finish ( )

◆ rasterconvertB3DPolygon()

void drawinglayer::processor3d::ZBufferProcessor3D::rasterconvertB3DPolygon ( const attribute::MaterialAttribute3D rMaterial,
const basegfx::B3DPolygon rHairline 
) const
overrideprivatevirtual

◆ rasterconvertB3DPolyPolygon()

void drawinglayer::processor3d::ZBufferProcessor3D::rasterconvertB3DPolyPolygon ( const attribute::MaterialAttribute3D rMaterial,
const basegfx::B3DPolyPolygon rFill 
) const
overrideprivatevirtual

Member Data Documentation

◆ maInvEyeToView

basegfx::B3DHomMatrix drawinglayer::processor3d::ZBufferProcessor3D::maInvEyeToView
private

inverse of EyeToView for rasterconversion with evtl. Phong shading

Definition at line 51 of file zbufferprocessor3d.hxx.

Referenced by rasterconvertB3DPolyPolygon(), and ZBufferProcessor3D().

◆ maRasterPrimitive3Ds

std::vector< RasterPrimitive3D > drawinglayer::processor3d::ZBufferProcessor3D::maRasterPrimitive3Ds
mutableprivate

◆ mnAntiAlialize

sal_uInt16 drawinglayer::processor3d::ZBufferProcessor3D::mnAntiAlialize
private

Definition at line 59 of file zbufferprocessor3d.hxx.

Referenced by rasterconvertB3DPolygon(), and ZBufferProcessor3D().

◆ mnStartLine

sal_uInt32 drawinglayer::processor3d::ZBufferProcessor3D::mnStartLine
private

Definition at line 66 of file zbufferprocessor3d.hxx.

Referenced by rasterconvertB3DPolygon(), and rasterconvertB3DPolyPolygon().

◆ mnStopLine

sal_uInt32 drawinglayer::processor3d::ZBufferProcessor3D::mnStopLine
private

Definition at line 67 of file zbufferprocessor3d.hxx.

Referenced by rasterconvertB3DPolygon(), and rasterconvertB3DPolyPolygon().

◆ mpZBufferRasterConverter3D

std::unique_ptr<ZBufferRasterConverter3D> drawinglayer::processor3d::ZBufferProcessor3D::mpZBufferRasterConverter3D
private

The raster converter for Z-Buffer.

Definition at line 54 of file zbufferprocessor3d.hxx.

Referenced by rasterconvertB3DPolygon(), rasterconvertB3DPolyPolygon(), ZBufferProcessor3D(), and ~ZBufferProcessor3D().


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