#ifndef  ENTITY_SDAIMECHANISM_H
#define  ENTITY_SDAIMECHANISM_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 SdaiMechanism : public SDAI_Application_instance {
    protected:
        SDAI_Application_instance_ptr _structure_definition = NULL;
        SDAI_Application_instance_ptr _base = NULL;
        SDAI_Application_instance_ptr _containing_property = NULL;
    public: 
        SdaiMechanism();
        SdaiMechanism( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiMechanism( SdaiMechanism & e );
        ~SdaiMechanism();
        int opcode() {
            return 580;
        }
        SdaiKinematic_structure_ptr_c structure_definition_() const;
        SdaiKinematic_structure_ptr   structure_definition_();
        void structure_definition_( const SdaiKinematic_structure_ptr x );

        SdaiKinematic_link_ptr_c base_() const;
        SdaiKinematic_link_ptr   base_();
        void base_( const SdaiKinematic_link_ptr x );

        SdaiKinematic_property_definition_ptr_c containing_property_() const;
        SdaiKinematic_property_definition_ptr   containing_property_();
        void containing_property_( const SdaiKinematic_property_definition_ptr x );

};

inline SdaiMechanism * create_SdaiMechanism() {
    return new SdaiMechanism;
}

void init_SdaiMechanism(Registry& reg);

namespace automotive_design {
    extern EntityDescriptor *e_mechanism;
    extern AttrDescriptor *a_801structure_definition;
    extern AttrDescriptor *a_802base;
    extern AttrDescriptor *a_803containing_property;
}

#endif
