Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

osgSim::SphereSegment Class Reference

A SphereSegment is a Geode to represent an portion of a sphere (potentially the whole sphere). More...

Inheritance diagram for osgSim::SphereSegment:

Inheritance graph
[legend]
List of all members.

Public Types

typedef std::vector< osg::ref_ptr<
osg::Vec3Array > > 
LineList
 A list of vertex arrays representing a list of lines.

enum  DrawMask {
  SURFACE = 0x00000001, SPOKES = 0x00000002, EDGELINE = 0x00000008, SIDES = 0x00000010,
  ALL = 0xffffffff
}
 DrawMask represents a bit field, the values of which may be OR'ed together to specify which parts of the sphere segment should be drawn. More...


Public Member Functions

 SphereSegment ()
 Default constructor.

 SphereSegment (const osg::Vec3 &centre, float radius, float azMin, float azMax, float elevMin, float elevMax, int density)
 Construct by angle ranges.

 SphereSegment (const osg::Vec3 &centre, float radius, const osg::Vec3 &vec, float azRange, float elevRange, int density)
 Construct by vector.

 SphereSegment (const SphereSegment &rhs, const osg::CopyOp &co)
 Copy constructor.

void setCentre (const osg::Vec3 &c)
 Set the centre point of the SphereSegment.

const osg::Vec3getCentre () const
 Get the centre point of the SphereSegment.

void setRadius (float r)
 Set the radius of the SphereSegment.

float getRadius () const
 Get the radius of the SphereSegment.

void setArea (const osg::Vec3 &vec, float azRange, float elevRange)
 Set the area of the sphere segment.

void getArea (osg::Vec3 &vec, float &azRange, float &elevRange) const
 Get the area of the sphere segment.

void setArea (float azMin, float azMax, float elevMin, float elevMax)
 Set the area of the sphere segment.

void getArea (float &azMin, float &azMax, float &elevMin, float &elevMax) const
 Get the area of the sphere segment.

void setDensity (int d)
 Set the density of the sphere segment.

int getDensity () const
 Get the density of the sphere segment.

void setDrawMask (DrawMask dm)
 Specify the DrawMask.

DrawMask getDrawMask () const
 Get the DrawMask.

void setSurfaceColor (const osg::Vec4 &c)
 Set the color of the surface.

osg::Vec4 getSurfaceColor () const
 Get the color of the surface.

void setSpokeColor (const osg::Vec4 &c)
 Set the color of the spokes.

osg::Vec4 getSpokeColor () const
 Get the color of the spokes.

void setEdgeLineColor (const osg::Vec4 &c)
 Set the color of the edge line.

osg::Vec4 getEdgeLineColor () const
 Get the color of the edge line.

void setSideColor (const osg::Vec4 &c)
 Set the color of the planes.

osg::Vec4 getSideColor () const
 Get the color of the planes.

void setAllColors (const osg::Vec4 &c)
 Set color of all components.

 META_Node (osgSim, SphereSegment)
LineList computeIntersection (const osg::Matrixd &matrix, osg::Node *subgraph)
 Compute the interesection lines between subgraph and this sphere segment.

LineList computeIntersection (const osg::Matrixd &matrix, osg::Drawable *drawable)
 Compute the interesection lines between specified drawable and this sphere segment.

osg::NodecomputeIntersectionSubgraph (const osg::Matrixd &matrix, osg::Node *subgraph)
 Compute the interesection lines between subgraph and this sphere segment.

osg::NodecomputeIntersectionSubgraph (const osg::Matrixd &matrix, osg::Drawable *drawable)
 Compute the interesection lines between specified drawable and this sphere segment.


Detailed Description

A SphereSegment is a Geode to represent an portion of a sphere (potentially the whole sphere).

The sphere is aligned such that the line through the sphere's poles is parallel to the z axis. The sphere segment may be rendered various components switched on or off:

Caveats:


Member Typedef Documentation

typedef std::vector< osg::ref_ptr<osg::Vec3Array> > osgSim::SphereSegment::LineList
 

A list of vertex arrays representing a list of lines.


Member Enumeration Documentation

enum osgSim::SphereSegment::DrawMask
 

DrawMask represents a bit field, the values of which may be OR'ed together to specify which parts of the sphere segment should be drawn.

E.g.

sphereSegment->setDrawMask(SphereSegment::DrawMask(SphereSegment::SURFACE|SphereSegment::SPOKES));
Enumeration values:
SURFACE  Draw the specified area on the sphere's surface.
SPOKES  Draw the spokes from the sphere's centre to the surface's corners.
EDGELINE  Draw the line round the edge of the area on the sphere's surface.
SIDES  Draw the planes from the sphere's centre to the edge of the sphere's surface.
ALL  Draw every part of the sphere segment.


Constructor & Destructor Documentation

osgSim::SphereSegment::SphereSegment  )  [inline]
 

Default constructor.

osgSim::SphereSegment::SphereSegment const osg::Vec3 centre,
float  radius,
float  azMin,
float  azMax,
float  elevMin,
float  elevMax,
int  density
[inline]
 

Construct by angle ranges.

Note that the azimuth 'zero' is the Y axis; specifying an azimuth range from azMin -osg::PI/2.0f to azMax osg::PI/2.0f will cover the 'top half' of the circle in the XY plane. The elev angles are 'out' of the 'zero' XY plane with +ve angles above the plane, and -ve angles below.

Parameters:
centre sphere centre
radius radius of sphere
azMin azimuth minimum
azMax azimuth maximum
elevMin elevation minimum
elevMax elevation maximum
density number of units to divide the azimuth and elevation ranges into

osgSim::SphereSegment::SphereSegment const osg::Vec3 centre,
float  radius,
const osg::Vec3 vec,
float  azRange,
float  elevRange,
int  density
 

Construct by vector.

Parameters:
centre sphere centre
radius radius of sphere
vec vector pointing from sphere centre to centre point of rendered area on sphere surface
azRange azimuth range in radians (with centre along vec)
elevRange elevation range in radians (with centre along vec)
density number of units to divide the azimuth and elevation ranges into

osgSim::SphereSegment::SphereSegment const SphereSegment rhs,
const osg::CopyOp co
[inline]
 

Copy constructor.


Member Function Documentation

LineList osgSim::SphereSegment::computeIntersection const osg::Matrixd matrix,
osg::Drawable drawable
 

Compute the interesection lines between specified drawable and this sphere segment.

LineList osgSim::SphereSegment::computeIntersection const osg::Matrixd matrix,
osg::Node subgraph
 

Compute the interesection lines between subgraph and this sphere segment.

osg::Node* osgSim::SphereSegment::computeIntersectionSubgraph const osg::Matrixd matrix,
osg::Drawable drawable
 

Compute the interesection lines between specified drawable and this sphere segment.

osg::Node* osgSim::SphereSegment::computeIntersectionSubgraph const osg::Matrixd matrix,
osg::Node subgraph
 

Compute the interesection lines between subgraph and this sphere segment.

void osgSim::SphereSegment::getArea float &  azMin,
float &  azMax,
float &  elevMin,
float &  elevMax
const
 

Get the area of the sphere segment.

Parameters:
azMin azimuth minimum
azMax azimuth maximum
elevMin elevation minimum
elevMax elevation maximum

void osgSim::SphereSegment::getArea osg::Vec3 vec,
float &  azRange,
float &  elevRange
const
 

Get the area of the sphere segment.

Parameters:
vec vector pointing from sphere centre to centre point of rendered area on sphere surface (normalized)
azRange azimuth range in radians (with centre along vec)
elevRange elevation range in radians (with centre along vec)

const osg::Vec3& osgSim::SphereSegment::getCentre  )  const
 

Get the centre point of the SphereSegment.

int osgSim::SphereSegment::getDensity  )  const
 

Get the density of the sphere segment.

DrawMask osgSim::SphereSegment::getDrawMask  )  const [inline]
 

Get the DrawMask.

osg::Vec4 osgSim::SphereSegment::getEdgeLineColor  )  const [inline]
 

Get the color of the edge line.

float osgSim::SphereSegment::getRadius  )  const
 

Get the radius of the SphereSegment.

osg::Vec4 osgSim::SphereSegment::getSideColor  )  const [inline]
 

Get the color of the planes.

osg::Vec4 osgSim::SphereSegment::getSpokeColor  )  const [inline]
 

Get the color of the spokes.

osg::Vec4 osgSim::SphereSegment::getSurfaceColor  )  const [inline]
 

Get the color of the surface.

osgSim::SphereSegment::META_Node osgSim  ,
SphereSegment 
 

void osgSim::SphereSegment::setAllColors const osg::Vec4 c  ) 
 

Set color of all components.

void osgSim::SphereSegment::setArea float  azMin,
float  azMax,
float  elevMin,
float  elevMax
 

Set the area of the sphere segment.

Parameters:
azMin azimuth minimum
azMax azimuth maximum
elevMin elevation minimum
elevMax elevation maximum

void osgSim::SphereSegment::setArea const osg::Vec3 vec,
float  azRange,
float  elevRange
 

Set the area of the sphere segment.

Parameters:
vec vector pointing from sphere centre to centre point of rendered area on sphere surface
azRange azimuth range in radians (with centre along vec)
elevRange elevation range in radians (with centre along vec)

void osgSim::SphereSegment::setCentre const osg::Vec3 c  ) 
 

Set the centre point of the SphereSegment.

void osgSim::SphereSegment::setDensity int  d  ) 
 

Set the density of the sphere segment.

void osgSim::SphereSegment::setDrawMask DrawMask  dm  ) 
 

Specify the DrawMask.

Parameters:
dm Bitmask specifying which parts of the sphere segment should be drawn.
See also:
DrawMask

void osgSim::SphereSegment::setEdgeLineColor const osg::Vec4 c  ) 
 

Set the color of the edge line.

void osgSim::SphereSegment::setRadius float  r  ) 
 

Set the radius of the SphereSegment.

void osgSim::SphereSegment::setSideColor const osg::Vec4 c  ) 
 

Set the color of the planes.

void osgSim::SphereSegment::setSpokeColor const osg::Vec4 c  ) 
 

Set the color of the spokes.

void osgSim::SphereSegment::setSurfaceColor const osg::Vec4 c  ) 
 

Set the color of the surface.


The documentation for this class was generated from the following file:
Generated at Thu Nov 24 16:25:27 2005 for the OpenSceneGraph by doxygen 1.3.6.