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

# SbSphereSectionProjector(3)

The SbSphereSectionProjector projects 2D points to a sliced sphere.

## NAME

SbSphereSectionProjector - The **SbSphereSectionProjector** projects 2D points to a sliced sphere.

## SYNOPSIS

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

Inherits **SbSphereProjector**.

Inherited by **SbSpherePlaneProjector**.

### Public Member Functions

**SbSphereSectionProjector** (const float edgetol=0.9f, const SbBool orienttoeye=TRUE)\
 **SbSphereSectionProjector** (const **SbSphere** &sph, const float edgetol=0.9f, const SbBool orienttoeye=TRUE)\
 virtual **SbProjector** \* **copy** (void) const\
 virtual **SbVec3f** **project** (const **SbVec2f** &point)\
 virtual **SbRotation** **getRotation** (const **SbVec3f** &point1, const **SbVec3f** &point2)\
 void **setTolerance** (const float edgetol)\
 float **getTolerance** (void) const\
 void **setRadialFactor** (const float rad=0.0f)\
 float **getRadialFactor** (void) const\
 SbBool **isWithinTolerance** (const **SbVec3f** &point)\

Public Member Functions inherited from **SbSphereProjector** **SbVec3f** **projectAndGetRotation** (const **SbVec2f** &point, **SbRotation** &rot)\
 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 void **setViewVolume** (const **SbViewVolume** &vol)\
 const **SbViewVolume** & **getViewVolume** (void) const\
 const **SbMatrix** & **getWorkingSpace** (void) const\
 virtual SbBool **tryProject** (const **SbVec2f** &point, const float epsilon, **SbVec3f** &result)\

### Protected Member Functions

virtual void **setupTolerance** (void)\

Protected Member Functions inherited from **SbSphereProjector** **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

float **tolerance**\
 float **tolDist**\
 float **radialFactor**\
 **SbVec3f** **planePoint**\
 **SbVec3f** **planeDir**\
 float **planeDist**\
 **SbPlane** **tolPlane**\

Protected Attributes inherited from **SbSphereProjector** SbBool **intersectFront**\
 **SbSphere** **sphere**\
 SbBool **orientToEye**\
 SbBool **needSetup**\
 **SbVec3f** **lastPoint**\

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

## Detailed Description

The **SbSphereSectionProjector** projects 2D points to a sliced sphere.

The projection sphere for this class is sliced by a clipping plane. Projections will be mapped to the remaining sphere part.

**See also**

**SbCylinderSectionProjector**

## Constructor & Destructor Documentation

### SbSphereSectionProjector::SbSphereSectionProjector (const float edgetol = 0.9f, const SbBool orienttoeye = TRUE)

Default constructor. See **SbSphereProjector::SbSphereProjector()**.

The *edgetol* value should be within \<0, 1\], and specifies how much of the sphere is used as a projection surface. 1.0 means the full front half is used.

### SbSphereSectionProjector::SbSphereSectionProjector (const SbSphere & sph, const float edgetol = 0.9f, const SbBool orienttoeye = TRUE)

Constructor with explicit setting of the projection sphere.

## Member Function Documentation

### SbProjector \* SbSphereSectionProjector::copy (void ) const \[virtual\]

Construct and return a copy of this projector. The caller is responsible for destructing the new instance.

**Note that if the Coin library has been built as a DLL under Microsoft Windows and you use this method from application code, you** *must* **make sure that both the Coin DLL and the application executable are using the same instance of a C Run-Time (CRT) library. Otherwise, you** *will* **get memory heap corruption upon deallocating the returned instances, eventually leading to mysterious crashes.**\

*Implements* **SbProjector***.*

*Reimplemented in* **SbSpherePlaneProjector***.*

### SbVec3f SbSphereSectionProjector::project (const SbVec2f & point) \[virtual\]

*Project the 2D point from normalized viewport coordinates to a 3D point. The mapping will be done in accordance with the type of the projector.*

*Implements* **SbProjector***.*

*Reimplemented in* **SbSpherePlaneProjector***.*

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

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

*Implements* **SbSphereProjector***.*

*Reimplemented in* **SbSpherePlaneProjector***.*

### void SbSphereSectionProjector::setTolerance (const float edgetol)

*The edgetol value decides how much of the surface of the sphere is used for projection. 1.0 means the full sphere half is used.*

### float SbSphereSectionProjector::getTolerance (void ) const

*Returns edge tolerance for the sphere half.*

### void SbSphereSectionProjector::setRadialFactor (const float rad = 0.0f)

*Set up the controlling value for how the rotation calculation will be done "outside" the sphere.*

*A radialFactor equal to 0.0 will make the rotations be done like if they were done by dragging the sphere, while a value of 1.0 will make the rotation be around the axis from the viewpoint towards the sphere.*

### float SbSphereSectionProjector::getRadialFactor (void ) const

*Returns value of radialFactor.*

**See also**

**setRadialFactor()**

### SbBool SbSphereSectionProjector::isWithinTolerance (const SbVec3f & point)

*Check if point is within the part of the sphere used for projections.*

### void SbSphereSectionProjector::setupTolerance (void ) \[protected\], \[virtual\]

*Recalculate the internal projection surface settings. Needs to be done if any of the parameters influencing the projection surface have been changed from subclasses without using the access methods.*

## Member Data Documentation

### float SbSphereSectionProjector::tolerance \[protected\]

*Tolerance value, deciding how much of the half-sphere to do projections against.*

### float SbSphereSectionProjector::tolDist \[protected\]

*Tolerance value multiplied with the sphere radius.*

### float SbSphereSectionProjector::radialFactor \[protected\]

*The radial factor value decides how to calculate rotations outside of the sphere.*

**See also**

**setRadialFactor()**

### SbVec3f SbSphereSectionProjector::planePoint \[protected\]

*A point in the plane where the center of the sphere is located.*

### SbVec3f SbSphereSectionProjector::planeDir \[protected\]

*Direction of cutting plane.*

### float SbSphereSectionProjector::planeDist \[protected\]

*Distance from plane to sphere center.*

### SbPlane SbSphereSectionProjector::tolPlane \[protected\]

*Defines the plane cutting the sphere into a projection part.*

## Author

*Generated automatically by Doxygen for Coin from the source code.*
