#ifndef  ENTITY_SDAIIFCLIGHTSOURCEGONIOMETRIC_H
#define  ENTITY_SDAIIFCLIGHTSOURCEGONIOMETRIC_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 SdaiIfclightsourcegoniometric : public SdaiIfclightsource {
     protected:
        SDAI_Application_instance_ptr _position = NULL;
        SDAI_Application_instance_ptr _colourappearance = NULL;    //  OPTIONAL
        SDAI_Real _colourtemperature = 0.0;
        SDAI_Real _luminousflux = 0.0;
        SdaiIfclightemissionsourceenum_var _lightemissionsource;
        SdaiIfclightdistributiondatasourceselect _lightdistributiondatasource;
    public: 
        SdaiIfclightsourcegoniometric();
        SdaiIfclightsourcegoniometric( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfclightsourcegoniometric( SdaiIfclightsourcegoniometric & e );
        ~SdaiIfclightsourcegoniometric();
        int opcode() {
            return 745;
        }
        SdaiIfcaxis2placement3d_ptr_c position_() const;
        SdaiIfcaxis2placement3d_ptr   position_();
        void position_( const SdaiIfcaxis2placement3d_ptr x );

        SdaiIfccolourrgb_ptr_c colourappearance_() const;
        SdaiIfccolourrgb_ptr   colourappearance_();
        void colourappearance_( const SdaiIfccolourrgb_ptr x );

        SdaiIfcthermodynamictemperaturemeasure   colourtemperature_() const;
        void colourtemperature_( const SdaiIfcthermodynamictemperaturemeasure x );

        SdaiIfcluminousfluxmeasure   luminousflux_() const;
        void luminousflux_( const SdaiIfcluminousfluxmeasure x );

  const SdaiIfclightemissionsourceenum_var   lightemissionsource_() const;
        SdaiIfclightemissionsourceenum_var   lightemissionsource_();
        void lightemissionsource_( const SdaiIfclightemissionsourceenum_var x );

        SdaiIfclightdistributiondatasourceselect_ptr_c lightdistributiondatasource_() const;
        SdaiIfclightdistributiondatasourceselect_ptr   lightdistributiondatasource_();
        void lightdistributiondatasource_( const SdaiIfclightdistributiondatasourceselect_ptr x );

};

inline SdaiIfclightsourcegoniometric * create_SdaiIfclightsourcegoniometric() {
    return new SdaiIfclightsourcegoniometric;
}

void init_SdaiIfclightsourcegoniometric(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifclightsourcegoniometric;
    extern AttrDescriptor *a_1639position;
    extern AttrDescriptor *a_1640colourappearance;
    extern AttrDescriptor *a_1641colourtemperature;
    extern AttrDescriptor *a_1642luminousflux;
    extern AttrDescriptor *a_1643lightemissionsource;
    extern AttrDescriptor *a_1644lightdistributiondatasource;
}

#endif
