⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gldrawscale.hpp

📁 ncbi源码
💻 HPP
字号:
/* * =========================================================================== * PRODUCTION $Log: gldrawscale.hpp,v $ * PRODUCTION Revision 1000.1  2004/06/01 19:49:52  gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.7 * PRODUCTION * =========================================================================== */#ifndef GUI_OPENGL___GLDRAWSCALE__HPP#define GUI_OPENGL___GLDRAWSCALE__HPP/*  $Id: gldrawscale.hpp,v 1000.1 2004/06/01 19:49:52 gouriano Exp $* ===========================================================================**                            PUBLIC DOMAIN NOTICE*               National Center for Biotechnology Information**  This software/database is a "United States Government Work" under the*  terms of the United States Copyright Act.  It was written as part of*  the author's official duties as a United States Government employee and*  thus cannot be copyrighted.  This software/database is freely available*  to the public for use. The National Library of Medicine and the U.S.*  Government have not placed any restriction on its use or reproduction.**  Although all reasonable efforts have been taken to ensure the accuracy*  and reliability of the software and data, the NLM and the U.S.*  Government do not and cannot warrant the performance or results that*  may be obtained by using this software or data. The NLM and the U.S.*  Government disclaim all warranties, express or implied, including*  warranties of performance, merchantability or fitness for any particular*  purpose.**  Please cite the author in any work or product based on this material.** ===========================================================================** Author: Philip Johnson** File Description: 'gldrawscale' -- contains class to nicely draw a scale* on screen (ie. sequence coordinates).** ---------------------------------------------------------------------------*/#include <corelib/ncbistd.hpp>#include <gui/gui.hpp>/** @addtogroup GUI_OPENGL * * @{ */BEGIN_NCBI_SCOPEclass IGlFont;//class CGlDrawScale implements a routine to nicely draw a scale (numbers +//tickmarks) for a generic coordinate system.  Intervals between marked//numbers are normalized and, depending on the options supplied at//construction, the numbers are abbreviated using the SI symbols (ie, 'k'//== 10^3).class NCBI_GUIOPENGL_EXPORT CGlDrawScale {public:    class CCoordConverter {    public:        virtual ~CCoordConverter(void) {};        virtual int ToGl (int) const = 0;    };    enum EAbbrevType {        eNoAbbrev,        eCommas,        eUseSISymbols,        eUseScientificNotation    };    CGlDrawScale(IGlFont &font, EAbbrevType useAbbrev);    //PRE : conversion routine to be used when going from user coordinates    //to modelview coordinates    //POST: conversion routine set    void SetConverter(CCoordConverter *cc) {        m_CoordConverter = cc;    };    //PRE : width in pixels; left-most user coordinate, right-most user    //coordinate    //POST: if converter not set, scale drawn in the following box: left,    //-0.5, right, [font-height]; if it is set, scale drawn in: cnv(left),    //-0.5, cnv(right), [font-height]    void Draw(int width, int left, int right) const;private:    unsigned int x_Exp10(unsigned int x) const;    void x_Normalize(int &num) const;    string x_GenerateLabel(int num, EAbbrevType type) const;    unsigned int x_CalcMaxLabelSize(int left, int right,                                     EAbbrevType abbrev) const;    IGlFont &m_Font;    EAbbrevType m_UseAbbrev;    CCoordConverter *m_CoordConverter;    float m_MaxDigitWidth;    float m_MaxSIPrefixWidth;    static const char* sm_SISymbols;};END_NCBI_SCOPE/* @} *//*===========================================================================* $Log: gldrawscale.hpp,v $* Revision 1000.1  2004/06/01 19:49:52  gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.7** Revision 1.7  2004/05/11 18:54:22  dicuccio* Added doxygne modules info** Revision 1.6  2004/05/03 12:43:59  dicuccio* Added #include for gui/gui.hpp** Revision 1.5  2003/09/29 15:20:07  dicuccio* Deprecated gui/scope.hpp.  Merged gui/core/types.hpp into gui/types.hpp** Revision 1.4  2003/08/18 19:25:14  dicuccio* Changed CGlFont to IGlFont** Revision 1.3  2003/08/11 19:24:58  johnson* removed 1:1 correspondence between user coordinates & open gl world* coordinates (via CCoordConverter class); allow lefthand user coordinate to* be greater than righthand user coordinate** Revision 1.2  2003/07/16 20:57:04  johnson* protect against multiple inclusion** Revision 1.1  2003/07/01 15:44:16  johnson* initial revision** ===========================================================================*/#endif  // GUI_OPENGL___GLDRAWSCALE__HPP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -