The following methods/functions have been added to this release of the SDK
With a license you can now use the clash detection API in MicroStation.
This is valid if user has the entitlement license for Clash Detection module else null
static ClashDetectorPtr CreateClashDetector(ViewportR viewPort);
Add geometry to the clash detector
IClashDataP CollectGeometry ( DisplayPath const& displayPath, ClashCollectStatus* status = NULL, double offset = 0);
Add geometry to the clash detector
IClashDataP CollectGeometry ( ElementHandleCR elemHandle, ClashCollectStatus* status = NULL, double offset = 0 );
Delete all geometry added to the clash detector
void Clear ();
Calculate the closest approach between two pieces of geometry
ClashStatus ComputeClosestApproach (double& outClearance, IClashDataCP object1, IClashDataCP object2, double maxClearance);
Calculate the closest distance to a point and an object
ClashStatus ComputeClosestApproachToPosition (double& outClearance, IClashDataCP object1, DPoint3dCR positionUOR, double maxClearance);
Microstation U13 support PBR Materials below is the API to create and Query a PBR Material. These methods are on MaterialSettings.h
Get if this material is a PBR Material
DGNPLATFORM_EXPORT bool MaterialSettings::IsPBRMaterial () const;
Set if this material is a PBR Material
DGNPLATFORM_EXPORT void MaterialSettings::SetIsPBRMaterial (bool isPBRMaterial);
Get the property for the surface being metallic or dialectic, Rusty surfaces is where this value would be in between 0 & 1
DGNPLATFORM_EXPORT double MaterialSettings::GetPBRMetalInsulatorRatio() const;
Set the property for the surface being metallic or dialectic, Rusty surfaces is where this value would be in between 0 & 1
DGNPLATFORM_EXPORT void MaterialSettings::SetPBRMetalInsulatorRatio(double ratio);
Defines the amount of incoming light that is scattered in all directions equally.
DGNPLATFORM_EXPORT double MaterialSettings::GetPBRRoughness() const;
Set the surface roughness
DGNPLATFORM_EXPORT void MaterialSettings::SetPBRRoughness(double roughness);
Set the scale factor affecting the appearance of the height map
DGNPLATFORM_EXPORT void MaterialSettings::SetPBRHeightMapScale (double scaleFactor);
Defines the scale factor affecting the appearance of the height map
DGNPLATFORM_EXPORT double MaterialSettings::GetPBRHeightMapScale() const;
Set the scale factor affecting the appearance of the Normal map
DGNPLATFORM_EXPORT void MaterialSettings::SetPBRNormalMapScale (double scaleFactor);
Defines the scale factor affecting the appearance of the Normal map
DGNPLATFORM_EXPORT double MaterialSettings::GetPBRNormalMapScale() const;
Set the scale factor affecting the appearance of the Ambient Occlusion map code{.unparsed}
DGNPLATFORM_EXPORT void MaterialSettings::SetPBRAmbientOcclusionMapScale (double scaleFactor);
Defines the scale factor affecting the appearance of the Ambient Occlusion map
DGNPLATFORM_EXPORT double MaterialSettings::GetPBRAmbientOcclusionMapScale() const;
Get the PBR emissive color for the material
DGNPLATFORM_EXPORT RgbFactor const& MaterialSettings::GetPBREmissiveColor () const;
Get the PBR emissive color for the material
RgbFactor& MaterialSettings::GetPBREmissiveColorR ();
Set the PBR emissive color for the material
void MaterialSettings::SetPBREmissiveColor (double red, double green, double blue);
There is also a class which can be used if only PBR parameters are required.
If the material is a PBR material get an object encapsulating the pbr settings. If the material is not a PBR material the RefCounted pointer is null
PBRMaterialSettingsPtr MaterialManager::GetPBRSettingsR ();
If the material is a PBR material get an object encapsulating the pbr settings. If the material is not a PBR material the RefCounted pointer is null
PBRMaterialSettingsConstPtr MaterialManager::GetPBRSettings () const;
Get the material these settings are for
MaterialCR PBRMaterialSettings::GetMaterial() const;
Get the material these settings are for
MaterialR PBRMaterialSettings::GetMaterialR();
Get the collection of maps
MaterialMapCollectionCR PBRMaterialSettings::GetMaps() const;
Get the collection of maps
MaterialMapCollectionR PBRMaterialSettings::GetMapsR();
Get if the material has a fixed base color or if it derives its color from the element color
bool PBRMaterialSettings::HasBaseColor() const;
Set if the material has a fixed base color or if it derives its color from the element color
void PBRMaterialSettings::SetHasBaseColor(bool hasBaseColor);
Get the base (diffuse color) for the material
RgbFactor const& PBRMaterialSettings::GetBaseColor() const;
Get the base (diffuse color) for the material
RgbFactor& PBRMaterialSettings::GetBaseColorR();
Set the base (diffuse color) for the material
void PBRMaterialSettings::SetBaseColor(double red, double green, double blue);
Defines the amount of light which is spectacularly passed through the material. Can vary from 0 (None) to 1 (Full)
double PBRMaterialSettings::GetTransmitIntensity() const;
Set the transmit intensity @see GetTransmitIntensity ()
void PBRMaterialSettings::SetTransmitIntensity(double intensity);
Get the property for the surface being metallic or dialectic, Rusty surfaces is where this value would be in between 0 & 1
double PBRMaterialSettings::GetMetalInsulatorRatio() const;
Set the property for the surface being metallic or dialectric, Rusty surfaces is where this value would be in between 0 & 1
void PBRMaterialSettings::SetMetalInsulatorRatio(double ratio);
Defines the amount of incoming light that is scattered in all directions equally.
double PBRMaterialSettings::GetRoughness() const;
Set the surface roughness
void PBRMaterialSettings::SetRoughness(double roughness);
Set the scale factor affecting the appearance of the Normal map
void PBRMaterialSettings::SetHeightMapScale (double scaleFactor);
Defines the scale factor affecting the appearance of the height map
double PBRMaterialSettings::GetHeightMapScale() const;
Set the scale factor affecting the appearance of the Normal map
void PBRMaterialSettings::SetNormalMapScale (double scaleFactor);
Defines the scale factor affecting the appearance of the Normal map
double PBRMaterialSettings::GetNormalMapScale() const;
Set the scale factor affecting the appearance of the Ambient Occlusion map
void PBRMaterialSettings::SetAmbientOcclusionMapScale (double scaleFactor);
Defines the scale factor affecting the appearance of the Ambient Occlusion map
double PBRMaterialSettings::GetAmbientOcclusionMapScale() const;
Get the PBR emissive color for the material
RgbFactor const& PBRMaterialSettings::GetEmissiveColor () const;
Get the PBR emissive color for the material
RgbFactor& PBRMaterialSettings::GetEmissiveColorR ();
Set the PBR emissive color for the material
void PBRMaterialSettings::SetEmissiveColor (double red, double green, double blue);
This is the refractive index of the material. It controls how light changes direction as it passes through a transparent object.
double PBRMaterialSettings::GetRefractIndex() const;
Set the refractive index of the material
Remove all values from this PickList
PickList.RemoveAllValues()