// ================================================================= //
//                                                                   //
//   File      : sec_bonddef.hxx                                     //
//   Purpose   :                                                     //
//                                                                   //
//   Coded by Ralf Westram (coder@reallysoft.de) in September 2007   //
//   Institute of Microbiology (Technical University Munich)         //
//   http://www.arb-home.de/                                         //
//                                                                   //
// ================================================================= //

#ifndef SEC_BONDDEF_HXX
#define SEC_BONDDEF_HXX

#ifndef ARBDB_H
#include <arbdb.h>
#endif

#ifndef AW_POSITION_HXX
#include <aw_position.hxx>
#endif

using namespace AW;

class AW_device;
class AW_root;
class AW_helix;

class SEC_bond_def {
    char edit4_to_secedit[256]; // symbol translation table
    const AW_helix *helix;

    GB_ERROR fill_translation_table(const char *from, const char *to);
    void paint_symbol(AW_device *device, int gc, char bond, const Position& p1, const Position& p2, const Vector& toNextBase, const double& char_radius) const;

public:

    SEC_bond_def(const AW_helix *helix_) : helix(helix_) {}

    GB_ERROR update_translation(AW_root *awr);
    void paint(AW_device *device, char base1, char base2, const Position& p1, const Position& p2, const Vector& toNextBase, const double& char_radius) const;
};


#else
#error sec_bonddef.hxx included twice
#endif // SEC_BONDDEF_HXX
