Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
SoObliqueSlice.h
Go to the documentation of this file.
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2023 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : P. ESTRADE (Mar 2000)
22**=======================================================================*/
23#ifndef _SO_OBLIQUE_SLICE_
24#define _SO_OBLIQUE_SLICE_
25
26#ifdef _MSC_VER
27#pragma warning( push )
28#pragma warning(disable:4251)
29#endif
30
38#include <Inventor/STL/vector>
41#include <LDM/SoLDM.h>
42
43class SoVolumeData;
44class SoCache;
45class SoLDMObliqueSliceGeom;
46
47class SoObliqueSliceLdm;
48class SoObliqueSliceInterface;
49class SoObliqueSlicePaging;
50class SoVolumeStateObliqueSlice;
52class SoCallback;
53
414class SoObliqueSlice : public SoSlice {
416
417 public:
418
431
436
441
442
443
444private:
448 void computeBBox(SoAction *, SbBox3f &box, SbVec3f &center);
449
454 virtual void write(SoWriteAction *action);
455
462 virtual SoNode* getAlternateRep( SoAction* action );
463
464 virtual void GLRender( SoGLRenderAction* action );
465
466private:
470 static void initClass();
471 static void exitClass();
472
479 virtual SoNode* createAlternateRep( SoAction *action );
480
484 virtual void notify(SoNotList *list);
485
486 bool m_backFace;
487
488private:
489
493 void setupSliceInterface();
494
498 void generatePrimitives(SoAction* action);
499
503 SoDetail* createTriangleDetail(SoRayPickAction*,
504 const SoPrimitiveVertex* v1,
505 const SoPrimitiveVertex*,
506 const SoPrimitiveVertex*,
508
512 void doRendering(SoGLRenderAction* action);
513
518 virtual SbBool readInstance(SoInput* in, unsigned short flags);
519
523 virtual ~SoObliqueSlice();
524
528 SbBool m_altRepCreatedHere;
529
530 SoObliqueSliceInterface* m_sliceInterface;
531 SoObliqueSliceLdm* m_sliceLdm;
532
533 SoVolumeStateObliqueSlice* m_vs;
534
535private:
536 SoCallback* m_preEltsCBNode;
537 SoCallback* m_postEltsCBNode;
538 int m_savedVertexOrdering;
539 int m_savedShapeType;
540 SoLDM::DataSetIdPair m_savedMasterIdPair;
541
542
543 friend class SoObliqueSliceLdm;
544};
545
546#ifdef _MSC_VER
547#pragma warning( pop )
548#endif
549
550#endif // _SO_OBLIQUE_SLICE_
551
#define SO_NODE_HEADER(className)
Definition SoSubNode.h:151
3D box class.
Definition SbBox.h:649
3D vector class.
Definition SbVec.h:932
Abstract base class for all actions.
Definition SoAction.h:132
Provides custom behavior during actions.
Definition SoCallback.h:437
Base class for describing detail information about a shape node.
Definition SoDetail.h:99
Renders a scene graph using Open Inventor's Render Engine.
Computes bounding box of a scene.
Used to read Open Inventor data files.
Definition SoInput.h:363
Abstract base class for all database nodes.
Definition SoNode.h:145
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Oblique slice shape n...
friend class SoObliqueSliceLdm
SoSFInt32 dataSetId
Specifies the SoVolumeData node to use.
SoSFPlane plane
Plane defining the slice.
SoObliqueSlice()
Constructor.
Represents point on surface of picked object.
Represents a vertex of a generated primitive.
Intersects objects with a ray cast into scene.
Field containing a int32_t integer.
Definition SoSFInt32.h:80
Field containing a plane equation.
Definition SoSFPlane.h:82
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Abstract base class f...
Definition SoSlice.h:62
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Volume data property ...
Writes a scene graph to a file.
int SbBool
Boolean type.
Definition SbBase.h:87
std::pair< SoDataSet *, int > DataSetIdPair
Pair containing an SoDataset and its dataSetId.
Definition SoLDM.h:71