OSG
3.4.0
|
#include <SphereSegment.h>
Public Types | |
enum | DrawMask { SURFACE = 0x00000001, SPOKES = 0x00000002, EDGELINE = 0x00000008, SIDES = 0x00000010, ALL = 0x7fffffff } |
typedef std::vector < osg::ref_ptr< osg::Vec3Array > > | LineList |
![]() | |
typedef std::vector< Group * > | ParentList |
typedef unsigned int | NodeMask |
typedef std::vector< std::string > | DescriptionList |
![]() | |
enum | DataVariance { DYNAMIC, STATIC, UNSPECIFIED } |
Public Member Functions | |
SphereSegment () | |
SphereSegment (const osg::Vec3 ¢re, float radius, float azMin, float azMax, float elevMin, float elevMax, int density) | |
SphereSegment (const osg::Vec3 ¢re, float radius, const osg::Vec3 &vec, float azRange, float elevRange, int density) | |
SphereSegment (const SphereSegment &rhs, const osg::CopyOp &co) | |
void | setCentre (const osg::Vec3 &c) |
const osg::Vec3 & | getCentre () const |
void | setRadius (float r) |
float | getRadius () const |
void | setArea (const osg::Vec3 &vec, float azRange, float elevRange) |
void | getArea (osg::Vec3 &vec, float &azRange, float &elevRange) const |
void | setArea (float azMin, float azMax, float elevMin, float elevMax) |
void | getArea (float &azMin, float &azMax, float &elevMin, float &elevMax) const |
void | setDensity (int d) |
int | getDensity () const |
void | setDrawMask (int dm) |
int | getDrawMask () const |
void | setSurfaceColor (const osg::Vec4 &c) |
const osg::Vec4 & | getSurfaceColor () const |
void | setSpokeColor (const osg::Vec4 &c) |
const osg::Vec4 & | getSpokeColor () const |
void | setEdgeLineColor (const osg::Vec4 &c) |
const osg::Vec4 & | getEdgeLineColor () const |
void | setSideColor (const osg::Vec4 &c) |
const osg::Vec4 & | getSideColor () const |
void | setAllColors (const osg::Vec4 &c) |
META_Node (osgSim, SphereSegment) | |
LineList | computeIntersection (const osg::Matrixd &matrix, osg::Node *subgraph) |
LineList | computeIntersection (const osg::Matrixd &matrix, osg::Drawable *drawable) |
osg::Node * | computeIntersectionSubgraph (const osg::Matrixd &matrix, osg::Node *subgraph) |
osg::Node * | computeIntersectionSubgraph (const osg::Matrixd &matrix, osg::Drawable *drawable) |
![]() | |
Geode () | |
Geode (const Geode &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
META_Node (osg, Geode) | |
virtual Geode * | asGeode () |
virtual const Geode * | asGeode () const |
virtual bool | addDrawable (Drawable *drawable) |
virtual bool | removeDrawable (Drawable *drawable) |
virtual bool | removeDrawables (unsigned int i, unsigned int numDrawablesToRemove=1) |
virtual bool | replaceDrawable (Drawable *origDraw, Drawable *newDraw) |
virtual bool | setDrawable (unsigned int i, Drawable *drawable) |
unsigned int | getNumDrawables () const |
Drawable * | getDrawable (unsigned int i) |
const Drawable * | getDrawable (unsigned int i) const |
bool | containsDrawable (const Drawable *drawable) const |
unsigned int | getDrawableIndex (const Drawable *drawable) const |
void | compileDrawables (RenderInfo &renderInfo) |
const BoundingBox & | getBoundingBox () const |
virtual BoundingSphere | computeBound () const |
![]() | |
Group () | |
Group (const Group &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
META_Node (osg, Group) | |
virtual Group * | asGroup () |
virtual const Group * | asGroup () const |
virtual void | traverse (NodeVisitor &nv) |
virtual bool | addChild (Node *child) |
virtual bool | insertChild (unsigned int index, Node *child) |
virtual bool | removeChild (Node *child) |
bool | removeChild (unsigned int pos, unsigned int numChildrenToRemove=1) |
virtual bool | removeChildren (unsigned int pos, unsigned int numChildrenToRemove) |
virtual bool | replaceChild (Node *origChild, Node *newChild) |
virtual unsigned int | getNumChildren () const |
virtual bool | setChild (unsigned int i, Node *node) |
Node * | getChild (unsigned int i) |
const Node * | getChild (unsigned int i) const |
bool | containsNode (const Node *node) const |
unsigned int | getChildIndex (const Node *node) const |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
virtual void | resizeGLObjectBuffers (unsigned int maxSize) |
virtual void | releaseGLObjects (osg::State *=0) const |
![]() | |
Node () | |
Node (const Node &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
virtual Object * | cloneType () const |
virtual Object * | clone (const CopyOp ©op) const |
virtual bool | isSameKindAs (const Object *obj) const |
virtual const char * | libraryName () const |
virtual const char * | className () const |
virtual Node * | asNode () |
virtual const Node * | asNode () const |
virtual Drawable * | asDrawable () |
virtual const Drawable * | asDrawable () const |
virtual Geometry * | asGeometry () |
virtual const Geometry * | asGeometry () const |
virtual Transform * | asTransform () |
virtual const Transform * | asTransform () const |
virtual Camera * | asCamera () |
virtual const Camera * | asCamera () const |
virtual Switch * | asSwitch () |
virtual const Switch * | asSwitch () const |
virtual osgTerrain::Terrain * | asTerrain () |
virtual const osgTerrain::Terrain * | asTerrain () const |
virtual void | accept (NodeVisitor &nv) |
virtual void | ascend (NodeVisitor &nv) |
const ParentList & | getParents () const |
ParentList | getParents () |
Group * | getParent (unsigned int i) |
const Group * | getParent (unsigned int i) const |
unsigned int | getNumParents () const |
NodePathList | getParentalNodePaths (osg::Node *haltTraversalAtNode=0) const |
MatrixList | getWorldMatrices (const osg::Node *haltTraversalAtNode=0) const |
void | setUpdateCallback (Callback *nc) |
Callback * | getUpdateCallback () |
const Callback * | getUpdateCallback () const |
void | addUpdateCallback (Callback *nc) |
void | removeUpdateCallback (Callback *nc) |
unsigned int | getNumChildrenRequiringUpdateTraversal () const |
void | setEventCallback (Callback *nc) |
Callback * | getEventCallback () |
const Callback * | getEventCallback () const |
void | addEventCallback (Callback *nc) |
void | removeEventCallback (Callback *nc) |
unsigned int | getNumChildrenRequiringEventTraversal () const |
void | setCullCallback (Callback *nc) |
Callback * | getCullCallback () |
const Callback * | getCullCallback () const |
void | addCullCallback (Callback *nc) |
void | removeCullCallback (Callback *nc) |
void | setCullingActive (bool active) |
bool | getCullingActive () const |
unsigned int | getNumChildrenWithCullingDisabled () const |
bool | isCullingActive () const |
unsigned int | getNumChildrenWithOccluderNodes () const |
bool | containsOccluderNodes () const |
void | setNodeMask (NodeMask nm) |
NodeMask | getNodeMask () const |
void | setStateSet (osg::StateSet *stateset) |
osg::StateSet * | getOrCreateStateSet () |
osg::StateSet * | getStateSet () |
const osg::StateSet * | getStateSet () const |
void | setDescriptions (const DescriptionList &descriptions) |
DescriptionList & | getDescriptions () |
const DescriptionList & | getDescriptions () const |
const std::string & | getDescription (unsigned int i) const |
std::string & | getDescription (unsigned int i) |
unsigned int | getNumDescriptions () const |
void | addDescription (const std::string &desc) |
void | setInitialBound (const osg::BoundingSphere &bsphere) |
const BoundingSphere & | getInitialBound () const |
void | dirtyBound () |
const BoundingSphere & | getBound () const |
void | setComputeBoundingSphereCallback (ComputeBoundingSphereCallback *callback) |
ComputeBoundingSphereCallback * | getComputeBoundingSphereCallback () |
const ComputeBoundingSphereCallback * | getComputeBoundingSphereCallback () const |
![]() | |
Object () | |
Object (bool threadSafeRefUnref) | |
Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
std::string | getCompoundClassName () const |
virtual NodeVisitor * | asNodeVisitor () |
virtual const NodeVisitor * | asNodeVisitor () const |
virtual StateAttribute * | asStateAttribute () |
virtual const StateAttribute * | asStateAttribute () const |
virtual Uniform * | asUniform () |
virtual const Uniform * | asUniform () const |
virtual void | setName (const std::string &name) |
void | setName (const char *name) |
const std::string & | getName () const |
void | setDataVariance (DataVariance dv) |
DataVariance | getDataVariance () const |
virtual void | computeDataVariance () |
void | setUserDataContainer (osg::UserDataContainer *udc) |
osg::UserDataContainer * | getUserDataContainer () |
const osg::UserDataContainer * | getUserDataContainer () const |
osg::UserDataContainer * | getOrCreateUserDataContainer () |
virtual void | setUserData (Referenced *obj) |
virtual Referenced * | getUserData () |
virtual const Referenced * | getUserData () const |
template<typename T > | |
bool | getUserValue (const std::string &name, T &value) const |
template<typename T > | |
void | setUserValue (const std::string &name, const T &value) |
template<typename T > | |
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const |
![]() | |
Referenced () | |
Referenced (bool threadSafeRefUnref) | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
bool | getThreadSafeRefUnref () const |
OpenThreads::Mutex * | getRefMutex () const |
int | ref () const |
int | unref () const |
int | unref_nodelete () const |
int | referenceCount () const |
ObserverSet * | getObserverSet () const |
ObserverSet * | getOrCreateObserverSet () const |
void | addObserver (Observer *observer) const |
void | removeObserver (Observer *observer) const |
Friends | |
class | Surface |
class | EdgeLine |
class | Side |
class | Spoke |
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:
- The specified area of the sphere surface. - An edge line around the boundary of the specified area of the sphere surface. - Four <i>spokes</i>, where a spoke is the line from the sphere's centre to a corner of the rendered area. - Four planar areas, where the planar areas are formed between the spokes.
Caveats:
- It's worth noting that the line through the sphere's poles is parallel to the z axis. This has implications when specifying the area to be rendered, and specifying areas where the centre of the rendered area <i>is</i> the Z axis may lead to unexpected geometry. - It's possible to render the whole sphere by specifying elevation and azimuth ranges round the full 360 degrees. When doing so you may consider switching the planes, spokes, and edge lines off, to avoid rendering artefacts, e.g. the upper and lower planes will be coincident.
Definition at line 59 of file SphereSegment.h.
typedef std::vector< osg::ref_ptr<osg::Vec3Array> > osgSim::SphereSegment::LineList |
A list of vertex arrays representing a list of lines.
Definition at line 232 of file SphereSegment.h.
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.
Definition at line 70 of file SphereSegment.h.
|
inline |
Default constructor.
Definition at line 80 of file SphereSegment.h.
|
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.
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 |
Definition at line 103 of file SphereSegment.h.
osgSim::SphereSegment::SphereSegment | ( | const osg::Vec3 & | centre, |
float | radius, | ||
const osg::Vec3 & | vec, | ||
float | azRange, | ||
float | elevRange, | ||
int | density | ||
) |
Construct by vector.
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 |
|
inline |
Copy constructor
Definition at line 129 of file SphereSegment.h.
LineList osgSim::SphereSegment::computeIntersection | ( | const osg::Matrixd & | matrix, |
osg::Node * | subgraph | ||
) |
Compute the interesection lines between subgraph and this sphere segment. The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment. The resulting intersections are in the coordinate frame of the sphere segment.
LineList osgSim::SphereSegment::computeIntersection | ( | const osg::Matrixd & | matrix, |
osg::Drawable * | drawable | ||
) |
Compute the interesection lines between specified drawable and this sphere segment. The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment. The resulting intersections are in the coordinate frame of the sphere segment.
osg::Node* osgSim::SphereSegment::computeIntersectionSubgraph | ( | const osg::Matrixd & | matrix, |
osg::Node * | subgraph | ||
) |
Compute the interesection lines between subgraph and this sphere segment. The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment. The resulting intersections are in the coordinate frame of the 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. The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment. The resulting intersections are in the coordinate frame of the sphere segment.
void osgSim::SphereSegment::getArea | ( | osg::Vec3 & | vec, |
float & | azRange, | ||
float & | elevRange | ||
) | const |
Get the area of the sphere segment
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) |
void osgSim::SphereSegment::getArea | ( | float & | azMin, |
float & | azMax, | ||
float & | elevMin, | ||
float & | elevMax | ||
) | const |
Get the area of the sphere segment
azMin | azimuth minimum |
azMax | azimuth maximum |
elevMin | elevation minimum |
elevMax | elevation maximum |
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
|
inline |
Get the DrawMask
Definition at line 200 of file SphereSegment.h.
|
inline |
Get the color of the edge line.
Definition at line 218 of file SphereSegment.h.
float osgSim::SphereSegment::getRadius | ( | ) | const |
Get the radius of the SphereSegment
|
inline |
Get the color of the planes.
Definition at line 224 of file SphereSegment.h.
|
inline |
Get the color of the spokes.
Definition at line 212 of file SphereSegment.h.
|
inline |
Get the color of the surface.
Definition at line 206 of file SphereSegment.h.
osgSim::SphereSegment::META_Node | ( | osgSim | , |
SphereSegment | |||
) |
void osgSim::SphereSegment::setAllColors | ( | const osg::Vec4 & | c | ) |
Set color of all components.
void osgSim::SphereSegment::setArea | ( | const osg::Vec3 & | vec, |
float | azRange, | ||
float | elevRange | ||
) |
Set the area of the sphere segment
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::setArea | ( | float | azMin, |
float | azMax, | ||
float | elevMin, | ||
float | elevMax | ||
) |
Set the area of the sphere segment
azMin | azimuth minimum |
azMax | azimuth maximum |
elevMin | elevation minimum |
elevMax | elevation maximum |
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 | ( | int | dm | ) |
Specify the DrawMask.
dm | Bitmask specifying which parts of the sphere segment should be drawn. |
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.
|
friend |
Definition at line 284 of file SphereSegment.h.
|
friend |
Definition at line 291 of file SphereSegment.h.
|
friend |
Definition at line 296 of file SphereSegment.h.
|
friend |
Definition at line 279 of file SphereSegment.h.