Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLShaderPropertyNode.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) Kitware Inc.
6
7 See COPYRIGHT.txt
8 or http://www.slicer.org/copyright/copyright.txt for details.
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15
16 This file was originally developed by Simon Drouin, Brigham and Women's
17 Hospital, Boston, MA.
18
19==============================================================================*/
22
23#ifndef __vtkMRMLShaderPropertyNode_h
24#define __vtkMRMLShaderPropertyNode_h
25
26// VolumeRendering includes
27#include "vtkSlicerVolumeRenderingModuleMRMLExport.h"
28
29// MRML includes
30#include "vtkMRMLStorableNode.h"
31
32// VTK includes
33class vtkShaderProperty;
34class vtkUniforms;
35
39class VTK_SLICER_VOLUMERENDERING_MODULE_MRML_EXPORT vtkMRMLShaderPropertyNode : public vtkMRMLStorableNode
40{
41public:
45 void PrintSelf(ostream& os, vtkIndent indent) override;
46
49 vtkGetObjectMacro(ShaderProperty, vtkShaderProperty);
50
52 vtkUniforms* GetVertexUniforms();
53 vtkUniforms* GetFragmentUniforms();
54 vtkUniforms* GetGeometryUniforms();
55
56 //--------------------------------------------------------------------------
57 // MRMLNode methods
58 //--------------------------------------------------------------------------
60
62 void ReadXMLAttributes(const char** atts) override;
63
65 void WriteXML(ostream& of, int indent) override;
66
70
72 const char* GetNodeTagName() override { return "ShaderProperty"; }
73
75 void ProcessMRMLEvents(vtkObject* caller, unsigned long event, void* callData) override;
76
79
81 bool GetModifiedSinceRead() override;
82
83protected:
86
87protected:
89 vtkIntArray* ObservedEvents;
90
92 vtkShaderProperty* ShaderProperty{ nullptr };
93
94private:
96 void operator=(const vtkMRMLShaderPropertyNode&) = delete;
97};
98
99#endif
vtkMRMLShaderPropertyNode volume shader custom code and custom uniform variables defined by users or ...
static vtkMRMLShaderPropertyNode * New()
Create a new vtkMRMLShaderPropertyNode.
vtkShaderProperty * ShaderProperty
Main parameters for visualization.
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
bool GetModifiedSinceRead() override
vtkMRMLNode * CreateNodeInstance() override
MRMLNode methods.
void PrintSelf(ostream &os, vtkIndent indent) override
void ReadXMLAttributes(const char **atts) override
Set node attributes.
vtkIntArray * ObservedEvents
Events observed on the transfer functions.
vtkUniforms * GetFragmentUniforms()
vtkUniforms * GetVertexUniforms()
Get the list of user-defined uniform variables.
vtkMRMLCopyContentMacro(vtkMRMLShaderPropertyNode)
vtkMRMLStorageNode * CreateDefaultStorageNode() override
Create default storage node or nullptr if does not have one.
void ProcessMRMLEvents(vtkObject *caller, unsigned long event, void *callData) override
Reimplemented for internal reasons.
vtkUniforms * GetGeometryUniforms()
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
~vtkMRMLShaderPropertyNode() override
void operator=(const vtkMRMLStorableNode &)
A superclass for other storage nodes.