#ifndef  ENTITY_SDAILIGHT_SOURCE_SPOT_H
#define  ENTITY_SDAILIGHT_SOURCE_SPOT_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 SdaiLight_source_spot : public SdaiLight_source {
     protected:
        SDAI_Application_instance_ptr _position = NULL;
        SDAI_Application_instance_ptr _orientation = NULL;
        SDAI_Real _concentration_exponent = 0.0;
        SDAI_Real _constant_attenuation = 0.0;
        SDAI_Real _distance_attenuation = 0.0;
        SDAI_Real _spread_angle = 0.0;
    public: 
        SdaiLight_source_spot();
        SdaiLight_source_spot( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiLight_source_spot( SdaiLight_source_spot & e );
        ~SdaiLight_source_spot();
        int opcode() {
            return 459;
        }
        SdaiCartesian_point_ptr_c position_() const;
        SdaiCartesian_point_ptr   position_();
        void position_( const SdaiCartesian_point_ptr x );

        SdaiDirection_ptr_c orientation_() const;
        SdaiDirection_ptr   orientation_();
        void orientation_( const SdaiDirection_ptr x );

        SDAI_Real   concentration_exponent_() const;
        void concentration_exponent_( const SDAI_Real x );

        SDAI_Real   constant_attenuation_() const;
        void constant_attenuation_( const SDAI_Real x );

        SDAI_Real   distance_attenuation_() const;
        void distance_attenuation_( const SDAI_Real x );

        SdaiPositive_plane_angle_measure   spread_angle_() const;
        void spread_angle_( const SdaiPositive_plane_angle_measure x );

};

inline SdaiLight_source_spot * create_SdaiLight_source_spot() {
    return new SdaiLight_source_spot;
}

void init_SdaiLight_source_spot(Registry& reg);

namespace automotive_design {
    extern EntityDescriptor *e_light_source_spot;
    extern AttrDescriptor *a_649position;
    extern AttrDescriptor *a_650orientation;
    extern AttrDescriptor *a_651concentration_exponent;
    extern AttrDescriptor *a_652constant_attenuation;
    extern AttrDescriptor *a_653distance_attenuation;
    extern AttrDescriptor *a_654spread_angle;
}

#endif
