SoVRMLCollision - Online Linux Manual PageSection : 3
Updated : Mon Jan 25 2021
Source : Version 4.0.0
Note : Coin

NAMESoVRMLCollision − The SoVRMLCollision class is used for collision detection with the avatar​.

SYNOPSIS
#include <Inventor/VRMLnodes/SoVRMLCollision​.h> Inherits SoVRMLGroup​.

Public Member Functionsvirtual SoType getTypeId (void) const
Returns the type identification of an object derived from a class inheriting SoBase​. This is used for run-time type checking and 'downward' casting​.
SoVRMLCollision (void)
SoVRMLCollision (int numchildren)
virtual void GLRender (SoGLRenderAction *action)
virtual void notify (SoNotList *list)

Static Public Member Functionsstatic SoType getClassTypeId (void)
static void initClass (void)

Public AttributesSoSFBool collide
SoSFNode proxy
SoSFTime collideTime

Protected Member Functionsvirtual const SoFieldData * getFieldData (void) const
virtual ~SoVRMLCollision ()

Static Protected Member Functionsstatic const SoFieldData ** getFieldDataPtr (void)

Additional Inherited Members

Detailed DescriptionThe SoVRMLCollision class is used for collision detection with the avatar​. The detailed class documentation is taken verbatim from the VRML97 standard (ISO/IEC 14772-1:1997)​. It is copyright The Web3D Consortium, and is used by permission of the Consortium:

Collision { eventIn MFNode addChildren eventIn MFNode removeChildren exposedField MFNode children [] exposedField SFBool collide TRUE field SFVec3f bboxCenter 0 0 0 # (-,) field SFVec3f bboxSize -1 -1 -1 # (0,) or -1,-1,-1 field SFNode proxy NULL eventOut SFTime collideTime } The Collision node is a grouping node that specifies the collision detection properties for its children (and their descendants), specifies surrogate objects that replace its children during collision detection, and sends events signalling that a collision has occurred between the avatar and the Collision node's geometry or surrogate​. By default, all geometric nodes in the scene are collidable with the viewer except IndexedLineSet, PointSet, and Text​. Browsers shall detect geometric collisions between the avatar (see SoVRMLNavigationInfo) and the scene's geometry and prevent the avatar from 'entering' the geometry​. See 4​.13​.4, Collision detection and terrain following (http://www.web3d.org/documents/specifications/14772/V2.0/part1/concepts.html#4.13.4), for general information on collision detection​. If there are no Collision nodes specified in a VRML file, browsers shall detect collisions between the avatar and all objects during navigation​. Subclause 4​.6​.5, Grouping and children nodes (http://www.web3d.org/documents/specifications/14772/V2.0/part1/concepts.html#4.6.5), contains a description of the children, addChildren, and removeChildren fields and eventIns​. The Collision node's collide field enables and disables collision detection​. If collide is set to FALSE, the children and all descendants of the Collision node shall not be checked for collision, even though they are drawn​. This includes any descendent Collision nodes that have collide set to TRUE (i​.e​., setting collide to FALSE turns collision off for every node below it)​. Collision nodes with the collide field set to TRUE detect the nearest collision with their descendent geometry (or proxies)​. When the nearest collision is detected, the collided Collision node sends the time of the collision through its collideTime eventOut​. If a Collision node contains a child, descendant, or proxy (see below) that is a Collision node, and both Collision nodes detect that a collision has occurred, both send a collideTime event at the same time​. A collideTime event shall be generated if the avatar is colliding with collidable geometry when the Collision node is read from a VRML file or inserted into the transformation hierarchy​. The bboxCenter and bboxSize fields specify a bounding box that encloses the Collision node's children​. This is a hint that may be used for optimization purposes​. The results are undefined if the specified bounding box is smaller than the actual bounding box of the children at any time​. A default bboxSize value, (-1, -1, -1), implies that the bounding box is not specified and if needed shall be calculated by the browser​. More details on the bboxCenter and bboxSize fields can be found in 4​.6​.4, Bounding boxes​. (http://www.web3d.org/documents/specifications/14772/V2.0/part1/concepts.html#4.6.4), The collision proxy, defined in the proxy field, is any legal children node as described in 4​.6​.5, Grouping and children nodes, (http://www.web3d.org/documents/specifications/14772/V2.0/part1/concepts.html#4.6.5), that is used as a substitute for the Collision node's children during collision detection​. The proxy is used strictly for collision detection; it is not drawn​. If the value of the collide field is TRUE and the proxy field is non-NULL, the proxy field defines the scene on which collision detection is performed​. If the proxy value is NULL, collision detection is performed against the children of the Collision node​. If proxy is specified, any descendent children of the Collision node are ignored during collision detection​. If children is empty, collide is TRUE, and proxy is specified, collision detection is performed against the proxy but nothing is displayed​. In this manner, invisible collision objects may be supported​. The collideTime eventOut generates an event specifying the time when the avatar (see SoVRMLNavigationInfo) makes contact with the collidable children or proxy of the Collision node​. An ideal implementation computes the exact time of collision​. Implementations may approximate the ideal by sampling the positions of collidable objects and the user​. The SoVRMLNavigationInfo node contains additional information for parameters that control the avatar size​.

Constructor & Destructor Documentation

SoVRMLCollision::SoVRMLCollision (void)Constructor​.

SoVRMLCollision::SoVRMLCollision (int numchildren)Constructor​. numchildren is the expected number of children​.

SoVRMLCollision::~SoVRMLCollision () [protected], [virtual]Destructor​.

Member Function Documentation

SoType SoVRMLCollision::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 SoVRMLGroup​.

const SoFieldData * SoVRMLCollision::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 SoVRMLGroup​.

void SoVRMLCollision::GLRender (SoGLRenderAction * action) [virtual]Action method for the SoGLRenderAction​. This is called during rendering traversals​. Nodes influencing the rendering state in any way or who wants to throw geometry primitives at OpenGL overrides this method​. Reimplemented from SoVRMLGroup​.

void SoVRMLCollision::notify (SoNotList * l) [virtual]Notifies all auditors for this instance when changes are made​. Reimplemented from SoVRMLGroup​.

Member Data Documentation

SoSFBool SoVRMLCollision::collideEnable/disable collision​.

SoSFNode SoVRMLCollision::proxyProxy node(s) used for collision testing​.

SoSFTime SoVRMLCollision::collideTimeAn eventOut sent for each collision that occurs​.

AuthorGenerated automatically by Doxygen for Coin from the source code​.
0
Johanes Gumabo
Data Size   :   27,265 byte
man-SoVRMLCollision.3coin4Build   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   3 / 191,449
Visitor ID   :     :  
Visitor IP   :   3.148.112.15   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.