![]() |
http://www.sim.no http://www.coin3d.org |
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. More...
#include <Inventor/projectors/SbSphereProjector.h>
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) |
![]() | |
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 |
Protected Member Functions | |
SbSphereProjector (const SbBool orienttoeye) | |
SbSphereProjector (const SbSphere &s, const SbBool orienttoeye) | |
SbBool | intersectSphereFront (const SbLine &l, SbVec3f &result) |
![]() | |
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 |
![]() | |
SbViewVolume | viewVol |
SbMatrix | worldToWorking |
SbMatrix | workingToWorld |
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.
|
protected |
Default constructor sets up a sphere at the origin with radius 1.
|
protected |
Constructor taking an explicit sphere projection definition.
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.
References getRotation(), lastPoint, and SbProjector::project().
|
pure virtual |
Returns rotation on the projection surface which re-orients point1 to point2.
Implemented in SbSphereSectionProjector, SbSpherePlaneProjector, and SbSphereSheetProjector.
Referenced by SoVRMLSphereSensor::drag(), SoRotateSphericalDragger::drag(), and projectAndGetRotation().
void SbSphereProjector::setSphere | ( | const SbSphere & | sph | ) |
Set sphere to project onto.
References needSetup, and sphere.
Referenced by SoVRMLSphereSensor::dragStart(), SoRotateSphericalDragger::dragStart(), and SoTransformerDragger::dragStart().
const SbSphere & SbSphereProjector::getSphere | ( | void | ) | const |
Returns projection sphere.
References 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
.
References needSetup, and orientToEye.
SbBool SbSphereProjector::isOrientToEye | ( | void | ) | const |
Returns the state of the sphere orientation flag.
References orientToEye.
Referenced by SbSphereSheetProjector::project().
void SbSphereProjector::setFront | ( | const SbBool | infront | ) |
Set whether to intersect with the outside of the sphere (infront equal to TRUE
), or the inside.
References intersectFront, and needSetup.
Referenced by SoRotateSphericalDragger::dragStart(), and SoTransformerDragger::dragStart().
SbBool SbSphereProjector::isFront | ( | void | ) | const |
Returns value of the flag which decides whether to intersect with the outside or inside of the sphere.
References intersectFront.
Referenced by intersectSphereFront().
SbBool SbSphereProjector::isPointInFront | ( | const SbVec3f & | point | ) | const |
Check if point is on the frontside or the backside of the cylinder.
References SbVec3f::dot(), SbSphere::getCenter(), SbViewVolume::getProjectionPoint(), SbViewVolume::getProjectionType(), SbProjector::getViewVolume(), SbMatrix::multDirMatrix(), SbMatrix::multVecMatrix(), SbViewVolume::PERSPECTIVE, sphere, SbProjector::worldToWorking, and SbViewVolume::zVector().
Referenced by SoRotateSphericalDragger::dragStart(), and SoTransformerDragger::dragStart().
|
virtual |
Sets the matrix used for converting from the projector's coordinate system to the world coordinate system.
Reimplemented from SbProjector.
References needSetup, and SbProjector::setWorkingSpace().
Referenced by SoVRMLSphereSensor::drag(), SoRotateSphericalDragger::drag(), SoVRMLSphereSensor::dragStart(), SoRotateSphericalDragger::dragStart(), and SoTransformerDragger::dragStart().
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.
References SbSphere::intersect(), isFront(), and sphere.
Referenced by SbSphereSheetProjector::project(), SbSpherePlaneProjector::project(), and SbSphereSectionProjector::project().
|
protected |
Flag which says whether or not we should map to the outside or inside of the sphere surface.
Referenced by isFront(), SbSphereSheetProjector::project(), setFront(), SbSphereSheetProjector::setupPlane(), and SbSphereSectionProjector::setupTolerance().
|
protected |
Projection sphere.
Referenced by SbSphereSectionProjector::getRotation(), SbSpherePlaneProjector::getRotation(), getSphere(), intersectSphereFront(), isPointInFront(), SbSphereSheetProjector::project(), SbSphereSectionProjector::project(), setSphere(), SbSphereSheetProjector::setupPlane(), and SbSphereSectionProjector::setupTolerance().
|
protected |
Which direction the spherical surface is oriented.
Referenced by isOrientToEye(), setOrientToEye(), SbSphereSheetProjector::setupPlane(), and SbSphereSectionProjector::setupTolerance().
|
protected |
Set to TRUE
whenever the projection surface needs to be recalculated according to the setting of the SbSphereProjector::orientToEye flag.
Referenced by SbSphereSheetProjector::getRotation(), SbSphereSectionProjector::isWithinTolerance(), SbSphereSheetProjector::project(), SbSpherePlaneProjector::project(), SbSphereSectionProjector::project(), setFront(), setOrientToEye(), setSphere(), SbSphereSectionProjector::setTolerance(), SbSphereSheetProjector::setupPlane(), SbSphereSectionProjector::setupTolerance(), and setWorkingSpace().
|
protected |
Stores the previously projected 3D point.
Referenced by SbSphereSheetProjector::project(), SbSpherePlaneProjector::project(), SbSphereSectionProjector::project(), and projectAndGetRotation().
Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.
Generated on Fri Jul 20 2018 for Coin by Doxygen. 1.8.14