Update 4 10.04 Builds
The following methods/functions have been added to this release of the SDK
Support has been added for extra camera projection modes for VR rendering
In LxoSetup.h
void LxoSettings::SetCameraProjection ( enum LxoSettings::CameraProjection projection ) LxoSettings::CameraProjection LxoSettings::GetCameraProjection ()
Note: the methods LxoSettings::IsSphericalCamera & LxoSettings::SetIsSphericalCamera are now deprecated and will be removed
Utility function added
In Psolidcoreapi.h
SolidUtil::GetFacetCountApproximation ( Bentley::ISolidKernelEntityCR solidEntity, Bentley::IFacetOptionsR facetOptions )
Added a new constructor for DrawingBoundaryBuilder which allows to specify viewTYpe to be set on drawing boundary. In detailingsymbolhandlers.h
DrawingBoundaryBuilder::DrawingBoundaryBuilder ( Bentley::WStringCR name, Bentley::DgnAttachmentCP attachment, Bentley::DgnModelP rootModel, Bentley::WStringCR viewType )
In NamedBoundary.h
Added an option to ignore the margin that is added to named boundary range while creating saved view
NamedBoundary::SetIgnoreMarginForViewSync (bool)
In msdimstyle.h
Added a method to get the id of Active dimension style.
mdlDimStyle_getActiveId (const DgnModelRefP modelRef)
Get the listmodel of the style elements of the active file (and libraries optionnally)
mdlDimStyle_getStyleListModel (Bentley::MstnPlatform::ListModel *pListModel, bool bSuppressActiveSettings, bool bSearchLibraries)
In Angle.h
Added a medium and tiny angle used in toleranced angle comparisons. Previously, there was only Angle::SmallAngle() which returns an angle of 1e-12.
static Angle::MediumAngle () returns an angle of 1e-10 radians. static Angle::TinyAngle () returns an angle of 1e-15 radians.
In Drange3d.h
Create or extend the coordinates of the range cube by transformed points
static DRange3d::From (TransformCR transform, DPoint3dCP point, double const* pWeight, int n) DRange3d::Extend (TransformCR transform, DPoint3dCP points, double const* weights, int n)
In DSegment3d.h
Added a method to get the closest points on each supporting lines of the input segment
static DSegment3d::ClosestApproachUnbounded (double& fraction0, double& fraction1, DPoint3dR point0, DPoint3dR point1, DSegment3dCR segment0, DSegment3dCR segment1)
Creates a line segment with all coordinates zero.
static DSegment3d::FromZero () DSegment3d::InitZero ()
Applies a transformation to the source segment. DSegment3d::InitProduct (TransformCR transform, DSegment3dCR other)
In OperatorOverload.h
Usual linear algebra operators
operator* (DVec2d const& vector, double scale) operator* (DVec3d const& vector, RotMatrix const& rotmatrix) operator* (DVec3d const& vector, Transform const& transform) operator* (DVec3d const& vector, double const scalar) operator* (RotMatrix const& matrix, DVec3d const& vector) operator* (RotMatrix const& matrix, Transform const& transform) operator* (RotMatrix const& rotMatrixA, RotMatrix const& rotMatrixB) operator* (Transform const& transform, DPoint3d const& point) operator* (Transform const& transform, DVec3d const& vector) operator* (Transform const& transform, RotMatrix const& matrix) operator* (Transform const& transformA, Transform const& transformB) operator* (double const scalar, DVec3d const& vector) operator* (double scale, DVec2d const& vector) operator*= (DVec3d& vector, double const scalar) operator+ (DPoint2d const& point, DVec2d const& vector) operator+ (DPoint3d const& point, DVec3d const& vector) operator+ (DVec2d const& vectorA, DVec2d const& vectorB) operator+ (DVec3d const& left, DVec3d const& right) operator+= (DPoint3d& point, DVec3d const& vector) operator+= (DVec3d& left, DVec3d const& right) operator- (DPoint2d const& point, DVec2d const& vector) operator- (DPoint3d const& left, DPoint3d const& right) operator- (DPoint3d const& point, DVec3d const& vector) operator- (DVec3d const& left, DVec3d const& right) operator-= (DPoint3d& point, DVec3d const& vector) operator-= (DVec3d& left, DVec3d const& right) operator == (DPoint2dCR dataA, DPoint2dCR dataB) operator == (DPoint3dCR dataA, DPoint3dCR dataB)
Usual angle operators
operator* (Angle const& theta, double factor) operator* (double factor, Angle const& theta) operator+ (Angle const& alpha, Angle const& beta) operator- (Angle const& alpha, Angle const& beta) operator- (Angle const& theta)
In Polyface.h
Decimates (in place) by collapsing each cluster of vertices to a single vertex.
PolyfaceHeader::LocalDecimation (double abstol, double rangeFractionTol)
A new function has been added to create a shared cell cell instance bypassing the current currTrans
void mdlSharedCell_directCreateInstanceEx (MSElementP pElement, DPoint3dCP pOrigin, void* pvAssociativeOrigin, bool originIsAssociative, RotMatrixCP pRMatrix, WCharCP pName, DgnPlatform::SCOverride* pOverride, UInt32* pFreezeGroup, DgnPlatform::ScanRange* pRange, short* pClass, DRange3dCP pRangeDiag, DgnPlatform::ElementId* pDefinitionId,DgnModelRefP modelRef,bool is3d)