Coin Logo http://www.sim.no
http://www.coin3d.org

SoRayPickAction.h
1 #ifndef COIN_SORAYPICKACTION_H
2 #define COIN_SORAYPICKACTION_H
3 
4 /**************************************************************************\
5  *
6  * This file is part of the Coin 3D visualization library.
7  * Copyright (C) 1998-2007 by Systems in Motion. All rights reserved.
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License
11  * ("GPL") version 2 as published by the Free Software Foundation.
12  * See the file LICENSE.GPL at the root directory of this source
13  * distribution for additional information about the GNU GPL.
14  *
15  * For using Coin with software that can not be combined with the GNU
16  * GPL, and for taking advantage of the additional benefits of our
17  * support services, please contact Systems in Motion about acquiring
18  * a Coin Professional Edition License.
19  *
20  * See http://www.coin3d.org/ for more information.
21  *
22  * Systems in Motion, Postboks 1283, Pirsenteret, 7462 Trondheim, NORWAY.
23  * http://www.sim.no/ sales@sim.no coin-support@coin3d.org
24  *
25 \**************************************************************************/
26 
27 #include <Inventor/actions/SoPickAction.h>
28 
29 class SbBox3f;
30 class SbLine;
31 class SbMatrix;
32 class SbVec2f;
33 class SbVec2s;
34 class SbVec3f;
35 class SbViewVolume;
36 class SbViewportRegion;
37 class SoPickedPoint;
38 class SoPickedPointList;
39 
40 class COIN_DLL_API SoRayPickAction : public SoPickAction {
41  typedef SoPickAction inherited;
42 
43  SO_ACTION_HEADER(SoRayPickAction);
44 
45 public:
46  SoRayPickAction(const SbViewportRegion & viewportregion);
47  virtual ~SoRayPickAction();
48  static void initClass(void);
49 
50  void setPoint(const SbVec2s & viewportPoint);
51  void setNormalizedPoint(const SbVec2f & normpoint);
52  void setRadius(const float radiusinpixels);
53  void setRay(const SbVec3f & start, const SbVec3f & direction,
54  float neardistance = -1.0,
55  float fardistance = -1.0);
56  void setPickAll(const SbBool flag);
57  SbBool isPickAll(void) const;
58  const SoPickedPointList & getPickedPointList(void) const;
59  SoPickedPoint * getPickedPoint(const int index = 0) const;
60 
61 
62  void computeWorldSpaceRay(void);
63  SbBool hasWorldSpaceRay(void) const;
64  void setObjectSpace(void);
65  void setObjectSpace(const SbMatrix & matrix);
66  SbBool intersect(const SbVec3f & v0, const SbVec3f & v1, const SbVec3f & v2,
67  SbVec3f & intersection, SbVec3f & barycentric,
68  SbBool & front) const;
69  SbBool intersect(const SbVec3f & v0, const SbVec3f & v1,
70  SbVec3f & intersection) const;
71  SbBool intersect(const SbVec3f & point) const;
72  SbBool intersect(const SbBox3f & box, const SbBool usefullviewvolume = TRUE);
73  SbBool intersect(const SbBox3f & box, SbVec3f & intersection,
74  const SbBool usefullviewvolume = TRUE);
75  const SbViewVolume & getViewVolume(void);
76  const SbLine & getLine(void);
77  SbBool isBetweenPlanes(const SbVec3f & intersection) const;
78  SoPickedPoint * addIntersection(const SbVec3f & objectspacepoint);
79 
80  void reset(void);
81 
82 protected:
83  virtual void beginTraversal(SoNode * node);
84 
85 private:
86  class SoRayPickActionP * pimpl;
87 };
88 
89 #endif // !COIN_SORAYPICKACTION_H
SoRayPickAction::isPickAll
SbBool isPickAll(void) const
Definition: SoRayPickAction.cpp:402
SbRotation
The SbRotation class represents a rotation in 3D space.
Definition: SbRotation.h:33
SoState
The SoState class manages the Coin scenegraph traversal state data.
Definition: SoState.h:35
SoRayPickAction::reset
void reset(void)
Definition: SoRayPickAction.cpp:995
SoRayPickAction::getPickedPoint
SoPickedPoint * getPickedPoint(const int index=0) const
Definition: SoRayPickAction.cpp:451
SoRayPickAction::SoRayPickAction
SoRayPickAction(const SbViewportRegion &viewportregion)
Definition: SoRayPickAction.cpp:249
SbViewportRegion::getViewportSizePixels
const SbVec2s & getViewportSizePixels(void) const
Definition: SbViewportRegion.cpp:425
SbVec2f
The SbVec2f class is a 2 dimensional vector with floating point coordinates.
Definition: SbVec2f.h:36
SoState::pop
void pop(void)
Definition: SoState.cpp:284
SbMatrix
The SbMatrix class is a 4x4 dimensional representation of a matrix.
Definition: SbMatrix.h:37
SbViewVolume::projectPointToLine
void projectPointToLine(const SbVec2f &pt, SbLine &line) const
Definition: SbViewVolume.cpp:232
SbViewVolume::getWidth
float getWidth(void) const
Definition: SbViewVolume.cpp:631
SoRayPickAction::hasWorldSpaceRay
SbBool hasWorldSpaceRay(void) const
Definition: SoRayPickAction.cpp:545
SbVec3d::dot
double dot(const SbVec3d &v) const
Definition: SbVec3d.cpp:154
SbVec3d
The SbVec3d class is a 3 dimensional vector with double precision floating point coordinates.
Definition: SbVec3d.h:35
SoState::push
void push(void)
Definition: SoState.cpp:265
SbBox3f::getMin
const SbVec3f & getMin(void) const
Definition: SbBox3f.cpp:122
SoRayPickAction::computeWorldSpaceRay
void computeWorldSpaceRay(void)
Definition: SoRayPickAction.cpp:464
SoRayPickAction::~SoRayPickAction
virtual ~SoRayPickAction()
Definition: SoRayPickAction.cpp:263
SbBox3f
The SbBox3f class is an abstraction for an axis aligned 3 dimensional box.
Definition: SbBox3f.h:37
SoAction::getCurPath
const SoPath * getCurPath(void)
Definition: SoAction.cpp:1044
SoDebugError::postWarning
static void postWarning(const char *const source, const char *const format,...)
Definition: SoDebugError.cpp:324
SoAction
The SoAction class is the base class for all traversal actions.
Definition: SoAction.h:67
SbViewVolume::getProjectionDirection
const SbVec3f & getProjectionDirection(void) const
Definition: SbViewVolume.cpp:609
SoRayPickAction::setRay
void setRay(const SbVec3f &start, const SbVec3f &direction, float neardistance=-1.0, float fardistance=-1.0)
Definition: SoRayPickAction.cpp:327
SbViewVolume::getNearDist
float getNearDist(void) const
Definition: SbViewVolume.cpp:620
SbVec2s
The SbVec2s class is a 2 dimensional vector with short integer coordinates.
Definition: SbVec2s.h:37
SoRayPickAction::intersect
SbBool intersect(const SbVec3f &v0, const SbVec3f &v1, const SbVec3f &v2, SbVec3f &intersection, SbVec3f &barycentric, SbBool &front) const
Definition: SoRayPickAction.cpp:575
SoRayPickAction::setObjectSpace
void setObjectSpace(void)
Definition: SoRayPickAction.cpp:554
SoRayPickAction::addIntersection
SoPickedPoint * addIntersection(const SbVec3f &objectspacepoint)
Definition: SoRayPickAction.cpp:964
SbList< double >
SbBox3f::getMax
const SbVec3f & getMax(void) const
Definition: SbBox3f.cpp:134
SoPickedPointList
The SoPickedPointList class is a container for pointers to SoPickedPoint objects.
Definition: SoPickedPointList.h:31
SoRayPickAction::setRadius
void setRadius(const float radiusinpixels)
Definition: SoRayPickAction.cpp:314
SbDPMatrix
The SbDPMatrix class is a 4x4 dimensional representation of a double-precision matrix.
Definition: SbDPMatrix.h:38
SoRayPickAction::getLine
const SbLine & getLine(void)
Definition: SoRayPickAction.cpp:941
SbLine::getDirection
const SbVec3f & getDirection(void) const
Definition: SbLine.cpp:315
SbViewVolume::getProjectionType
ProjectionType getProjectionType(void) const
Definition: SbViewVolume.cpp:588
SoRayPickAction::setPoint
void setPoint(const SbVec2s &viewportPoint)
Definition: SoRayPickAction.cpp:278
SbVec3f::setValue
SbVec3f & setValue(const float v[3])
Definition: SbVec3f.cpp:461
SoAction::getState
SoState * getState(void) const
Definition: SoAction.cpp:1028
SbViewVolume::PERSPECTIVE
@ PERSPECTIVE
Definition: SbViewVolume.h:43
SbVec3f
The SbVec3f class is a 3 dimensional vector with floating point coordinates.
Definition: SbVec3f.h:37
SbViewVolume::narrow
SbViewVolume narrow(float left, float bottom, float right, float top) const
Definition: SbViewVolume.cpp:386
SbViewVolume::getDepth
float getDepth(void) const
Definition: SbViewVolume.cpp:654
SbViewportRegion
The SbViewportRegion class is a viewport within a full window.
Definition: SbViewportRegion.h:31
SbVec3d::cross
SbVec3d cross(const SbVec3d &v) const
Definition: SbVec3d.cpp:142
SbLine::getPosition
const SbVec3f & getPosition(void) const
Definition: SbLine.cpp:305
SoPickedPoint
The SoPickedPoint class is used for specifying picked points.
Definition: SoPickedPoint.h:39
SoRayPickAction::setNormalizedPoint
void setNormalizedPoint(const SbVec2f &normpoint)
Definition: SoRayPickAction.cpp:295
SoPickAction::vpRegion
SbViewportRegion vpRegion
Definition: SoPickAction.h:52
SbLine
The SbLine class represents a line in 3D space.
Definition: SbLine.h:32
SoRayPickAction::beginTraversal
virtual void beginTraversal(SoNode *node)
Definition: SoRayPickAction.cpp:1002
SbViewVolume
The SbViewVolume class is a viewing volume in 3D space.
Definition: SbViewVolume.h:41
SoOverrideElement
The SoOverrideElement maintains a list of overridable elements and a list over which elements should ...
Definition: SoOverrideElement.h:32
SoRayPickAction::getPickedPointList
const SoPickedPointList & getPickedPointList(void) const
Definition: SoRayPickAction.cpp:411
SoNode
The SoNode class is the base class for nodes used in scene graphs.
Definition: SoNode.h:47
SoRayPickAction::setPickAll
void setPickAll(const SbBool flag)
Definition: SoRayPickAction.cpp:389
SbVec3d::normalize
double normalize(void)
Definition: SbVec3d.cpp:266
SoRayPickAction
The SoRayPickAction class does ray intersection with scene graphs.
Definition: SoRayPickAction.h:40
SoPickAction::beginTraversal
virtual void beginTraversal(SoNode *node)
Definition: SoPickAction.cpp:120
SbViewVolume::getHeight
float getHeight(void) const
Definition: SbViewVolume.cpp:642
SoRayPickAction::getViewVolume
const SbViewVolume & getViewVolume(void)
Definition: SoRayPickAction.cpp:906
SbVec3d::setValue
SbVec3d & setValue(const double v[3])
Definition: SbVec3d.cpp:289
SoPickAction
The SoPickAction class is the base class for picking actions.
Definition: SoPickAction.h:32
SbViewportRegion::getViewportOriginPixels
const SbVec2s & getViewportOriginPixels(void) const
Definition: SbViewportRegion.cpp:398
SoRayPickAction::isBetweenPlanes
SbBool isBetweenPlanes(const SbVec3f &intersection) const
Definition: SoRayPickAction.cpp:950
SoAction::state
SoState * state
Definition: SoAction.h:132

Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.

Generated on Wed Jul 24 2019 for Coin by Doxygen. 1.8.17