Click or drag to resize
AB4D logo

PlaneSliceModelVisual3D(ModelVisual3D, ModelVisual3D, ModelVisual3D) Method

Slices the 3D models defined by ModelVisual3D with this Plane and creates two new ModelVisual3D objects: one with models that are in front of the plane (in the direction of plane's Normal vector) and one with models in the back of the plane. The models that are fully in front (or in back) of the Plane are not changed (the same instances are used). The models that intersect the Plane are sliced and new models are created from them.

Namespace: Ab3d.Utilities
Assembly: Ab3d.PowerToys (in Ab3d.PowerToys.dll) Version: 11.1.8864.1045
Syntax
C#
public void SliceModelVisual3D(
	ModelVisual3D modelVisual3D,
	out ModelVisual3D frontModelVisual3D,
	out ModelVisual3D backModelVisual3D
)

Parameters

modelVisual3D  ModelVisual3D
ModelVisual3D
frontModelVisual3D  ModelVisual3D
Out parameters as ModelVisual3D for front models
backModelVisual3D  ModelVisual3D
Out parameters as ModelVisual3D for back models
Remarks

SliceModelVisual3D slices the 3D models defined by ModelVisual3D with this Plane and creates two new ModelVisual3D objects: one with models that are in front of the plane (in the direction of plane's Normal vector) and one with models in the back of the plane. The models that are fully in front (or in back) of the Plane are not changed (the same instances are used). The models that intersect the Plane are sliced and new models are created from them.

Note for using with textured objects: SliceModelVisual3D correctly calculates sliced TextureCoordinates, but to show the texture correctly, the ViewportUnits on ImageBrush needs to be set to BrushMappingMode.Absolute. It should not be set to BrushMappingMode.RelativeToBoundingBox (a default value in WPF). In case of RelativeToBoundingBox, both sliced parts of the 3D model will still show the whole texture).

See Also