namespace basegfx { class B3DPolyPolygon; } namespace basegfx { class B3DPolygon; }
namespace drawinglayer::processor3d
{ /** Shadow3DExtractingProcessor class
Thisprocessorextractsthe2Dshadowgeometry(projectedgeometry)ofallfedprimitives. Itisusedtocreatetheshadowof3Dobjectswhichconsistsof2Dgeometry.Itneedsquite somedatatodososincewedonotonlyofferflatprojected2Dshadow,butalsoprojections dependentonthelightsource
*/ class Shadow3DExtractingProcessor final : public BaseProcessor3D
{ private: /// result holding vector (2D) and target vector for stacking (inited to &maPrimitive2DSequence)
primitive2d::Primitive2DContainer maPrimitive2DSequence;
primitive2d::Primitive2DContainer* mpPrimitive2DSequence;
/// object transformation for scene for 2d definition
basegfx::B2DHomMatrix maObjectTransformation;
/// prepared data (transformations) for 2D/3D shadow calculations
basegfx::B3DHomMatrix maWorldToEye;
basegfx::B3DHomMatrix maEyeToView;
basegfx::B3DVector maLightNormal;
basegfx::B3DVector maShadowPlaneNormal;
basegfx::B3DPoint maPlanePoint; double mfLightPlaneScalar;
/// flag if shadow plane projection preparation led to valid results bool mbShadowProjectionIsValid : 1;
/// flag if conversion is switched on bool mbConvert : 1;
/// flag if conversion shall use projection bool mbUseProjection : 1;
/* as tooling, the process() implementation takes over API handling and calls this virtualrendermethodwhentheprimitiveimplementationisBasePrimitive3D-based.
*/ virtualvoid processBasePrimitive3D(const primitive3d::BasePrimitive3D& rCandidate) override;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.