#ifndef  ENTITY_SDAIMATCHED_MESH_CONNECTION_H
#define  ENTITY_SDAIMATCHED_MESH_CONNECTION_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 SdaiMatched_mesh_connection : public SdaiMesh_connectivity {
     protected:
        SDAI_Application_instance_ptr _mesh_connectivity_current = NULL;
        SDAI_Application_instance_ptr _range = NULL;
        SDAI_Application_instance_ptr _donor = NULL;
        SDAI_Application_instance_ptr _donor_range = NULL;
        IntAggregate_ptr _transform = NULL;
    public: 
        SdaiMatched_mesh_connection();
        SdaiMatched_mesh_connection( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiMatched_mesh_connection( SdaiMatched_mesh_connection & e );
        ~SdaiMatched_mesh_connection();
        int opcode() {
            return 1729;
        }
        SdaiStructured_mesh_ptr_c mesh_connectivity_current_() const;
        SdaiStructured_mesh_ptr   mesh_connectivity_current_();
        void mesh_connectivity_current_( const SdaiStructured_mesh_ptr x );

        SdaiIndices_range_ptr_c range_() const;
        SdaiIndices_range_ptr   range_();
        void range_( const SdaiIndices_range_ptr x );

        SdaiStructured_mesh_ptr_c donor_() const;
        SdaiStructured_mesh_ptr   donor_();
        void donor_( const SdaiStructured_mesh_ptr x );

        SdaiIndices_range_ptr_c donor_range_() const;
        SdaiIndices_range_ptr   donor_range_();
        void donor_range_( const SdaiIndices_range_ptr x );

        IntAggregate_ptr_c transform_() const;
        IntAggregate_ptr   transform_();
        void transform_( const IntAggregate_ptr x );

};

inline SdaiMatched_mesh_connection * create_SdaiMatched_mesh_connection() {
    return new SdaiMatched_mesh_connection;
}

void init_SdaiMatched_mesh_connection(Registry& reg);

namespace ap209_multidisciplinary_analysis_and_design_mim_lf {
    extern EntityDescriptor *e_matched_mesh_connection;
    extern AttrDescriptor *a_2604Rmesh_connectivity_current;
    extern AttrDescriptor *a_2605range;
    extern AttrDescriptor *a_2606donor;
    extern AttrDescriptor *a_2607donor_range;
    extern AttrDescriptor *a_2608transform;
}

inline SDAI_Integer getBound2_SdaiMatched_mesh_connection__transform( SDAI_Application_instance* this_ptr ) {
    SdaiMatched_mesh_connection * ths = (SdaiMatched_mesh_connection *) this_ptr;
    ths->ResetAttributes();
    STEPattribute * a = ths->NextAttribute();
    while( strcmp( a->Name(), "index_count" ) != 0 ) {
        a = ths->NextAttribute();
        if( !a ) {
            break;
        }
    }
    assert( a->NonRefType() == INTEGER_TYPE && "Error in schema or in exp2cxx at /build/stepcode/src/stepcode-0.8.2/src/exp2cxx/classes_type.c:1369 (incorrect assumption of integer type?) Please report error to STEPcode: scl-dev at groups.google.com." );
    return *( a->Integer() );
}
#endif
