SoGeoSeparator(3)
๐ SoGeoSeparator(3) ๐
okay bestie so this is the <SoGeoSeparator> page, straight out of the Library Functions Manual โ it's a (3) library thing, not something you type into your shell, so don't @ me when bash says no ๐
โจ NAME โจ
SoGeoSeparator โ the class whose whole entire job is georeferencing a scene graph. that's it, that's the girl ๐ซถ
๐ธ SYNOPSIS ๐ธ
#include <Inventor/nodes/SoGeoSeparator.h>
Inherits SoSeparator. so it's the separator's daughter, she got the looks AND the coordinates ๐
๐ Public Member Functions
virtual SoType getTypeId (void) constโ hands you herSoTypeso you know exactly who you're dealing with โจSoGeoSeparator (void)โ the constructor. default vibes only ๐virtual void callback (SoCallbackAction *action)โ her override for theSoCallbackActionwalkthrough ๐ซvirtual void GLRenderBelowPath (SoGLRenderAction *action)โ override for rendering below the path, as she does ๐virtual void GLRenderInPath (SoGLRenderAction *action)โ and override for rendering in the path too, she contains multitudes ๐virtual void getBoundingBox (SoGetBoundingBoxAction *action)โ override for theSoGetBoundingBoxAction, box = got ๐ฆvirtual void getMatrix (SoGetMatrixAction *action)โ override forSoGetMatrixAction, matrix = obtained ๐งฎvirtual void rayPick (SoRayPickAction *action)โ override for the ray-pick action, poke her and see ๐ฅvirtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)โ override for counting primitives, she keeps receipts ๐งพ
๐ Public Member Functions inherited from SoSeparator
SoSeparator (void)
SoSeparator (const int nchildren)
virtual void doAction (SoAction *action)
virtual void GLRender (SoGLRenderAction *action)
virtual void GLRenderOffPath (SoGLRenderAction *action)
virtual void handleEvent (SoHandleEventAction *action)
virtual void search (SoSearchAction *action)
virtual void audioRender (SoAudioRenderAction *action)
virtual void notify (SoNotList *nl)
virtual SbBool affectsState (void) const
๐ Public Member Functions inherited from SoGroup
SoGroup (void)
SoGroup (int nchildren)
virtual void addChild (SoNode *node)
virtual void insertChild (SoNode *child, int newchildindex)
virtual SoNode * getChild (int index) const
virtual int findChild (const SoNode *node) const
virtual int getNumChildren (void) const
virtual void removeChild (int childindex)
virtual void removeChild (SoNode *child)
virtual void removeAllChildren (void)
virtual void replaceChild (int index, SoNode *newchild)
virtual void replaceChild (SoNode *oldchild, SoNode *newchild)
virtual void pick (SoPickAction *action)
virtual void write (SoWriteAction *action)
virtual SoChildList * getChildren (void) const
๐ Public Member Functions inherited from SoNode
void setOverride (const SbBool state)
SbBool isOverride (void) const
void setNodeType (const NodeType type)
NodeType getNodeType (void) const
virtual SoNode * copy (SbBool copyconnections=FALSE) const
virtual void grabEventsSetup (void)
virtual void grabEventsCleanup (void)
virtual void startNotify (void)
uint32_t getNodeId (void) const
virtual void writeInstance (SoOutput *out)
virtual SoNode * addToCopyDict (void) const
virtual SoFieldContainer * copyThroughConnection (void) const
๐ Public Member Functions inherited from SoFieldContainer
void setToDefaults (void)
SbBool hasDefaultValues (void) const
SbBool fieldsAreEqual (const SoFieldContainer *container) const
void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)
SbBool set (const char *const fielddata)
void get (SbString &fielddata)
virtual int getFields (SoFieldList &l) const
virtual int getAllFields (SoFieldList &l) const
virtual SoField * getField (const SbName &name) const
virtual SoField * getEventIn (const SbName &name) const
virtual SoField * getEventOut (const SbName &name) const
SbBool getFieldName (const SoField *const field, SbName &name) const
SbBool enableNotify (const SbBool flag)
SbBool isNotifyEnabled (void) const
SbBool set (const char *fielddata, SoInput *input)
void get (SbString &fielddata, SoOutput *out)
virtual SbBool validateNewFieldValue (SoField *field, void *newval)
virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)
SbBool getIsBuiltIn (void) const
virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) const
void setUserData (void *userdata) const
void * getUserData (void) const
๐ Public Member Functions inherited from SoBase
void ref (void) const
void unref (void) const
void unrefNoDelete (void) const
int32_t getRefCount (void) const
void touch (void)
SbBool isOfType (SoType type) const
virtual SbName getName (void) const
virtual void setName (const SbName &newname)
void addAuditor (void *const auditor, const SoNotRec::Type type)
void removeAuditor (void *const auditor, const SoNotRec::Type type)
const SoAuditorList & getAuditors (void) const
SbBool shouldWrite (void)
void assertAlive (void) const
๐ Static Public Member Functions
static SoType getClassTypeId (void)โ the class-level type id, static so she doesn't need an instance to tell you who she is ๐static void initClass (void)โ the one you call to set the class up. do it, bestie โจ
๐ฆ Static Public Member Functions inherited from SoSeparator
static SoType getClassTypeId (void)
static void initClass (void)
static void setNumRenderCaches (const int howmany)
static int getNumRenderCaches (void)
๐ฆ Static Public Member Functions inherited from SoGroup
static SoType getClassTypeId (void)
static void initClass (void)
๐ฆ Static Public Member Functions inherited from SoNode
static uint32_t getCompatibilityTypes (const SoType &nodetype)
static SoType getClassTypeId (void)
static SoNode * getByName (const SbName &name)
static int getByName (const SbName &name, SoNodeList &l)
static void initClass (void)
static void initClasses (void)
static uint32_t getNextNodeId (void)
static int getActionMethodIndex (const SoType type)
static void getBoundingBoxS (SoAction *action, SoNode *node)
static void GLRenderS (SoAction *action, SoNode *node)
static void callbackS (SoAction *action, SoNode *node)
static void getMatrixS (SoAction *action, SoNode *node)
static void handleEventS (SoAction *action, SoNode *node)
static void pickS (SoAction *action, SoNode *node)
static void rayPickS (SoAction *action, SoNode *node)
static void searchS (SoAction *action, SoNode *node)
static void writeS (SoAction *action, SoNode *node)
static void audioRenderS (SoAction *action, SoNode *node)
static void getPrimitiveCountS (SoAction *action, SoNode *node)
๐ฆ Static Public Member Functions inherited from SoFieldContainer
static void initClass (void)
static SoType getClassTypeId (void)
static void cleanupClass (void)
static void initCopyDict (void)
static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)
static SoFieldContainer * checkCopy (const SoFieldContainer *orig)
static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)
static void copyDone (void)
๐ฆ Static Public Member Functions inherited from SoBase
static void initClass (void)
static SoType getClassTypeId (void)
static void addName (SoBase *const base, const char *const name)
static void removeName (SoBase *const base, const char *const name)
static void incrementCurrentWriteCounter (void)
static void decrementCurrentWriteCounter (void)
static SoBase * getNamedBase (const SbName &name, SoType type)
static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)
static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)
static void setInstancePrefix (const SbString &c)
static void setTraceRefs (SbBool trace)
static SbBool getTraceRefs (void)
static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)
static SbBool readRoute (SoInput *input)
๐ Public Attributes
SoSFVec3d geoCoordsโ the actual coordinates. the whole point of her existence, lowkey iconic ๐SoMFString geoSystemโ a multi-string for the geo system, because one string could never ๐
๐ง Public Attributes inherited from SoSeparator
SoSFEnum renderCaching
SoSFEnum boundingBoxCaching
SoSFEnum renderCulling
SoSFEnum pickCulling
๐ Protected Member Functions
virtual const SoFieldData * getFieldData (void) constโ hands over the field data, protected-style ๐virtual ~SoGeoSeparator (void)โ the destructor. she says goodbye very gracefully ๐
๐ธ Protected Member Functions inherited from SoSeparator
virtual ~SoSeparator ()
virtual SbBool cullTest (SoState *state)
virtual SbBool cullTest (SoGLRenderAction *action, int &cullresults)
virtual SbBool readInstance (SoInput *in, unsigned short flags)
๐ธ Protected Member Functions inherited from SoGroup
virtual ~SoGroup ()
virtual SbBool readChildren (SoInput *in)
virtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)
๐ธ Protected Member Functions inherited from SoNode
SoNode (void)
virtual ~SoNode ()
๐ธ Protected Member Functions inherited from SoFieldContainer
SoFieldContainer (void)
virtual ~SoFieldContainer ()
๐ธ Protected Member Functions inherited from SoBase
SoBase (void)
virtual ~SoBase ()
virtual void destroy (void)
SbBool hasMultipleWriteRefs (void) const
SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const
void writeFooter (SoOutput *out) const
virtual const char * getFileFormatName (void) const
โญ Static Protected Member Functions
static const SoFieldData ** getFieldDataPtr (void)โ the pointer-to-pointer-to-field-data situation. it's giving very internal โญ
๐ซ Static Protected Member Functions inherited from SoSeparator
static const SoFieldData ** getFieldDataPtr (void)
๐ซ Static Protected Member Functions inherited from SoGroup
static const SoFieldData ** getFieldDataPtr (void)
๐ซ Static Protected Member Functions inherited from SoNode
static const SoFieldData ** getFieldDataPtr (void)
static void setNextActionMethodIndex (int index)
static int getNextActionMethodIndex (void)
static void incNextActionMethodIndex (void)
static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask)
๐ซ Static Protected Member Functions inherited from SoBase
static uint32_t getCurrentWriteCounter (void)
static void staticDataLock (void)
static void staticDataUnlock (void)
๐ Additional Inherited Members ๐
okay this is the lore section, bestie. sit down. ๐ซ
๐ Public Types inherited from SoSeparator
enum CacheEnabled { OFF, ON, AUTO }
๐ Public Types inherited from SoNode
enum NodeType { INVENTOR = 0x0000, VRML1 = 0x0001, VRML2 = 0x0002,
INVENTOR_1 = 0x0004, INVENTOR_2_0 = 0x0008, INVENTOR_2_1 = 0x0010,
INVENTOR_2_5 = 0x0020, INVENTOR_2_6 = 0x0040, COIN_1_0 = 0x0080,
COIN_2_0 = 0x0100, EXTENSION = 0x0200, COIN_2_2 = 0x0400, COIN_2_3 =
0x0800, COIN_2_4 = 0x1000, INVENTOR_5_0 = 0x2000, COIN_2_5 = 0x4000,
COIN_3_0 = 0x8000, INVENTOR_6_0 = 0x10000 }
look at all those hex flags, she's got range ๐ญ
๐ Protected Types inherited from SoBase
enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }
๐ Protected Attributes inherited from SoGroup
SoChildList * children
๐ Protected Attributes inherited from SoNode
uint32_t uniqueId
๐ Protected Attributes inherited from SoFieldContainer
SbBool isBuiltIn
โญ Static Protected Attributes inherited from SoNode
static uint32_t nextUniqueId = 1
static int nextActionMethodIndex = 0
bestie we are SO not done, this was only part 1 ๐ญ the actual DESCRIPTION and everything after it is still coming โ stay tuned ๐
๐ธ Detailed Description ๐ธ
The SoGeoSeparator class is used to georeference a scene graph. That's the whole point, bestie: it pins your 3D world to actual Earth coordinates so everything knows where it is. ๐บ๏ธโจ
FILE FORMAT/DEFAULTS:
GeoSeparator {
geoSystem ["GD", "WE"]
geoCoords 0 0 0
}
This node specifies an absolute geographic coordinate system for the children. When rendering (or applying other actions), Coin will add a transformation which transforms the geometry into the SoGeoOrigin coordinate system. All objects will be rotated to make the local Z axis point up from the ground (at the specified geo-location), the Y axis will point towards the north pole, and the X axis is found using the right hand rule. ๐งญ๐ซ
See also: SoGeoOrigin
Since: Coin 2.5
๐ Constructor & Destructor Documentation ๐
SoGeoSeparator::SoGeoSeparator (void )
Constructor. It's giving "make a new one," periodt. ๐
SoGeoSeparator::~SoGeoSeparator (void ) [protected], [virtual]
Destructor. Protected and virtual, so it cleans up properly when the vibe is over. ๐ซถ
๐ Member Function Documentation ๐
SoType SoGeoSeparator::getTypeId (void ) const [virtual]
Returns the type identification of an object derived from a class inheriting SoBase. This is used for run-time type checking and "downward" casting.
Usage example:
void foo(SoNode * node)
{
if (node->getTypeId() == SoFile::getClassTypeId()) {
SoFile * filenode = (SoFile *)node; // safe downward cast, knows the type
}
}
For application programmers wanting to extend the library with new nodes, engines, nodekits, draggers or others: this method needs to be overridden in all subclasses. This is typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the pre-defined macros available through for instance Inventor/nodes/SoSubNode.h (SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine.h (for engine classes) and so on.
For more information on writing Coin extensions, see the class documentation of the toplevel superclasses for the various class groups.
Reimplemented from SoSeparator.
const SoFieldData * SoGeoSeparator::getFieldData (void ) const [protected], [virtual]
Returns a pointer to the class-wide field data storage object for this instance. If no fields are present, returns NULL.
Reimplemented from SoSeparator.
void SoGeoSeparator::callback (SoCallbackAction * action) [virtual]
Action method for SoCallbackAction.
Simply updates the state according to how the node behaves for the render action, so the application programmer can use the SoCallbackAction for extracting information about the scene graph.
Reimplemented from SoSeparator.
void SoGeoSeparator::GLRenderBelowPath (SoGLRenderAction * action) [virtual]
SGI Open Inventor v2.1 obsoleted support for SoGLRenderAction::addMethod(). Instead, GLRender() might be called directly, and to optimize traversal, the SoSeparator node calls GLRenderBelowPath whenever the path code is BELOW_PATH or NO_PATH (path code is guaranteed not to change). To be compatible with SGI's Inventor (and thereby also TGS') we have chosen to follow their implementation in this respect.
SoSeparator::GLRenderBelowPath() do not traverse its children using SoChildList::traverse(), but calls GLRenderBelowPath() directly for all its children.
Reimplemented from SoSeparator.
void SoGeoSeparator::GLRenderInPath (SoGLRenderAction * action) [virtual]
Implements the SoAction::IN_PATH traversal method for the rendering action.
Reimplemented from SoSeparator.
void SoGeoSeparator::getBoundingBox (SoGetBoundingBoxAction * action) [virtual]
Action method for the SoGetBoundingBoxAction.
Calculates bounding box and center coordinates for node and modifies the values of the action to encompass the bounding box for this node and to shift the center point for the scene more towards the one for this node.
Nodes influencing how geometry nodes calculates their bounding box also overrides this method to change the relevant state variables.
Reimplemented from SoSeparator.
void SoGeoSeparator::getMatrix (SoGetMatrixAction * action) [virtual]
Action method for SoGetMatrixAction.
Updates action by accumulating with the transformation matrix of this node (if any).
Reimplemented from SoSeparator.
void SoGeoSeparator::rayPick (SoRayPickAction * action) [virtual]
Action method for SoRayPickAction.
Checks the ray specification of the action and tests for intersection with the data of the node.
Nodes influencing relevant state variables for how picking is done also overrides this method.
Reimplemented from SoSeparator.
void SoGeoSeparator::getPrimitiveCount (SoGetPrimitiveCountAction * action) [virtual]
Action method for the SoGetPrimitiveCountAction.
Calculates the number of triangle, line segment and point primitives for the node and adds these to the counters of the action.
Nodes influencing how geometry nodes calculates their primitive count also overrides this method to change the relevant state variables.
Reimplemented from SoSeparator.
๐ Member Data Documentation ๐
SoSFVec3d SoGeoSeparator::geoCoords
Used for specifying the geographic coordinates.
See also SoGeoOrigin::geoCoords
SoMFString SoGeoSeparator::geoSystem
Used to specify a spatial reference frame.
See also SoGeoOrigin::geoSystem
๐ Author ๐
Generated automatically by Doxygen for Coin from the source code.
That's the whole page, bestie! This iconic manual page is from Coin, version 3.1.3, and it's SoGeoSeparator(3). ๐โจ
๐ฆ where this page comes from
- fedora 43: Coin3-devel 3.1.3-40.fc43 ยท GPL-2.0-only
- fedora 43: Coin3-devel 3.1.3-40.fc43 ยท GPL-2.0-only
- fedora 44: Coin3-devel 3.1.3-42.fc44 ยท GPL-2.0-only
- fedora 44: Coin3-devel 3.1.3-42.fc44 ยท GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms