Click or drag to resize
AB4D logo

PlaneSliceModel3DGroup(Model3DGroup, Transform3D, Model3DGroup, Model3DGroup) Method

Slices the 3D models defined by Model3DGroup with this Plane and creates two new Model3DGroup 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 SliceModel3DGroup(
	Model3DGroup model3DGroup,
	Transform3D parentTransform,
	out Model3DGroup frontModel3DGroup,
	out Model3DGroup backModel3DGroup
)

Parameters

model3DGroup  Model3DGroup
Model3DGroup
parentTransform  Transform3D
Transform3D that is added to the model3DGroup (null by default)
frontModel3DGroup  Model3DGroup
Out parameters as Model3DGroup for front models
backModel3DGroup  Model3DGroup
Out parameters as Model3DGroup for back models
Remarks

SliceModel3DGroup slices the 3D models defined by Model3DGroup with this Plane and creates two new Model3DGroup 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: SliceModel3DGroup 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