1 /*  objres.h
2 * ===========================================================================
3 *
4 *                            PUBLIC DOMAIN NOTICE
5 *               National Center for Biotechnology Information
6 *
7 *  This software/database is a "United States Government Work" under the
8 *  terms of the United States Copyright Act.  It was written as part of
9 *  the author's official duties as a United States Government employee and
10 *  thus cannot be copyrighted.  This software/database is freely available
11 *  to the public for use. The National Library of Medicine and the U.S.
12 *  Government have not placed any restriction on its use or reproduction.
13 *
14 *  Although all reasonable efforts have been taken to ensure the accuracy
15 *  and reliability of the software and data, the NLM and the U.S.
16 *  Government do not and cannot warrant the performance or results that
17 *  may be obtained by using this software or data. The NLM and the U.S.
18 *  Government disclaim all warranties, express or implied, including
19 *  warranties of performance, merchantability or fitness for any particular
20 *  purpose.
21 *
22 *  Please cite the author in any work or product based on this material.
23 *
24 * ===========================================================================
25 *
26 * File Name:  objres.h
27 *
28 * Author:  James Ostell
29 *
30 * Version Creation Date: 4/1/91
31 *
32 * $Revision: 6.3 $
33 *
34 * File Description:  Object manager interface for module NCBI-Seqres
35 *
36 * Modifications:
37 * --------------------------------------------------------------------------
38 * Date	   Name        Description of modification
39 * -------  ----------  -----------------------------------------------------
40 *
41 *
42 * $Log: objres.h,v $
43 * Revision 6.3  1999/09/27 17:48:38  kans
44 * using GatherIndex structure
45 *
46 * Revision 6.2  1999/09/24 23:09:23  kans
47 * adds EXTRA_OBJMGR_FIELDS to several objects
48 *
49 * Revision 6.1  1998/12/09 20:37:53  kans
50 * changed compl to compr to avoid new c++ symbol collision
51 *
52 * Revision 6.0  1997/08/25 18:50:41  madden
53 * Revision changed to 6.0
54 *
55 * Revision 4.1  1997/06/19 18:41:54  vakatov
56 * [WIN32,MSVC++]  Adopted for the "NCBIOBJ.LIB" DLL'ization
57 *
58 * Revision 4.0  1995/07/26 13:48:06  ostell
59 * force revision to 4.0
60 *
61  * Revision 3.2  1995/05/15  21:22:00  ostell
62  * added Log line
63  *
64 *
65 *
66 * ==========================================================================
67 */
68 
69 #ifndef _NCBI_Seqres_
70 #define _NCBI_Seqres_
71 
72 #ifndef _ASNTOOL_
73 #include <asn.h>
74 #endif
75 #ifndef _NCBI_Seqloc_
76 #include <objloc.h>
77 #endif
78 
79 #undef NLM_EXTERN
80 #ifdef NLM_IMPORT
81 #define NLM_EXTERN NLM_IMPORT
82 #else
83 #define NLM_EXTERN extern
84 #endif
85 
86 #ifdef __cplusplus
87 extern "C" {
88 #endif
89 
90 /*****************************************************************************
91 *
92 *   loader
93 *
94 *****************************************************************************/
95 NLM_EXTERN Boolean LIBCALL SeqResAsnLoad PROTO((void));
96 
97 /*****************************************************************************
98 *
99 *   internal structures for NCBI-SeqRes objects
100 *
101 *****************************************************************************/
102 
103 /*****************************************************************************
104 *
105 *   SeqGraph
106 *
107 *****************************************************************************/
108 typedef struct seqgraph {
109     CharPtr title,
110         comment;
111     SeqLocPtr loc;     /* SeqLoc */
112     CharPtr titlex,
113         titley;
114     Uint1 flags[3];   /* [0]-comp used?,[1]-a,b used?, [2] graphtype */
115     Int4 compr;                       /* 1=real, 2=int, 3=byte */
116     FloatHi a, b;
117     Int4 numval;
118     DataVal max,
119         min,
120         axis;
121     Pointer values;  /* real=array of FloatHi, int=array of Int4, */
122     struct seqgraph PNTR next;              /* byte = ByteStore */
123 	GatherIndex idx;      /* internal gather/objmgr tracking fields */
124 } SeqGraph, PNTR SeqGraphPtr;
125 
126 NLM_EXTERN SeqGraphPtr LIBCALL SeqGraphNew PROTO((void));
127 NLM_EXTERN Boolean     LIBCALL SeqGraphAsnWrite PROTO((SeqGraphPtr sgp, AsnIoPtr aip, AsnTypePtr atp));
128 NLM_EXTERN SeqGraphPtr LIBCALL SeqGraphAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp));
129 NLM_EXTERN SeqGraphPtr LIBCALL SeqGraphFree PROTO((SeqGraphPtr sgp));
130 NLM_EXTERN Int2 LIBCALL SeqGraphLabel PROTO((SeqGraphPtr sgp, CharPtr buffer, Int2 buflen, Uint1 content));
131 
132 /*****************************************************************************
133 *
134 *   SeqGraphSet
135 *
136 *****************************************************************************/
137 NLM_EXTERN Boolean     LIBCALL SeqGraphSetAsnWrite PROTO((SeqGraphPtr sgp, AsnIoPtr aip, AsnTypePtr set, AsnTypePtr element));
138 NLM_EXTERN SeqGraphPtr LIBCALL SeqGraphSetAsnRead PROTO((AsnIoPtr aip, AsnTypePtr set, AsnTypePtr element));
139 
140 #ifdef __cplusplus
141 }
142 #endif
143 
144 #undef NLM_EXTERN
145 #ifdef NLM_EXPORT
146 #define NLM_EXTERN NLM_EXPORT
147 #else
148 #define NLM_EXTERN
149 #endif
150 
151 #endif
152