---
name: "SbCylinderProjector"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SbCylinderProjector/3iv"
---

# SbCylinderProjector(3iv)

cylinder projector

## NAME

SbCylinderProjector — cylinder projector

## INHERITS FROM

SbProjector \> SbCylinderProjector

## SYNOPSIS

**#include \<Inventor/projectors/SbCylinderProjector.h\>**

Methods from class SbCylinderProjector:

	**~SbCylinderProjector()**\
 **SbVec3f**	**projectAndGetRotation(const SbVec2f &point, SbRotation &rot)**\
 **virtual SbRotation**	**getRotation(const SbVec3f &point1, const SbVec3f &point2)**\
 **void**	**setCylinder(const SbCylinder &cyl)**\
 **const SbCylinder &**	**getCylinder() const**\
 **void**	**setOrientToEye(SbBool orientToEye)**\
 **SbBool**	**isOrientToEye() const**\
 **void**	**setFront(SbBool isFront)**\
 **SbBool**	**isFront() const**\
 **SbBool**	**isPointInFront(const SbVec3f &point) const**

Methods from class SbProjector:

**virtual SbVec3f**	**project(const SbVec2f &point)**\
 **virtual void**	**setViewVolume(const SbViewVolume &vol)**\
 **const SbViewVolume &**	**getViewVolume() const**\
 **virtual void**	**setWorkingSpace(const SbMatrix &space)**\
 **const SbMatrix &**	**getWorkingSpace() const**\
 **virtual SbProjector \***	**copy() const**

## DESCRIPTION

**SbCylinderProjector** is an abstract base class for projectors that use a cylinder in their projection. The **getRotation()** method  for an SbCylinderProjector will always return a rotation that is about the axis of the cylinder. Cylinder projectors are typically used to write interactive 3D manipulators and viewers.

## METHODS

	**~SbCylinderProjector()**\
 Destructor.

**SbVec3f**	**projectAndGetRotation(const SbVec2f &point, SbRotation &rot)**\
 Apply the projector using the given point, returning the point in three dimensions that it projects to. This also returns in **rot** a rotation about the axis of the cylinder from the last projected point to this one. The passed **point** should be normalized (i.e. lie in the range \[0.0,1.0\]), with (0,0) at the lower-left.

**virtual SbRotation**	**getRotation(const SbVec3f &point1, const SbVec3f &point2)**\
 Get a rotation given two points on this cylinder projector. The rotation will be about the axis of the cylinder.

**void**	**setCylinder(const SbCylinder &cyl)**\
 **const SbCylinder &**	**getCylinder() const**\
 Set and get the cylinder on which to project points. The default cylinder is aligned with the Y axis and has radius 1.0.

**void**	**setOrientToEye(SbBool orientToEye)**\
 **SbBool**	**isOrientToEye() const**\
 Set and get whether the projector should always be oriented towards the eye. Set to FALSE if the tolerance should be evaluated in working space.

**void**	**setFront(SbBool isFront)**\
 **SbBool**	**isFront() const**\
 **SbBool**	**isPointInFront(const SbVec3f &point) const**\
 Set and get whether the projector should intersect the half of the cylinder that faces the eye. Set to FALSE if the projector should intersect with the rear half.

## SEE ALSO

**SbCylinderPlaneProjector, SbCylinderSectionProjector, SbCylinderSheetProjector, SbLineProjector, SbPlaneProjector, SbSpherePlaneProjector, SbSphereProjector, SbSphereSectionProjector, SbSphereSheetProjector**
