Coin Logo http://www.sim.no
http://www.coin3d.org

SbCylinder Class Reference
[Base classes]

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. More...

#include <Inventor/SbLinear.h>

List of all members.

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 SbLinegetAxis (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.

References setValue().

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

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

References setValue().


Member Function Documentation

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

Set the axis and radius of the cylinder.

See also:
getAxis(), getRadius().

References setAxis(), and setRadius().

Referenced by SbCylinder().

void SbCylinder::setAxis ( const SbLine a  ) 

Set the center axis of the cylinder.

See also:
setRadius(), getAxis().

References SbLine::getDirection(), SbVec3f::length(), and SoDebugError::postWarning().

Referenced by setValue().

void SbCylinder::setRadius ( const float  r  ) 

Set the radius of the cylinder.

See also:
setAxis(), getRadius().

References SoDebugError::postWarning().

Referenced by setValue().

const SbLine & SbCylinder::getAxis ( void   )  const

float SbCylinder::getRadius ( void   )  const

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.

Referenced by SbCylinderPlaneProjector::getRotation(), SbCylinderProjector::intersectCylinderFront(), and SbCylinderSectionProjector::project().

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.

References SbVec3f::cross(), SbVec3f::dot(), SbLine::getClosestPoint(), SbLine::getDirection(), SbLine::getPosition(), SbVec3f::length(), SbVec3f::normalize(), and SoDebugError::postWarning().

void SbCylinder::print ( FILE *  fp  )  const

Dump the state of this object to the file stream. Only works in debug version of library, method does nothing in an optimized compile.

References getAxis(), getRadius(), and SbLine::print().


The documentation for this class was generated from the following files:

Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.

Generated on Mon Feb 23 16:33:40 2009 for Coin by Doxygen. 1.5.8