10.04.00.46


Update 4 10.04 Builds

Overview

MicroStation CONNECT Update 4 10.04.00.XX Builds

The following methods/functions have been added to this release of the SDK

Rendering

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

Solid Modelling

Utility function added

In Psolidcoreapi.h

SolidUtil::GetFacetCountApproximation ( Bentley::ISolidKernelEntityCR solidEntity, Bentley::IFacetOptionsR facetOptions )

Detailing Symbol

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 )

Named Boundary

In NamedBoundary.h

Added an option to ignore the margin that is added to named boundary range while creating saved view

NamedBoundary::SetIgnoreMarginForViewSync (bool)

Dimension Style

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)

Geometry

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)

Cells

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)