2
* International Chemical Identifier (InChI)
4
* Software version 1.02-beta
8
* The InChI library and programs are free software developed under the
9
* auspices of the International Union of Pure and Applied Chemistry (IUPAC);
10
* you can redistribute this software and/or modify it under the terms of
11
* the GNU Lesser General Public License as published by the Free Software
13
* http://www.opensource.org/licenses/lgpl-license.php
17
#ifndef __INCHIDRP_H__
18
#define __INCHIDRP_H__
20
#ifndef INCHI_ANSI_ONLY /* { */
21
/********************************************
22
* Parameters for the structure drawing
23
********************************************/
24
#define TDP_LEN_LBL 16 /* length of a label (label: Req., Shown, Found) */
25
/* #define TDP_NUM_LBL 3 */ /* number of labels */
26
/* #define TDP_NUM_PAR 3 */ /* number of types per label (types: B/T, I/N, S) */
27
typedef enum tagTblTypes {itBASIC, itISOTOPIC, itSTEREO, TDP_NUM_PAR} TBL_TYPES; /* types */
28
typedef enum tagTblLabels{ ilSHOWN, TDP_NUM_LBL} TBL_LABELS; /* labels */
29
typedef struct tagTblDrawPatms {
30
char ReqShownFoundTxt[TDP_NUM_LBL][TDP_LEN_LBL];
31
char ReqShownFound[TDP_NUM_LBL][TDP_NUM_PAR];
32
int nOrientation; /* 10*degrees: 0 or 2700 */
35
/*********************************************/
36
typedef struct tagDrawParmsSettings {
38
unsigned long ulDisplTime;
41
} SET_DRAW_PARMS; /* input only: how to draw or calculate */
42
/*********************************************/
43
typedef struct tagReturnedDrawParms {
46
/*********************************************/
47
typedef struct tagPersistDrawParms {
49
} PER_DRAW_PARMS; /* saved between displaying different structures */
50
/*********************************************/
51
typedef struct tagDrawParms {
52
SET_DRAW_PARMS sdp; /* how to draw: fill on the 1st call */
53
RET_DRAW_PARMS rdp; /* returned when drawing window is closed */
54
PER_DRAW_PARMS *pdp; /* persistent: save between calls (window size) */
56
#ifndef INCHI_ANSI_ONLY
57
AT_NUMB *nEquLabels; /* num_inp_atoms elements, value>0 marks atoms in the set #value */
58
AT_NUMB nNumEquSets; /* max mark value */
59
AT_NUMB nCurEquLabel; /* current mark */
62
} DRAW_PARMS; /* Settings: How to draw the structure */
64
#endif /* } INCHI_ANSI_ONLY */
66
#if( ACD_LABS_VERSION == 1 )
67
#define MAX_NUM_PATHS 5
69
#define MAX_NUM_PATHS 4
72
typedef enum tagInputType { INPUT_NONE=0, INPUT_MOLFILE=1, INPUT_SDFILE=2, INPUT_INCHI_XML=3, INPUT_INCHI_PLAIN=4, INPUT_CMLFILE=5, INPUT_INCHI=6, INPUT_MAX } INPUT_TYPE;
73
typedef struct tagInputParms {
74
char szSdfDataHeader[MAX_SDF_HEADER+1];
79
#ifndef INCHI_ANSI_ONLY
87
ip->path[1] => Output (INChI)
89
ip->path[3] => Problem structures
90
ip->path[4] => Errors file (ACD)
93
const char *path[MAX_NUM_PATHS];
95
long first_struct_number;
96
long last_struct_number;
97
INPUT_TYPE nInputType;
101
int bINChIOutputOptions; /* !(ip->bINChIOutputOptions & INCHI_OUT_PLAIN_TEXT) */
104
int bDisplayEachComponentINChI;
106
long msec_MaxTime; /* was ulMaxTime; max time to run ProsessOneStructure */
109
long ulDisplTime; /* not used: max structure or question display time */
111
int bDisplayIfRestoreWarnings; /* InChI->Struct debug */
112
int bMergeAllInputStructures;
113
int bSaveWarningStructsAsProblem;
114
int bSaveAllGoodStructsAsProblem;
116
int bGetMolfileNumber; /* read molfile number from the name line like "Structure #22" */
117
int bCompareComponents; /* see flags CMP_COMPONENTS, etc. */
118
int bDisplayCompositeResults;
122
int bAllowEmptyStructure;
126
INCHI_MODE bTautFlags;
127
INCHI_MODE bTautFlagsDone;
129
#if( READ_INCHI_STRING == 1 )
130
int bReadInChIOptions;
133
/* post v.1 features */
134
#if( UNDERIVATIZE == 1 )
137
#if( RING2CHAIN == 1 )
140
#if ( RING2CHAIN == 1 || UNDERIVATIZE == 1 )
141
int bIngnoreUnchanged;
146
#endif /* __INCHIDRP_H__ */