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

NAMESoExtSelection − The SoExtSelection class can be used for extended selection functionality​.

SYNOPSIS
#include <Inventor/nodes/SoExtSelection​.h> Inherits SoSelection​.

Public Typesenum LassoType { NOLASSO, LASSO, RECTANGLE }
enum LassoPolicy { FULL_BBOX, PART_BBOX, FULL, PART }
enum LassoMode { ALL_SHAPES, VISIBLE_SHAPES }

Public Member Functionsvirtual SoType getTypeId (void) const
SoExtSelection (void)
void useOverlay (SbBool overlay=1)
SbBool isUsingOverlay (void)
SoSeparator * getOverlaySceneGraph (void)
void setOverlayLassoColorIndex (const int index)
int getOverlayLassoColorIndex (void)
void setLassoColor (const SbColor &color)
const SbColor & getLassoColor (void)
void setLassoWidth (const float width)
float getLassoWidth (void)
void setOverlayLassoPattern (const unsigned short pattern)
unsigned short getOverlayLassoPattern (void)
void animateOverlayLasso (const SbBool animate=1)
SbBool isOverlayLassoAnimated (void)
virtual void handleEvent (SoHandleEventAction *action)
virtual void GLRenderBelowPath (SoGLRenderAction *action)
void select (SoNode *root, int numcoords, SbVec2f *lasso, const SbViewportRegion &vp, SbBool shiftpolicy)
void select (SoNode *root, int numcoords, SbVec3f *lasso, const SbViewportRegion &vp, SbBool shiftkeypolicy)
const SbVec2s * getLassoCoordsDC (int &numCoords)
const SbVec3f * getLassoCoordsWC (int &numCoords)
const SoPathList & getSelectionPathList () const
void setLassoFilterCallback (SoLassoSelectionFilterCB *f, void *userdata=NULL, const SbBool callonlyifselectable=1)
void setTriangleFilterCallback (SoExtSelectionTriangleCB *func, void *userdata=NULL)
void setLineSegmentFilterCallback (SoExtSelectionLineSegmentCB *func, void *userdata=NULL)
void setPointFilterCallback (SoExtSelectionPointCB *func, void *userdata=NULL)
SbBool wasShiftDown (void) const

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

Public AttributesSoSFEnum lassoType
SoSFEnum lassoPolicy
SoSFEnum lassoMode

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

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

Friendsclass SoExtSelectionP

Additional Inherited Members

Detailed DescriptionThe SoExtSelection class can be used for extended selection functionality​. This class enables you to select geometry by specifying a lasso (a polygon) or a rectangle on screen​. When objects are selected, you'll receive the same callbacks as for the SoSelection node​. The application programmer interface of this class is somewhat complex, due to it's non-trivial functionality​. To see an extensive usage example of the SoExtSelection node, we advise you to go look at the 'extselection' example application in the 'nodes/' directory of Systems in Motion's SoGuiExamples CVS module​. Further information and links for downloading and building this module should be available at www​.coin3d​.org​. This node class is an extension versus the original SGI Inventor v2​.1 API​. It is based on the API of TGS Inventor's SoExtSelection, and we aim to be fully compatible with this node to enable users to switch between using Coin and TGS Inventor​. Please contact us if you find discrepancies between Coin's SoExtSelection and TGS's SoExtSelection node​. FILE FORMAT/DEFAULTS: ExtSelection { renderCaching AUTO boundingBoxCaching AUTO renderCulling AUTO pickCulling AUTO policy SHIFT lassoType NOLASSO lassoPolicy FULL_BBOX lassoMode ALL_SHAPES } Since TGS Inventor 2​.5 Coin 1​.0

Member Enumeration Documentation

enum SoExtSelection::LassoTypeEnum for type of lasso selection​. Enumerator NOLASSO  Makes this node behave like a normal SoSelection node​. LASSO  Select objects using a lasso​. Selections can be aborted by the end-user by hitting the END key on the keyboard​. RECTANGLE  Select objects using a rectangle​. Selections can be aborted by the end-user by hitting the END key on the keyboard​.

enum SoExtSelection::LassoPolicyEnum for specifying how objects are selected​. Enumerator FULL_BBOX  The entire bounding box must be inside the lasso/rectangle​. PART_BBOX  Some part of the bounding box must intersect the lasso/rectangle​. FULL  All primitives must be completely inside the lasso/rectangle​. PART  Some primitive must intersect the lasso/rectangle​.

enum SoExtSelection::LassoModeEnum for specifying selection mode​. Enumerator ALL_SHAPES  All primitives inside the lasso/rectangle will be selected​. VISIBLE_SHAPES  All visible primitives inside the lasso/rectangle will be selected​.

Constructor & Destructor Documentation

SoExtSelection::SoExtSelection (void)Constructor​. References ALL_SHAPES, FULL, FULL_BBOX, LASSO, lassoMode, lassoPolicy, lassoType, NOLASSO, PART, PART_BBOX, RECTANGLE, and VISIBLE_SHAPES​.

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

Member Function Documentation

SoType SoExtSelection::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 } else if (node->getTypeId()​.isOfType(SoGroup::getClassTypeId())) { SoGroup * group = (SoGroup *)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 SoSelection​.

const SoFieldData * SoExtSelection::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 SoSelection​.

void SoExtSelection::useOverlay (SbBool overlay = 1)Specifies whether the overlay planes should be used to render the lasso​. This method has been obsoleted in Coin, as most graphics cards comes without support for overlay rendering​. A better strategy is to just 'overlay' the lasso graphics on top of the scene after everything else has been rendered -- and this is the strategy we apply in Coin​.

SbBool SoExtSelection::isUsingOverlay (void)Returns whether overlay planes are used to draw the lasso​. See also useOverlay()​.

SoSeparator * SoExtSelection::getOverlaySceneGraph (void)Returns the scene graph for overlay rendering​. Will always return NULL in Coin, as this method has been obsoleted​. (It is probably used in TGS Inventor from the SoXt / SoWin libraries' So[Xt|Win]RenderArea class to fetch the overlay graph to draw, and as such should be treated as an internal method​.)

void SoExtSelection::setOverlayLassoColorIndex (const int index)Obsoleted in Coin, use SoExtSelection::setLassoColor() instead​.

int SoExtSelection::getOverlayLassoColorIndex (void)Obsoleted in Coin, use SoExtSelection::getLassoColor() instead​. See also setOverlayLassoColorIndex()​.

void SoExtSelection::setLassoColor (const SbColor & color)Sets the lasso/rectangle line color​. Default value is (1​.0, 1​.0, 1​.0)​.

const SbColor & SoExtSelection::getLassoColor (void)Returns the lasso color​.

void SoExtSelection::setLassoWidth (const float width)Sets the lasso line width​. Default value is 1​.0​.

float SoExtSelection::getLassoWidth (void)Returns the lasso line width​.

void SoExtSelection::setOverlayLassoPattern (const unsigned short pattern)Sets the lasso line pattern​. Default value is 0xf0f0​.

unsigned short SoExtSelection::getOverlayLassoPattern (void)Returns the lasso line pattern​.

void SoExtSelection::animateOverlayLasso (const SbBool animate = 1)Sets whether the lasso should be animated by scrolling the line pattern​.

SbBool SoExtSelection::isOverlayLassoAnimated (void)Returns whether the lasso is set to animate or not​.

void SoExtSelection::handleEvent (SoHandleEventAction * action) [virtual]Action method for SoHandleEventAction​. Inspects the event data from action, and processes it if it is something which this node should react to​. Nodes influencing relevant state variables for how event handling is done also overrides this method​. Reimplemented from SoSelection​. References SoHandleEventAction::getEvent(), SoSelection::handleEvent(), SoSeparator::handleEvent(), SoHandleEventAction::isHandled(), LASSO, lassoType, NOLASSO, RECTANGLE, SoBase::touch(), and SoEvent::wasShiftDown()​.

void SoExtSelection::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​. References SoGLRenderAction::addDelayedPath(), SoPath::copy(), SoAction::getCurPath(), SoAction::getState(), SbViewportRegion::getViewportOriginPixels(), SbViewportRegion::getViewportSizePixels(), SoSeparator::GLRenderBelowPath(), SoGLRenderAction::isRenderingDelayedPaths(), SoState::pop(), and SoState::push()​.

void SoExtSelection::select (SoNode * root, int numcoords, SbVec2f * lasso, const SbViewportRegion & vp, SbBool shiftpolicy)Simulate lasso selection programmatically​. This function is currently just stubbed​. Since Coin 2​.5

void SoExtSelection::select (SoNode * root, int numcoords, SbVec3f * lasso, const SbViewportRegion & vp, SbBool shiftpolicy)Simulate lasso selection programmatically​. This function is currently just stubbed​. Since Coin 2​.5

const SbVec2s * SoExtSelection::getLassoCoordsDC (int & numCoords)Returns lasso coordinates in device coordinates​. This function is currently just stubbed​. Since Coin 2​.5

const SbVec3f * SoExtSelection::getLassoCoordsWC (int & numCoords)Returns lasso coordinates in world coordinates​. This function is currently just stubbed​. Since Coin 2​.5

const SoPathList & SoExtSelection::getSelectionPathList (void) constReturns a pathlist containing selected objects​. This function is currently just stubbed​. Since Coin 2​.5

void SoExtSelection::setLassoFilterCallback (SoLassoSelectionFilterCB * f, void * userdata = NULL, const SbBool callonlyifselectable = 1)The lasso selection filter callback is called when a node is about to be selected, and enables the application programmer to return a new path to be used when selecting​. The new returned path should not be ref'd​. SoExtSelection will ref() and unref() it​. To cancel the selection, return NULL from the callback​. if callonlyifselectable is TRUE, the callback will only be invoked when the path to the new node pass through the SoExtSelection node​. This method is specific to Coin, and is not part of TGS OIV​.

void SoExtSelection::setTriangleFilterCallback (SoExtSelectionTriangleCB * func, void * userdata = NULL)Sets the callback that will be called for every triangle inside the lasso/rectangle when selecting​. The callback should return FALSE if it wants to continue being invoked​. When the callback returns TRUE, the object/shape is selected, and no more callbacks will be invoked for the object​. See also setLineSegmentFilterCallback, setPointFilterCallback

void SoExtSelection::setLineSegmentFilterCallback (SoExtSelectionLineSegmentCB * func, void * userdata = NULL)Sets the callback that will be called for every line segment inside the lasso/rectangle when selecting​. The callback should return FALSE if it wants to continue being invoked​. When the callback returns TRUE, the object/shape is selected, and no more callbacks will be invoked for the object​. See also setTriangleFilterCallback, setPointFilterCallback

void SoExtSelection::setPointFilterCallback (SoExtSelectionPointCB * func, void * userdata = NULL)Sets the callback that will be called for every point inside the lasso/rectangle when selecting​. The callback should return FALSE if it wants to continue being invoked​. When the user returns TRUE, the object/shape is selected, and no more callbacks will be invoked for the object​. See also setLineSegmentFilterCallback, setTriangleFilterCallback

SbBool SoExtSelection::wasShiftDown (void) constReturns whether the SHIFT key was pressed during the latest user interaction​. This is useful if you want to respect the shift policy while selecting primitives​. This method is specific to Coin, and is not part of TGS OIV​.

Member Data Documentation

SoSFEnum SoExtSelection::lassoTypeField for lasso type​. Default value is SoExtSelection::NOLASSO​. Selections with type SoExtSelection::RECTANGLE or SoExtSelection::LASSO can be aborted by the end-user by hitting the END key on the keyboard​. Referenced by handleEvent(), and SoExtSelection()​.

SoSFEnum SoExtSelection::lassoPolicyField for lasso policy​. Default value is FULL_BBOX​. Referenced by SoExtSelection()​.

SoSFEnum SoExtSelection::lassoModeField for lasso mode​. Default value is ALL_SHAPES​. Set this field to VISIBLE_SHAPES to make only the primitives visible from the current viewpoint be selected​. Referenced by SoExtSelection()​.

AuthorGenerated automatically by Doxygen for Coin from the source code​.
0
Johanes Gumabo
Data Size   :   67,708 byte
man-SoExtSelection.3coin2Build   :   2024-12-29, 07:25   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   5 / 259,281
Visitor ID   :     :  
Visitor IP   :   3.145.170.164   :  
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.29
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.