// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _Vrml_Material_HeaderFile
#define _Vrml_Material_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_Vrml_Material.hxx>

#include <Handle_Quantity_HArray1OfColor.hxx>
#include <Handle_TColStd_HArray1OfReal.hxx>
#include <MMgt_TShared.hxx>
#include <Standard_OStream.hxx>
class Quantity_HArray1OfColor;
class TColStd_HArray1OfReal;


//! defines a Material node of VRML specifying properties of geometry
//! and its appearance.
//! This node defines the current surface material properties for all subsequent shapes.
//! Material sets several components of the current material during traversal. Different shapes
//! interpret materials with multiple values differently. To bind materials to shapes, use a
//! MaterialBinding node.
class Vrml_Material : public MMgt_TShared
{

public:

  
  Standard_EXPORT Vrml_Material(const Handle(Quantity_HArray1OfColor)& aAmbientColor, const Handle(Quantity_HArray1OfColor)& aDiffuseColor, const Handle(Quantity_HArray1OfColor)& aSpecularColor, const Handle(Quantity_HArray1OfColor)& aEmissiveColor, const Handle(TColStd_HArray1OfReal)& aShininess, const Handle(TColStd_HArray1OfReal)& aTransparency);
  
  Standard_EXPORT Vrml_Material();
  
  Standard_EXPORT   void SetAmbientColor (const Handle(Quantity_HArray1OfColor)& aAmbientColor) ;
  
  Standard_EXPORT   Handle(Quantity_HArray1OfColor) AmbientColor()  const;
  
  Standard_EXPORT   void SetDiffuseColor (const Handle(Quantity_HArray1OfColor)& aDiffuseColor) ;
  
  Standard_EXPORT   Handle(Quantity_HArray1OfColor) DiffuseColor()  const;
  
  Standard_EXPORT   void SetSpecularColor (const Handle(Quantity_HArray1OfColor)& aSpecularColor) ;
  
  Standard_EXPORT   Handle(Quantity_HArray1OfColor) SpecularColor()  const;
  
  Standard_EXPORT   void SetEmissiveColor (const Handle(Quantity_HArray1OfColor)& aEmissiveColor) ;
  
  Standard_EXPORT   Handle(Quantity_HArray1OfColor) EmissiveColor()  const;
  
  Standard_EXPORT   void SetShininess (const Handle(TColStd_HArray1OfReal)& aShininess) ;
  
  Standard_EXPORT   Handle(TColStd_HArray1OfReal) Shininess()  const;
  
  Standard_EXPORT   void SetTransparency (const Handle(TColStd_HArray1OfReal)& aTransparency) ;
  
  Standard_EXPORT   Handle(TColStd_HArray1OfReal) Transparency()  const;
  
  Standard_EXPORT   Standard_OStream& Print (Standard_OStream& anOStream)  const;




  DEFINE_STANDARD_RTTI(Vrml_Material)

protected:




private: 


  Handle(Quantity_HArray1OfColor) myAmbientColor;
  Handle(Quantity_HArray1OfColor) myDiffuseColor;
  Handle(Quantity_HArray1OfColor) mySpecularColor;
  Handle(Quantity_HArray1OfColor) myEmissiveColor;
  Handle(TColStd_HArray1OfReal) myShininess;
  Handle(TColStd_HArray1OfReal) myTransparency;


};







#endif // _Vrml_Material_HeaderFile
