MeVisLab Toolbox Reference
SoCSOFillingRenderer.h
Go to the documentation of this file.
1 /*************************************************************************************
2 **
3 ** Copyright 2012, MeVis Medical Solutions AG
4 **
5 ** The user may use this file in accordance with the license agreement provided with
6 ** the Software or, alternatively, in accordance with the terms contained in a
7 ** written agreement between the user and MeVis Medical Solutions AG.
8 **
9 ** For further information use the contact form at https://www.mevislab.de/contact
10 **
11 **************************************************************************************/
12 
13 #pragma once
14 
16 
18 
20 {
22  {
23  x = y = -1;
24  }
25  double x,y;
26 };
27 
29 
31 
33 
35 {
36  ZERO = GL_ZERO,
37  ONE = GL_ONE,
38  SRC_COLOR = GL_SRC_COLOR,
39  ONE_MINUS_SRC_COLOR = GL_ONE_MINUS_SRC_COLOR,
40  DST_COLOR = GL_DST_COLOR,
41  ONE_MINUS_DST_COLOR = GL_ONE_MINUS_DST_COLOR,
42  SRC_ALPHA = GL_SRC_ALPHA,
43  ONE_MINUS_SRC_ALPHA = GL_ONE_MINUS_SRC_ALPHA,
44  DST_ALPHA = GL_DST_ALPHA,
45  ONE_MINUS_DST_ALPHA = GL_ONE_MINUS_DST_ALPHA,
46  CONSTANT_COLOR = GL_CONSTANT_COLOR,
47  ONE_MINUS_CONSTANT_COLOR = GL_ONE_MINUS_CONSTANT_COLOR,
48  CONSTANT_ALPHA = GL_CONSTANT_ALPHA,
49  ONE_MINUS_CONSTANT_ALPHA = GL_ONE_MINUS_CONSTANT_ALPHA,
50  SRC_ALPHA_SATURATE = GL_SRC_ALPHA_SATURATE
51 };
52 
54 
56 {
61 };
62 
64 
67 {
68  SO_NODE_HEADER(SoCSOFillingRenderer);
69 
70 public:
71 
76 
78  void draw(const CSODrawCSOInfos& csoDrawInfos, const CSODrawView2DInfos& view2DInfos, const std::vector<CSODrawSliceInformation>& sliceInfos, SoView2DCSOExtensibleEditor* editor) override;
79 
82 
84  static void initClass();
85 
86  int cursorShape() const override { return SoViewerProxy::DEFAULT_CURSOR; }
87 
88  bool shouldRenderGeneral(ml::CSO*) const override { return false; }
89 
90  SoSFTypedEnum <HoleCorrectionMode> holeCorrectionMode;
92 
94  SoSFTypedEnum <FillingBlendFunc> srcBlendFunction;
95  SoSFTypedEnum <FillingBlendFunc> dstBlendFunction;
96  SoSFColor blendColor;
97  SoSFFloat blendAlpha;
98 
99 protected:
100 
101 private:
102  void getVisibleCSOs(const CSODrawCSOInfos& csoDrawInfos, const CSODrawView2DInfos& view2DInfos, const std::vector<CSODrawSliceInformation>& sliceInfos, std::vector < unsigned int >& visibleCSOIds);
103  void getGroupedCSOs(ml::CSOList* csoList, const std::vector <unsigned int>& visibleCSOIds, std::map < unsigned int, std::vector <std::pair <double, unsigned int> > >& groupedCSOs);
104  void deleteAdditionalVertices();
105 };
106 
FillingBlendFunc
@ CONSTANT_ALPHA
@ ONE_MINUS_CONSTANT_ALPHA
@ ONE_MINUS_SRC_ALPHA
@ DST_COLOR
@ SRC_ALPHA
@ ONE_MINUS_SRC_COLOR
@ SRC_COLOR
@ DST_ALPHA
@ CONSTANT_COLOR
@ ONE_MINUS_DST_COLOR
@ ONE_MINUS_DST_ALPHA
@ SRC_ALPHA_SATURATE
@ ONE_MINUS_CONSTANT_COLOR
HoleCorrectionMode
@ HoleCorrectionInGroups
@ HoleCorrectionByEmbedding
@ HoleCorrectionSingleCSOs
@ HoleCorrectionNone
#define SOCSO_EXPORT
Header file for system independent resolution.
Definition: SoCSOSystem.h:21
Extension for rendering filled (tessellated) CSOs.
void draw(const CSODrawCSOInfos &, const CSODrawView2DInfos &, const CSODrawSliceInformation &, SoView2DCSOExtensibleEditor *) override
Common drawing routine, not used.
SoSFTypedEnum< FillingBlendFunc > srcBlendFunction
bool shouldRenderGeneral(ml::CSO *) const override
Returns whether a given CSO should be rendered by this general extension.
SoSFTypedEnum< FillingBlendFunc > dstBlendFunction
int cursorShape() const override
Returns the cursor shape that indicates the next creation.
void draw(const CSODrawCSOInfos &csoDrawInfos, const CSODrawView2DInfos &view2DInfos, const std::vector< CSODrawSliceInformation > &sliceInfos, SoView2DCSOExtensibleEditor *editor) override
General drawing routine.
static void initClass()
init class in inventor runtime
~SoCSOFillingRenderer() override
Destructor.
SoCSOFillingRenderer()
Standard constructor.
SoSFTypedEnum< HoleCorrectionMode > holeCorrectionMode
Base class for extensions that render all CSOs of a CSOList.
A CSOList comprises a number of CSOs and CSOGroups and is the central object for contour segmentation...
Definition: CSOList.h:61
The CSO represents a contour segmentation object.
Definition: CSO.h:44