00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020 #ifndef SHPALETTENODE_HPP
00021 #define SHPALETTENODE_HPP
00022
00023 #include <cstddef>
00024 #include "ShVariableNode.hpp"
00025
00026 namespace SH {
00027
00037 class SH_DLLEXPORT ShPaletteNode : public ShVariableNode {
00038 public:
00039 ShPaletteNode(int elements, ShSemanticType semantic, ShValueType valueType, std::size_t length);
00040
00042 void set_node(std::size_t index, const ShVariableNodePtr& node);
00043
00045 std::size_t palette_length() const;
00046
00048 ShVariableNodeCPtr get_node(std::size_t index) const;
00049
00051 ShVariableNodePtr get_node(std::size_t index);
00052
00053 private:
00054 std::size_t m_length;
00055 ShVariableNodePtr* m_nodes;
00056 };
00057
00058 typedef ShPointer<ShPaletteNode> ShPaletteNodePtr;
00059 typedef ShPointer<const ShPaletteNode> ShPaletteNodeCPtr;
00060
00061 }
00062
00063 #endif