1 /* @include ensprojectionsegment ********************************************** 2 ** 3 ** Ensembl Projection Segment functions 4 ** 5 ** @author Copyright (C) 1999 Ensembl Developers 6 ** @author Copyright (C) 2006 Michael K. Schuster 7 ** @version $Revision: 1.9 $ 8 ** @modified 2009 by Alan Bleasby for incorporation into EMBOSS core 9 ** @modified $Date: 2012/02/04 10:30:24 $ by $Author: mks $ 10 ** @@ 11 ** 12 ** This library is free software; you can redistribute it and/or 13 ** modify it under the terms of the GNU Lesser General Public 14 ** License as published by the Free Software Foundation; either 15 ** version 2.1 of the License, or (at your option) any later version. 16 ** 17 ** This library is distributed in the hope that it will be useful, 18 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 19 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20 ** Lesser General Public License for more details. 21 ** 22 ** You should have received a copy of the GNU Lesser General Public 23 ** License along with this library; if not, write to the Free Software 24 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 25 ** MA 02110-1301, USA. 26 ** 27 ******************************************************************************/ 28 29 #ifndef ENSPROJECTIONSEGMENT_H 30 #define ENSPROJECTIONSEGMENT_H 31 32 /* ========================================================================= */ 33 /* ============================= include files ============================= */ 34 /* ========================================================================= */ 35 36 #include "ensslice.h" 37 38 AJ_BEGIN_DECLS 39 40 41 42 43 /* ========================================================================= */ 44 /* =============================== constants =============================== */ 45 /* ========================================================================= */ 46 47 48 49 50 /* ========================================================================= */ 51 /* ============================== public data ============================== */ 52 /* ========================================================================= */ 53 54 /* @data EnsPProjectionsegment ************************************************ 55 ** 56 ** Ensembl Projection Segment 57 ** 58 ** @alias EnsSProjectionsegment 59 ** @alias EnsOProjectionsegment 60 ** 61 ** @attr SourceStart [ajuint] Source start coordinate 62 ** @attr SourceEnd [ajuint] Source end coordinate 63 ** @attr TargetSlice [EnsPSlice] Target Ensembl Slice 64 ** @attr Use [ajuint] Use counter 65 ** @attr Padding [ajuint] Padding to alignment boundary 66 ** @@ 67 ******************************************************************************/ 68 69 typedef struct EnsSProjectionsegment 70 { 71 ajuint SourceStart; 72 ajuint SourceEnd; 73 EnsPSlice TargetSlice; 74 ajuint Use; 75 ajuint Padding; 76 } EnsOProjectionsegment; 77 78 #define EnsPProjectionsegment EnsOProjectionsegment* 79 80 81 82 83 /* ========================================================================= */ 84 /* =========================== public functions ============================ */ 85 /* ========================================================================= */ 86 87 /* 88 ** Prototype definitions 89 */ 90 91 EnsPProjectionsegment ensProjectionsegmentNewCpy( 92 const EnsPProjectionsegment ps); 93 94 EnsPProjectionsegment ensProjectionsegmentNewIni(ajuint srcstart, 95 ajuint srcend, 96 EnsPSlice trgslice); 97 98 EnsPProjectionsegment ensProjectionsegmentNewRef(EnsPProjectionsegment ps); 99 100 void ensProjectionsegmentDel(EnsPProjectionsegment *Pps); 101 102 ajuint ensProjectionsegmentGetSourceStart(const EnsPProjectionsegment ps); 103 104 ajuint ensProjectionsegmentGetSourceEnd(const EnsPProjectionsegment ps); 105 106 EnsPSlice ensProjectionsegmentGetTargetSlice(const EnsPProjectionsegment ps); 107 108 AjBool ensProjectionsegmentTrace(const EnsPProjectionsegment ps, ajuint level); 109 110 size_t ensProjectionsegmentCalculateMemsize(const EnsPProjectionsegment ps); 111 112 /* 113 ** End of prototype definitions 114 */ 115 116 117 118 119 AJ_END_DECLS 120 121 #endif /* !ENSPROJECTIONSEGMENT_H */ 122