text: //
  // TM & (c) 2017 Lucasfilm Entertainment Company Ltd. and Lucasfilm Ltd.
  // All rights reserved.  See LICENSE.txt for license.
  //
  
  #ifndef MATERIALX_SWIZZLENODE_H
  #define MATERIALX_SWIZZLENODE_H
  
  #include <MaterialXGenShader/ShaderNodeImpl.h>
  
  MATERIALX_NAMESPACE_BEGIN
  
  /// Swizzle node implementation
  class MX_GENSHADER_API SwizzleNode : public ShaderNodeImpl
  {
    public:
      static ShaderNodeImplPtr create();
  
      void emitFunctionCall(const ShaderNode& node, GenContext& context, ShaderStage& stage) const override;
  
      /// Returns true if the input is editable by users.
      /// Editable inputs are allowed to be published as shader uniforms
      /// and hence must be presentable in a user interface.
      bool isEditable(const ShaderInput& input) const override;
  };
  
  MATERIALX_NAMESPACE_END
  
  #endif
  