From ed9f5a1977d356e4f6c01ccbe89521e310273db3 Mon Sep 17 00:00:00 2001 From: aardgoose Date: Tue, 12 Nov 2024 09:27:54 +0000 Subject: [PATCH] Docs:: Add documentation for `ClippingGroup`. (#29833) * add docs * move ClippingGroup.js --------- Co-authored-by: aardgoose Co-authored-by: Michael Herzog --- docs/api/en/objects/ClippingGroup.html | 62 +++++++++++++++++++ docs/list.json | 1 + src/Three.WebGPU.Nodes.js | 1 + src/Three.WebGPU.js | 2 +- .../common => objects}/ClippingGroup.js | 4 +- 5 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 docs/api/en/objects/ClippingGroup.html rename src/{renderers/common => objects}/ClippingGroup.js (73%) diff --git a/docs/api/en/objects/ClippingGroup.html b/docs/api/en/objects/ClippingGroup.html new file mode 100644 index 00000000000000..28f4301d14ab9f --- /dev/null +++ b/docs/api/en/objects/ClippingGroup.html @@ -0,0 +1,62 @@ + + + + + + + + + + [page:Group] → + +

[name]

+ +

+ A special version of the Group object that defines clipping planes for decendant objects. + ClippingGroups can be nested, with clipping planes accumulating by type: intersection or union. +

+ +

Note: ClippingGroup is only supported with WebGPURenderer.

+ +

Constructor

+ +

[name]( )

+ +

Properties

+

See the base [page:Group] class for common properties.

+ +

[property:Boolean isClippingGroup]

+

Read-only flag to check if a given object is of type [name].

+ +

[property:Array clippingPlanes]

+

+ User-defined clipping planes specified as THREE.Plane objects in world + space. These planes apply to the objects that are children of this ClippingGroup. + Points in space whose signed distance to the plane is negative are clipped + (not rendered). See the [example:webgpu_clipping webgpu / clipping] example. Default is `[]`. +

+ +

[property:Boolean enabled]

+

Determines if the clipping planes defined by this object are applied. Default is `true`.

+ +

[property:Boolean clipIntersection]

+

+ Changes the behavior of clipping planes so that only their intersection is + clipped, rather than their union. Default is `false`. +

+ +

[property:Boolean clipShadows]

+

+ Defines whether to clip shadows according to the clipping planes specified + by this ClippingGroup. Default is `false`. +

+ +

Methods

+

See the base [page:Object3D] class for common methods.

+ +

Source

+

+ [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js] +

+ + diff --git a/docs/list.json b/docs/list.json index 81426149a26793..0a2569bce9d877 100644 --- a/docs/list.json +++ b/docs/list.json @@ -267,6 +267,7 @@ "Objects": { "BatchedMesh": "api/en/objects/BatchedMesh", "Bone": "api/en/objects/Bone", + "ClippingGroup": "api/en/objects/ClippingGroup", "Group": "api/en/objects/Group", "InstancedMesh": "api/en/objects/InstancedMesh", "Line": "api/en/objects/Line", diff --git a/src/Three.WebGPU.Nodes.js b/src/Three.WebGPU.Nodes.js index 54452ff62c104c..9b970510f29f9c 100644 --- a/src/Three.WebGPU.Nodes.js +++ b/src/Three.WebGPU.Nodes.js @@ -17,5 +17,6 @@ export { default as IESSpotLight } from './lights/webgpu/IESSpotLight.js'; export { default as NodeLoader } from './loaders/nodes/NodeLoader.js'; export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js'; export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js'; +export { ClippingGroup } from './objects/ClippingGroup.js'; export * from './nodes/Nodes.js'; export * from './nodes/TSL.js'; diff --git a/src/Three.WebGPU.js b/src/Three.WebGPU.js index 43c30b851f0d19..b2bcb928a397fb 100644 --- a/src/Three.WebGPU.js +++ b/src/Three.WebGPU.js @@ -2,7 +2,6 @@ export * from './Three.core.js'; export * from './materials/nodes/NodeMaterials.js'; export { default as WebGPURenderer } from './renderers/webgpu/WebGPURenderer.js'; -export { default as ClippingGroup } from './renderers/common/ClippingGroup.js'; export { default as Lighting } from './renderers/common/Lighting.js'; export { default as BundleGroup } from './renderers/common/BundleGroup.js'; export { default as QuadMesh } from './renderers/common/QuadMesh.js'; @@ -18,5 +17,6 @@ export { default as IESSpotLight } from './lights/webgpu/IESSpotLight.js'; export { default as NodeLoader } from './loaders/nodes/NodeLoader.js'; export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js'; export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js'; +export { ClippingGroup } from './objects/ClippingGroup.js'; export * from './nodes/Nodes.js'; export * from './nodes/TSL.js'; diff --git a/src/renderers/common/ClippingGroup.js b/src/objects/ClippingGroup.js similarity index 73% rename from src/renderers/common/ClippingGroup.js rename to src/objects/ClippingGroup.js index a54dc1195f07bf..c5db020386eb60 100644 --- a/src/renderers/common/ClippingGroup.js +++ b/src/objects/ClippingGroup.js @@ -1,4 +1,4 @@ -import { Group } from '../../objects/Group.js'; +import { Group } from './Group.js'; class ClippingGroup extends Group { @@ -16,4 +16,4 @@ class ClippingGroup extends Group { } -export default ClippingGroup; +export { ClippingGroup };