LibreOffice Module drawinglayer (master) 1
|
SdrPrimitive3D class. More...
Typedefs | |
typedef comphelper::WeakComponentImplHelper< css::graphic::XPrimitive3D > | BasePrimitive3DImplBase |
typedefs for basePrimitive3DImplBase, Primitive3DContainer and Primitive3DReference More... | |
typedef css::uno::Reference< css::graphic::XPrimitive3D > | Primitive3DReference |
typedef ::std::vector< Slice3D > | Slice3DVector |
typedef for a group of Slice3Ds More... | |
Enumerations | |
enum | SliceType3D { SLICETYPE3D_REGULAR , SLICETYPE3D_FRONTCAP , SLICETYPE3D_BACKCAP } |
SliceType3D definition. More... | |
SdrPrimitive3D class.
Base class for the more complicated geometric primitives, so derive from buffered primitive to allow overriding of create3DDecomposition there.
typedef comphelper::WeakComponentImplHelper< css::graphic::XPrimitive3D > drawinglayer::primitive3d::BasePrimitive3DImplBase |
typedefs for basePrimitive3DImplBase, Primitive3DContainer and Primitive3DReference
Definition at line 53 of file baseprimitive3d.hxx.
typedef css::uno::Reference< css::graphic::XPrimitive3D > drawinglayer::primitive3d::Primitive3DReference |
Definition at line 54 of file baseprimitive3d.hxx.
typedef ::std::vector< Slice3D > drawinglayer::primitive3d::Slice3DVector |
typedef for a group of Slice3Ds
Definition at line 70 of file sdrextrudelathetools3d.hxx.
SliceType3D definition.
Enumerator | |
---|---|
SLICETYPE3D_REGULAR | |
SLICETYPE3D_FRONTCAP | |
SLICETYPE3D_BACKCAP |
Definition at line 40 of file sdrextrudelathetools3d.hxx.
void drawinglayer::primitive3d::applyNormalsInvertTo3DGeometry | ( | ::std::vector< basegfx::B3DPolyPolygon > & | rFill | ) |
void drawinglayer::primitive3d::applyNormalsInvertTo3DGeometry | ( | std::vector< basegfx::B3DPolyPolygon > & | rFill | ) |
Definition at line 75 of file sdrdecompositiontools3d.cxx.
References a, and basegfx::utils::invertNormals().
Referenced by drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition(), and drawinglayer::primitive3d::SdrPolyPolygonPrimitive3D::create3DDecomposition().
void drawinglayer::primitive3d::applyNormalsKindFlatTo3DGeometry | ( | ::std::vector< basegfx::B3DPolyPolygon > & | rFill | ) |
void drawinglayer::primitive3d::applyNormalsKindFlatTo3DGeometry | ( | std::vector< basegfx::B3DPolyPolygon > & | rFill | ) |
Definition at line 67 of file sdrdecompositiontools3d.cxx.
References a.
Referenced by drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition(), and drawinglayer::primitive3d::SdrPolyPolygonPrimitive3D::create3DDecomposition().
void drawinglayer::primitive3d::applyNormalsKindSphereTo3DGeometry | ( | ::std::vector< basegfx::B3DPolyPolygon > & | rFill, |
const basegfx::B3DRange & | rRange | ||
) |
void drawinglayer::primitive3d::applyNormalsKindSphereTo3DGeometry | ( | std::vector< basegfx::B3DPolyPolygon > & | rFill, |
const basegfx::B3DRange & | rRange | ||
) |
Definition at line 56 of file sdrdecompositiontools3d.cxx.
References a, basegfx::utils::applyDefaultNormalsSphere(), and basegfx::B3DRange::getCenter().
Referenced by drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition(), and drawinglayer::primitive3d::SdrPolyPolygonPrimitive3D::create3DDecomposition().
void drawinglayer::primitive3d::applyTextureTo3DGeometry | ( | css::drawing::TextureProjectionMode | eModeX, |
css::drawing::TextureProjectionMode | eModeY, | ||
::std::vector< basegfx::B3DPolyPolygon > & | rFill, | ||
const basegfx::B3DRange & | rRange, | ||
const basegfx::B2DVector & | rTextureSize | ||
) |
void drawinglayer::primitive3d::applyTextureTo3DGeometry | ( | css::drawing::TextureProjectionMode | eModeX, |
css::drawing::TextureProjectionMode | eModeY, | ||
std::vector< basegfx::B3DPolyPolygon > & | rFill, | ||
const basegfx::B3DRange & | rRange, | ||
const basegfx::B2DVector & | rTextureSize | ||
) |
Definition at line 84 of file sdrdecompositiontools3d.cxx.
References a, basegfx::utils::applyDefaultTextureCoordinatesParallel(), basegfx::utils::applyDefaultTextureCoordinatesSphere(), basegfx::B3DRange::getCenter(), basegfx::Tuple2D< typename TYPE >::getX(), basegfx::Tuple2D< typename TYPE >::getY(), and basegfx::B2DHomMatrix::scale().
Referenced by drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition(), and drawinglayer::primitive3d::SdrPolyPolygonPrimitive3D::create3DDecomposition().
bool DRAWINGLAYER_DLLPUBLIC drawinglayer::primitive3d::arePrimitive3DReferencesEqual | ( | const Primitive3DReference & | rxA, |
const Primitive3DReference & | rxB | ||
) |
compare two Primitive2DReferences for equality, including trying to get implementations (BasePrimitive2D) and using compare operator
Definition at line 123 of file baseprimitive3d.cxx.
Referenced by drawinglayer::primitive3d::Primitive3DContainer::operator==().
Primitive3DContainer drawinglayer::primitive3d::create3DPolyPolygonFillPrimitives | ( | const ::std::vector< basegfx::B3DPolyPolygon > & | r3DPolyPolygonVector, |
const basegfx::B3DHomMatrix & | rObjectTransform, | ||
const basegfx::B2DVector & | rTextureSize, | ||
const attribute::Sdr3DObjectAttribute & | aSdr3DObjectAttribute, | ||
const attribute::SdrFillAttribute & | rFill, | ||
const attribute::FillGradientAttribute & | rFillGradient | ||
) |
Primitive3DContainer drawinglayer::primitive3d::create3DPolyPolygonFillPrimitives | ( | const std::vector< basegfx::B3DPolyPolygon > & | r3DPolyPolygonVector, |
const basegfx::B3DHomMatrix & | rObjectTransform, | ||
const basegfx::B2DVector & | rTextureSize, | ||
const attribute::Sdr3DObjectAttribute & | aSdr3DObjectAttribute, | ||
const attribute::SdrFillAttribute & | rFill, | ||
const attribute::FillGradientAttribute & | rFillGradient | ||
) |
Definition at line 160 of file sdrdecompositiontools3d.cxx.
References a, basegfx::B3DPolyPolygon::areNormalsUsed(), drawinglayer::attribute::SdrFillGraphicAttribute::createFillGraphicAttribute(), drawinglayer::attribute::Sdr3DObjectAttribute::getDoubleSided(), drawinglayer::attribute::SdrFillAttribute::getFillGraphic(), drawinglayer::attribute::SdrFillAttribute::getGradient(), drawinglayer::attribute::SdrFillAttribute::getHatch(), drawinglayer::attribute::Sdr3DObjectAttribute::getMaterial(), drawinglayer::attribute::Sdr3DObjectAttribute::getTextureFilter(), drawinglayer::attribute::Sdr3DObjectAttribute::getTextureKind(), drawinglayer::attribute::Sdr3DObjectAttribute::getTextureMode(), drawinglayer::attribute::SdrFillAttribute::getTransparence(), basegfx::Tuple2D< typename TYPE >::getX(), basegfx::Tuple2D< typename TYPE >::getY(), drawinglayer::attribute::FillGradientAttribute::isDefault(), drawinglayer::attribute::FillHatchAttribute::isDefault(), drawinglayer::attribute::SdrFillGraphicAttribute::isDefault(), basegfx::B3DPolyPolygon::transform(), and basegfx::B3DPolyPolygon::transformNormals().
Referenced by drawinglayer::primitive3d::SdrCubePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrPolyPolygonPrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrSpherePrimitive3D::create3DDecomposition(), and createHiddenGeometryPrimitives3D().
Primitive3DContainer drawinglayer::primitive3d::create3DPolyPolygonLinePrimitives | ( | const basegfx::B3DPolyPolygon & | rUnitPolyPolygon, |
const basegfx::B3DHomMatrix & | rObjectTransform, | ||
const attribute::SdrLineAttribute & | rLine | ||
) |
Definition at line 129 of file sdrdecompositiontools3d.cxx.
References a, basegfx::B3DPolyPolygon::count(), basegfx::B3DPolyPolygon::getB3DPolygon(), drawinglayer::attribute::SdrLineAttribute::getCap(), drawinglayer::attribute::SdrLineAttribute::getColor(), drawinglayer::attribute::SdrLineAttribute::getDotDashArray(), drawinglayer::attribute::SdrLineAttribute::getFullDotDashLen(), drawinglayer::attribute::SdrLineAttribute::getJoin(), drawinglayer::attribute::SdrLineAttribute::getTransparence(), drawinglayer::attribute::SdrLineAttribute::getWidth(), and basegfx::B3DPolyPolygon::transform().
Referenced by drawinglayer::primitive3d::SdrCubePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrPolyPolygonPrimitive3D::create3DDecomposition(), and drawinglayer::primitive3d::SdrSpherePrimitive3D::create3DDecomposition().
void DRAWINGLAYER_DLLPUBLIC drawinglayer::primitive3d::createExtrudeSlices | ( | Slice3DVector & | rSliceVector, |
const basegfx::B2DPolyPolygon & | rSource, | ||
double | fBackScale, | ||
double | fDiagonal, | ||
double | fDepth, | ||
bool | bCharacterMode, | ||
bool | bCloseFront, | ||
bool | bCloseBack | ||
) |
Definition at line 437 of file sdrextrudelathetools3d.cxx.
References basegfx::fTools::equal(), basegfx::fTools::equalZero(), SLICETYPE3D_BACKCAP, SLICETYPE3D_FRONTCAP, and basegfx::B3DHomMatrix::translate().
Referenced by drawinglayer::primitive3d::SdrExtrudePrimitive3D::impCreateSlices().
Primitive3DContainer drawinglayer::primitive3d::createHiddenGeometryPrimitives3D | ( | const ::std::vector< basegfx::B3DPolyPolygon > & | r3DPolyPolygonVector, |
const basegfx::B3DHomMatrix & | rObjectTransform, | ||
const basegfx::B2DVector & | rTextureSize, | ||
const attribute::Sdr3DObjectAttribute & | aSdr3DObjectAttribute | ||
) |
Primitive3DContainer drawinglayer::primitive3d::createHiddenGeometryPrimitives3D | ( | const std::vector< basegfx::B3DPolyPolygon > & | r3DPolyPolygonVector, |
const basegfx::B3DHomMatrix & | rObjectTransform, | ||
const basegfx::B2DVector & | rTextureSize, | ||
const attribute::Sdr3DObjectAttribute & | aSdr3DObjectAttribute | ||
) |
Definition at line 293 of file sdrdecompositiontools3d.cxx.
References create3DPolyPolygonFillPrimitives().
Referenced by drawinglayer::primitive3d::SdrCubePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrPolyPolygonPrimitive3D::create3DDecomposition(), and drawinglayer::primitive3d::SdrSpherePrimitive3D::create3DDecomposition().
void DRAWINGLAYER_DLLPUBLIC drawinglayer::primitive3d::createLatheSlices | ( | Slice3DVector & | rSliceVector, |
const basegfx::B2DPolyPolygon & | rSource, | ||
double | fBackScale, | ||
double | fDiagonal, | ||
double | fRotation, | ||
sal_uInt32 | nSteps, | ||
bool | bCharacterMode, | ||
bool | bCloseFront, | ||
bool | bCloseBack | ||
) |
helpers for creation
Definition at line 344 of file sdrextrudelathetools3d.cxx.
References a, basegfx::fTools::equal(), basegfx::fTools::equalZero(), basegfx::Range2D< typename TYPE, typename TRAITS >::getMaxX(), basegfx::Range2D< typename TYPE, typename TRAITS >::getMinX(), basegfx::utils::getRange(), basegfx::utils::interpolate(), basegfx::B3DHomMatrix::rotate(), SLICETYPE3D_BACKCAP, SLICETYPE3D_FRONTCAP, and basegfx::B3DHomMatrix::translate().
Referenced by drawinglayer::primitive3d::SdrLathePrimitive3D::impCreateSlices().
void DRAWINGLAYER_DLLPUBLIC drawinglayer::primitive3d::createReducedOutlines | ( | const geometry::ViewInformation3D & | rViewInformation, |
const basegfx::B3DHomMatrix & | rObjectTransform, | ||
const basegfx::B3DPolygon & | rLoopA, | ||
const basegfx::B3DPolygon & | rLoopB, | ||
basegfx::B3DPolyPolygon & | rTarget | ||
) |
Definition at line 889 of file sdrextrudelathetools3d.cxx.
References a, basegfx::B3DPolygon::append(), basegfx::average(), basegfx::B3DPolygon::count(), basegfx::utils::createB2DPolygonFromB3DPolygon(), basegfx::B2DVector::cross(), basegfx::Tuple2D< typename TYPE >::equal(), basegfx::B2DPolygon::getB2DPoint(), basegfx::B2DPolygon::getB2DRange(), basegfx::B3DPolygon::getB3DPoint(), basegfx::B2DRange::getCenter(), basegfx::B2DVector::getLength(), drawinglayer::geometry::ViewInformation3D::getObjectToView(), basegfx::utils::isInside(), and rTarget.
Referenced by drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), and drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition().
Primitive3DContainer drawinglayer::primitive3d::createShadowPrimitive3D | ( | const Primitive3DContainer & | rSource, |
const attribute::SdrShadowAttribute & | rShadow, | ||
bool | bShadow3D | ||
) |
Definition at line 270 of file sdrdecompositiontools3d.cxx.
References drawinglayer::attribute::SdrShadowAttribute::getColor(), drawinglayer::attribute::SdrShadowAttribute::getOffset(), drawinglayer::attribute::SdrShadowAttribute::getTransparence(), basegfx::Tuple2D< typename TYPE >::getX(), basegfx::Tuple2D< typename TYPE >::getY(), basegfx::fTools::moreOrEqual(), and basegfx::B2DHomMatrix::set().
Referenced by drawinglayer::primitive3d::SdrCubePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrPolyPolygonPrimitive3D::create3DDecomposition(), and drawinglayer::primitive3d::SdrSpherePrimitive3D::create3DDecomposition().
basegfx::B3DPolyPolygon DRAWINGLAYER_DLLPUBLIC drawinglayer::primitive3d::extractHorizontalLinesFromSlice | ( | const Slice3DVector & | rSliceVector, |
bool | bCloseHorLines | ||
) |
helpers for geometry extraction
Definition at line 510 of file sdrextrudelathetools3d.cxx.
References basegfx::B3DPolygon::append(), basegfx::B3DPolyPolygon::append(), count, d, and basegfx::B3DPolygon::setClosed().
Referenced by drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), and drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition().
void DRAWINGLAYER_DLLPUBLIC drawinglayer::primitive3d::extractPlanesFromSlice | ( | ::std::vector< basegfx::B3DPolyPolygon > & | rFill, |
const Slice3DVector & | rSliceVector, | ||
bool | bCreateNormals, | ||
bool | bSmoothNormals, | ||
bool | bSmoothLids, | ||
bool | bClosed, | ||
double | fSmoothNormalsMix, | ||
double | fSmoothLidsMix, | ||
bool | bCreateTextureCoordinates, | ||
const basegfx::B2DHomMatrix & | rTexTransform | ||
) |
void drawinglayer::primitive3d::extractPlanesFromSlice | ( | std::vector< basegfx::B3DPolyPolygon > & | rFill, |
const Slice3DVector & | rSliceVector, | ||
bool | bCreateNormals, | ||
bool | bSmoothNormals, | ||
bool | bSmoothLids, | ||
bool | bClosed, | ||
double | fSmoothNormalsMix, | ||
double | fSmoothLidsMix, | ||
bool | bCreateTextureCoordinates, | ||
const basegfx::B2DHomMatrix & | rTexTransform | ||
) |
Definition at line 565 of file sdrextrudelathetools3d.cxx.
References a, basegfx::utils::applyDefaultTextureCoordinatesParallel(), basegfx::B3DPolyPolygon::count(), basegfx::fTools::equalZero(), basegfx::B3DPolyPolygon::flip(), basegfx::B3DPolyPolygon::getB3DPolygon(), drawinglayer::primitive3d::Slice3D::getB3DPolyPolygon(), basegfx::B3DRange::getDepth(), getLength(), basegfx::B3DRange::getMaxX(), basegfx::B3DRange::getMaxY(), basegfx::B3DRange::getMaxZ(), basegfx::B3DRange::getMinX(), basegfx::B3DRange::getMinY(), basegfx::B3DRange::getMinZ(), basegfx::B3DPolygon::getNormal(), basegfx::utils::getRange(), drawinglayer::primitive3d::Slice3D::getSliceType(), basegfx::B3DRange::getWidth(), SLICETYPE3D_BACKCAP, SLICETYPE3D_FRONTCAP, SLICETYPE3D_REGULAR, and basegfx::B3DPolyPolygon::transformTextureCoordinates().
Referenced by drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), and drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition().
basegfx::B3DPolyPolygon DRAWINGLAYER_DLLPUBLIC drawinglayer::primitive3d::extractVerticalLinesFromSlice | ( | const Slice3DVector & | rSliceVector | ) |
Definition at line 552 of file sdrextrudelathetools3d.cxx.
References a, and basegfx::B3DPolyPolygon::append().
Referenced by drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), and drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition().
basegfx::B3DRange DRAWINGLAYER_DLLPUBLIC drawinglayer::primitive3d::getB3DRangeFromPrimitive3DReference | ( | const Primitive3DReference & | rCandidate, |
const geometry::ViewInformation3D & | aViewInformation | ||
) |
get B3DRange from a given Primitive3DReference
Definition at line 92 of file baseprimitive3d.cxx.
References basegfx::B3DRange::expand(), and drawinglayer::primitive3d::BasePrimitive3D::getB3DRange().
Referenced by drawinglayer::primitive3d::Primitive3DContainer::getB3DRange().
basegfx::B3DRange drawinglayer::primitive3d::getRangeFrom3DGeometry | ( | ::std::vector< basegfx::B3DPolyPolygon > & | rFill | ) |
basegfx::B3DRange drawinglayer::primitive3d::getRangeFrom3DGeometry | ( | std::vector< basegfx::B3DPolyPolygon > & | rFill | ) |
Definition at line 44 of file sdrdecompositiontools3d.cxx.
References a, basegfx::B3DRange::expand(), and basegfx::utils::getRange().
Referenced by drawinglayer::primitive3d::SdrExtrudePrimitive3D::create3DDecomposition(), drawinglayer::primitive3d::SdrLathePrimitive3D::create3DDecomposition(), and drawinglayer::primitive3d::SdrPolyPolygonPrimitive3D::create3DDecomposition().
OUString DRAWINGLAYER_DLLPUBLIC drawinglayer::primitive3d::idToString | ( | sal_uInt32 | nId | ) |
Definition at line 18 of file primitive3d/Tools.cxx.
References nId, PRIMITIVE3D_ID_BITMAPTEXTUREPRIMITIVE3D, PRIMITIVE3D_ID_GRADIENTTEXTUREPRIMITIVE3D, PRIMITIVE3D_ID_GROUPPRIMITIVE3D, PRIMITIVE3D_ID_HATCHTEXTUREPRIMITIVE3D, PRIMITIVE3D_ID_HIDDENGEOMETRYPRIMITIVE3D, PRIMITIVE3D_ID_MODIFIEDCOLORPRIMITIVE3D, PRIMITIVE3D_ID_POLYGONHAIRLINEPRIMITIVE3D, PRIMITIVE3D_ID_POLYGONSTROKEPRIMITIVE3D, PRIMITIVE3D_ID_POLYGONTUBEPRIMITIVE3D, PRIMITIVE3D_ID_POLYPOLYGONMATERIALPRIMITIVE3D, PRIMITIVE3D_ID_SDRCUBEPRIMITIVE3D, PRIMITIVE3D_ID_SDREXTRUDEPRIMITIVE3D, PRIMITIVE3D_ID_SDRLATHEPRIMITIVE3D, PRIMITIVE3D_ID_SDRPOLYPOLYGONPRIMITIVE3D, PRIMITIVE3D_ID_SDRSPHEREPRIMITIVE3D, PRIMITIVE3D_ID_SHADOWPRIMITIVE3D, PRIMITIVE3D_ID_TRANSFORMPRIMITIVE3D, PRIMITIVE3D_ID_TRANSPARENCETEXTUREPRIMITIVE3D, and PRIMITIVE3D_ID_UNIFIEDTRANSPARENCETEXTUREPRIMITIVE3D.
drawinglayer::primitive3d::ImplPrimitive3DIDBlock | ( | BitmapTexturePrimitive3D | , |
PRIMITIVE3D_ID_BITMAPTEXTUREPRIMITIVE3D | |||
) |
Definition at line 169 of file textureprimitive3d.cxx.
drawinglayer::primitive3d::ImplPrimitive3DIDBlock | ( | GradientTexturePrimitive3D | , |
PRIMITIVE3D_ID_GRADIENTTEXTUREPRIMITIVE3D | |||
) |
Definition at line 142 of file textureprimitive3d.cxx.
drawinglayer::primitive3d::ImplPrimitive3DIDBlock | ( | PolygonHairlinePrimitive3D | , |
PRIMITIVE3D_ID_POLYGONHAIRLINEPRIMITIVE3D | |||
) |
Definition at line 60 of file polygonprimitive3d.cxx.
References a, basegfx::utils::applyLineDashing(), basegfx::B3DPolyPolygon::count(), count, drawinglayer::primitive3d::PolygonStrokePrimitive3D::getB3DPolygon(), basegfx::B3DPolyPolygon::getB3DPolygon(), drawinglayer::primitive3d::PolygonStrokePrimitive3D::getLineAttribute(), and drawinglayer::primitive3d::PolygonStrokePrimitive3D::getStrokeAttribute().
drawinglayer::primitive3d::ImplPrimitive3DIDBlock | ( | UnifiedTransparenceTexturePrimitive3D | , |
PRIMITIVE3D_ID_UNIFIEDTRANSPARENCETEXTUREPRIMITIVE3D | |||
) |
Definition at line 114 of file textureprimitive3d.cxx.