---
name: "SbPlane"
section: "3"
platform: "linux"
package: "coin"
version: "1:4.0.10-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SbPlane"
---

# SbPlane(3)

The SbPlane class represents a plane in 3D space.

## NAME

SbPlane - The **SbPlane** class represents a plane in 3D space.

## SYNOPSIS

\#include \<Inventor/SbLinear.h\>

### Public Member Functions

**SbPlane** (void)\
 **SbPlane** (const **SbVec3f** &normal, const float D)\
 **SbPlane** (const **SbVec3f** &p0, const **SbVec3f** &p1, const **SbVec3f** &p2)\
 **SbPlane** (const **SbVec3f** &normal, const **SbVec3f** &point)\
 void **offset** (const float d)\
 SbBool **intersect** (const **SbLine** &l, **SbVec3f** &intersection) const\
 void **transform** (const **SbMatrix** &matrix)\
 SbBool **isInHalfSpace** (const **SbVec3f** &point) const\
 float **getDistance** (const **SbVec3f** &point) const\
 const **SbVec3f** & **getNormal** (void) const\
 float **getDistanceFromOrigin** (void) const\
 void **print** (FILE \*file) const\
 SbBool **intersect** (const **SbPlane** &pl, **SbLine** &line) const\

## Detailed Description

The **SbPlane** class represents a plane in 3D space.

**SbPlane** is used by many other classes in Coin. It provides a way of representing a plane, specified by a plane normal vector and a distance from the origin of the coordinate system.

## Constructor & Destructor Documentation

### SbPlane::SbPlane (void )

An **SbPlane** instantiated with the default constructor will be uninitialized.

### SbPlane::SbPlane (const SbVec3f & normalref, const float D)

Construct an **SbPlane** instance with a normal pointing in the given direction and the given shortest distance from the origin of the coordinate system to a point in the plane.

*normal* must not be a null vector.

### SbPlane::SbPlane (const SbVec3f & p0, const SbVec3f & p1, const SbVec3f & p2)

Construct an **SbPlane** with three points laying in the plane. Make sure *p0*, *p1* and *p2* are actually three distinct points, not on a line, when using this constructor.

### SbPlane::SbPlane (const SbVec3f & normalref, const SbVec3f & point)

Construct an **SbPlane** from a normal and a point laying in the plane.

*normal* must not be a null vector.

## Member Function Documentation

### void SbPlane::offset (const float d)

Add the given offset *d* to the plane distance from the origin.

### SbBool SbPlane::intersect (const SbLine & l, SbVec3f & intersection) const

Find the point on given line *l* intersecting the plane and return it in *intersection*. If the line is parallel to the plane, we return FALSE, otherwise TRUE.

Do not pass an invalid line for the *l* parameter (i.e. with a null direction vector).

### void SbPlane::transform (const SbMatrix & matrix)

Transform the plane by *matrix*.

**See also**

**offset()**

### SbBool SbPlane::isInHalfSpace (const SbVec3f & point) const

Check if the given point lies in the halfspace of the plane which the plane normal vector is pointing.

### float SbPlane::getDistance (const SbVec3f & point) const

Return the distance from *point* to plane. Positive distance means the point is in the plane's halfspace.

This method is an extension specific to Coin versus the original SGI Inventor API.

### const SbVec3f & SbPlane::getNormal (void ) const

Return the plane's normal vector, which indicates which direction the plane is oriented.

**See also**

**getDistanceFromOrigin()**.

### float SbPlane::getDistanceFromOrigin (void ) const

Return distance from origin of coordinate system to the point in the plane which is closest to the origin.

**See also**

**getNormal()**.

### void SbPlane::print (FILE \* fp) const

Dump the state of this object to the *fp* file stream. Only works in debug version of library, method does nothing in an optimized build.

### SbBool SbPlane::intersect (const SbPlane & pl, SbLine & line) const

Intersect this plane with *pl*, and return the resulting line in *line*. Returns TRUE if an intersection line can be found, and FALSE if the planes are parallel.

Please note that the resulting **SbLine** must be considered as a *line* intersecting the **SbLine**'s origin, extending infinitely in both directions.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.\

**Since**

Coin 2.0

## Author

Generated automatically by Doxygen for Coin from the source code.
