---
name: "SbCylinder"
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/SbCylinder"
---

# SbCylinder(3)

The SbCylinder class is a representation of a cylinder.

## NAME

SbCylinder - The **SbCylinder** class is a representation of a cylinder.

## SYNOPSIS

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

### Public Member Functions

**SbCylinder** (void)\
 **SbCylinder** (const **SbLine** &a, const float r)\
 void **setValue** (const **SbLine** &a, const float r)\
 void **setAxis** (const **SbLine** &a)\
 void **setRadius** (const float r)\
 const **SbLine** & **getAxis** (void) const\
 float **getRadius** (void) const\
 SbBool **intersect** (const **SbLine** &l, **SbVec3f** &intersection) const\
 SbBool **intersect** (const **SbLine** &l, **SbVec3f** &enter, **SbVec3f** &exit) const\
 void **print** (FILE \*file) const\

## Detailed Description

The **SbCylinder** class is a representation of a cylinder.

This class is used within other classes in Coin. It contains data to represent a cylinder by an axis and a radius. The cylinder has no length/height value, which means it is treated as of infinite length.

**See also**

**SbLine**, **SbSphere**

## Constructor & Destructor Documentation

### SbCylinder::SbCylinder (void )

The default constructor will make a cylinder of radius 1, center axis going through origo in the parallel direction of the positive y-axis.

### SbCylinder::SbCylinder (const SbLine & a, const float r)

Construct and initialize an **SbCylinder** instance with the given axis *a* and radius *r*.

## Member Function Documentation

### void SbCylinder::setValue (const SbLine & a, const float r)

Set the axis and radius of the cylinder.

**See also**

**getAxis()**, **getRadius()**.

### void SbCylinder::setAxis (const SbLine & a)

Set the center axis of the cylinder.

**See also**

**setRadius()**, **getAxis()**.

### void SbCylinder::setRadius (const float r)

Set the radius of the cylinder.

**See also**

**setAxis()**, **getRadius()**.

### const SbLine & SbCylinder::getAxis (void ) const

Return the line which is the center axis of the cylinder.

**See also**

**setAxis()**, **getRadius()**.

### float SbCylinder::getRadius (void ) const

Return radius of cylinder.

**See also**

**setRadius()**, **getAxis()**.

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

Finds the intersection point of the ray *l* on the cylinder where the ray enters, and return this point in *intersection*.

If the ray does not intersect the cylinder, *FALSE* is returned, otherwise we will return *TRUE*.

### SbBool SbCylinder::intersect (const SbLine & l, SbVec3f & enter, SbVec3f & exit) const

Find the intersection points of the ray *l* on the cylinder and return these in *enter* and *exit*. If the ray just "grazes" the cylinder, the *enter* and *exit* points have equal values.

If the ray does not intersect the cylinder, *FALSE* is returned, otherwise we will return *TRUE*.

### void SbCylinder::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.

## Author

Generated automatically by Doxygen for Coin from the source code.
