Creating a local clipping plane

clipPlane.py


# Create sphere and move it up
sphere = createSphere(3, 500, 1, 1,1)
setTransformNodeTranslation(sphere, 0,0,500, true)

# Create local clip plane
nodeType = "ClipPlane"
clipPlane = createNode(nodeType)
setTransformNodeTranslation(clipPlane, 0,0,500, true)

# Add sphere as child of clip plane. All children are clipped by the plane.
clippedObjects = [sphere]
addChilds(clipPlane, clippedObjects)

# Function to activate and deactivate the clip plane
def toggleClipPlane():
    if clipPlane.isValid():
        # The clip plane's boolean field "on" stores whether clipping is enabled.
        # Use vrFieldAccess to get and set the current state.
        isLocalClipPlaneEnabled = clipPlane.fields().getBool("on")
        clipPlane.fields().setBool("on", not isLocalClipPlaneEnabled)

# Connect toggle to key 'c'
keyC = vrKey(Key_C)
keyC.connect(toggleClipPlane)

print("Press key 'c' to toggle the clip plane.")