#ifndef  ENTITY_SDAIIFCSURFACESTYLERENDERING_H
#define  ENTITY_SDAIIFCSURFACESTYLERENDERING_H

// This file was generated by exp2cxx,
// 0.8.1.
// You probably don't want to edit it since your modifications
// will be lost if exp2cxx is used to regenerate it.

class SC_SCHEMA_EXPORT SdaiIfcsurfacestylerendering : public SdaiIfcsurfacestyleshading {
     protected:
        SDAI_Real _transparency = 0.0;    //  OPTIONAL
        SdaiIfccolourorfactor _diffusecolour;    //  OPTIONAL
        SdaiIfccolourorfactor _transmissioncolour;    //  OPTIONAL
        SdaiIfccolourorfactor _diffusetransmissioncolour;    //  OPTIONAL
        SdaiIfccolourorfactor _reflectioncolour;    //  OPTIONAL
        SdaiIfccolourorfactor _specularcolour;    //  OPTIONAL
        SdaiIfcspecularhighlightselect _specularhighlight;    //  OPTIONAL
        SdaiIfcreflectancemethodenum_var _reflectancemethod;
    public: 
        SdaiIfcsurfacestylerendering();
        SdaiIfcsurfacestylerendering( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcsurfacestylerendering( SdaiIfcsurfacestylerendering & e );
        ~SdaiIfcsurfacestylerendering();
        int opcode() {
            return 273;
        }
        SdaiIfcnormalisedratiomeasure   transparency_() const;
        void transparency_( const SdaiIfcnormalisedratiomeasure x );

        SdaiIfccolourorfactor_ptr_c diffusecolour_() const;
        SdaiIfccolourorfactor_ptr   diffusecolour_();
        void diffusecolour_( const SdaiIfccolourorfactor_ptr x );

        SdaiIfccolourorfactor_ptr_c transmissioncolour_() const;
        SdaiIfccolourorfactor_ptr   transmissioncolour_();
        void transmissioncolour_( const SdaiIfccolourorfactor_ptr x );

        SdaiIfccolourorfactor_ptr_c diffusetransmissioncolour_() const;
        SdaiIfccolourorfactor_ptr   diffusetransmissioncolour_();
        void diffusetransmissioncolour_( const SdaiIfccolourorfactor_ptr x );

        SdaiIfccolourorfactor_ptr_c reflectioncolour_() const;
        SdaiIfccolourorfactor_ptr   reflectioncolour_();
        void reflectioncolour_( const SdaiIfccolourorfactor_ptr x );

        SdaiIfccolourorfactor_ptr_c specularcolour_() const;
        SdaiIfccolourorfactor_ptr   specularcolour_();
        void specularcolour_( const SdaiIfccolourorfactor_ptr x );

        SdaiIfcspecularhighlightselect_ptr_c specularhighlight_() const;
        SdaiIfcspecularhighlightselect_ptr   specularhighlight_();
        void specularhighlight_( const SdaiIfcspecularhighlightselect_ptr x );

  const SdaiIfcreflectancemethodenum_var   reflectancemethod_() const;
        SdaiIfcreflectancemethodenum_var   reflectancemethod_();
        void reflectancemethod_( const SdaiIfcreflectancemethodenum_var x );

};

inline SdaiIfcsurfacestylerendering * create_SdaiIfcsurfacestylerendering() {
    return new SdaiIfcsurfacestylerendering;
}

void init_SdaiIfcsurfacestylerendering(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifcsurfacestylerendering;
    extern AttrDescriptor *a_605transparency;
    extern AttrDescriptor *a_606diffusecolour;
    extern AttrDescriptor *a_607transmissioncolour;
    extern AttrDescriptor *a_608diffusetransmissioncolour;
    extern AttrDescriptor *a_609reflectioncolour;
    extern AttrDescriptor *a_610specularcolour;
    extern AttrDescriptor *a_611specularhighlight;
    extern AttrDescriptor *a_612reflectancemethod;
}

#endif
