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

# SbSphereProjector(3)

The SbSphereProjector class is the abstract base class for mapping to spherical surfaces.

## NAME

SbSphereProjector - The **SbSphereProjector** class is the abstract base class for mapping to spherical surfaces.

## SYNOPSIS

\#include \<Inventor/projectors/SbSphereProjector.h\>

Inherits **SbProjector**.

Inherited by **SbSphereSectionProjector**, and **SbSphereSheetProjector**.

### Public Member Functions

**SbVec3f** **projectAndGetRotation** (const **SbVec2f** &point, **SbRotation** &rot)\
 virtual **SbRotation** **getRotation** (const **SbVec3f** &point1, const **SbVec3f** &point2)=0\
 void **setSphere** (const **SbSphere** &sph)\
 const **SbSphere** & **getSphere** (void) const\
 void **setOrientToEye** (const SbBool orienttoeye)\
 SbBool **isOrientToEye** (void) const\
 void **setFront** (const SbBool infront)\
 SbBool **isFront** (void) const\
 SbBool **isPointInFront** (const **SbVec3f** &point) const\
 virtual void **setWorkingSpace** (const **SbMatrix** &space)\

Public Member Functions inherited from **SbProjector** virtual **SbVec3f** **project** (const **SbVec2f** &point)=0\
 virtual void **setViewVolume** (const **SbViewVolume** &vol)\
 const **SbViewVolume** & **getViewVolume** (void) const\
 const **SbMatrix** & **getWorkingSpace** (void) const\
 virtual **SbProjector** \* **copy** (void) const =0\
 virtual SbBool **tryProject** (const **SbVec2f** &point, const float epsilon, **SbVec3f** &result)\

### Protected Member Functions

**SbSphereProjector** (const SbBool orienttoeye)\
 **SbSphereProjector** (const **SbSphere** &s, const SbBool orienttoeye)\
 SbBool **intersectSphereFront** (const **SbLine** &l, **SbVec3f** &result)\

Protected Member Functions inherited from **SbProjector** **SbProjector** (void)\
 virtual **~SbProjector** ()\
 **SbLine** **getWorkingLine** (const **SbVec2f** &point) const\
 float **findVanishingDistance** (void) const\
 SbBool **verifyProjection** (const **SbVec3f** &projpt) const\

### Protected Attributes

SbBool **intersectFront**\
 **SbSphere** **sphere**\
 SbBool **orientToEye**\
 SbBool **needSetup**\
 **SbVec3f** **lastPoint**\

Protected Attributes inherited from **SbProjector** **SbViewVolume** **viewVol**\
 **SbMatrix** **worldToWorking**\
 **SbMatrix** **workingToWorld**\

## Detailed Description

The **SbSphereProjector** class is the abstract base class for mapping to spherical surfaces.

The sphere projectors map 2D points to various surface types based on spherical shapes.

**See also**

**SbCylinderProjector**

## Constructor & Destructor Documentation

### SbSphereProjector::SbSphereProjector (const SbBool orienttoeye) \[protected\]

Default constructor sets up a sphere at the origin with radius 1.

### SbSphereProjector::SbSphereProjector (const SbSphere & s, const SbBool orienttoeye) \[protected\]

Constructor taking an explicit *sphere* projection definition.

## Member Function Documentation

### SbVec3f SbSphereProjector::projectAndGetRotation (const SbVec2f & point, SbRotation & rot)

Project the 2D point to a 3D coordinate on the spherical surface, and find the rotation from the last projection to this one.

**See also**

**project()**, **getRotation()**

### virtual SbRotation SbSphereProjector::getRotation (const SbVec3f & point1, const SbVec3f & point2) \[pure virtual\]

Returns rotation on the projection surface which reorients *point1* to *point2*.

Implemented in **SbSpherePlaneProjector**, **SbSphereSectionProjector**, and **SbSphereSheetProjector**.

### void SbSphereProjector::setSphere (const SbSphere & sph)

Set *sphere* to project onto.

### const SbSphere & SbSphereProjector::getSphere (void ) const

Returns projection sphere.

### void SbSphereProjector::setOrientToEye (const SbBool orienttoeye)

Sets whether or not the projection surface should be oriented towards the eye of the viewer. Default is TRUE.

### SbBool SbSphereProjector::isOrientToEye (void ) const

Returns the state of the sphere orientation flag.

### void SbSphereProjector::setFront (const SbBool infront)

Set whether to intersect with the outside of the sphere (*infront* equal to TRUE), or the inside.

### SbBool SbSphereProjector::isFront (void ) const

Returns value of the flag which decides whether to intersect with the outside or inside of the sphere.

### SbBool SbSphereProjector::isPointInFront (const SbVec3f & point) const

Check if *point* is on the front side or the back side of the cylinder.

### void SbSphereProjector::setWorkingSpace (const SbMatrix & space) \[virtual\]

Sets the matrix used for converting from the projector's coordinate system to the world coordinate system.

Reimplemented from **SbProjector**.

### SbBool SbSphereProjector::intersectSphereFront (const SbLine & l, SbVec3f & result) \[protected\]

Intersect *line* with the **SbSphereProjector::sphere** and place the intersection point (if any) in *result*. Considers **setFront()** settings.

Returns TRUE if *line* actually hits the sphere, FALSE if it doesn't intersect with it.

## Member Data Documentation

### SbBool SbSphereProjector::intersectFront \[protected\]

Flag which says whether or not we should map to the outside or inside of the sphere surface.

### SbSphere SbSphereProjector::sphere \[protected\]

Projection sphere.

### SbBool SbSphereProjector::orientToEye \[protected\]

Which direction the spherical surface is oriented.

### SbBool SbSphereProjector::needSetup \[protected\]

Set to TRUE whenever the projection surface needs to be recalculated according to the setting of the **SbSphereProjector::orientToEye** flag.

### SbVec3f SbSphereProjector::lastPoint \[protected\]

Stores the previously projected 3D point.

## Author

Generated automatically by Doxygen for Coin from the source code.
