/*
* International Union of Pure and Applied Chemistry (IUPAC)
* International Chemical Identifier (InChI)
* Version 1
* Software version 1.01
* July 21, 2006
* Developed at NIST
*/
#ifndef __INCHIDRP_H__
#define __INCHIDRP_H__
#ifndef INCHI_ANSI_ONLY /* { */
/********************************************
* Parameters for the structure drawing
********************************************/
#define TDP_LEN_LBL 16 /* length of a label (label: Req., Shown, Found) */
/* #define TDP_NUM_LBL 3 */ /* number of labels */
/* #define TDP_NUM_PAR 3 */ /* number of types per label (types: B/T, I/N, S) */
typedef enum tagTblTypes {itBASIC, itISOTOPIC, itSTEREO, TDP_NUM_PAR} TBL_TYPES; /* types */
typedef enum tagTblLabels{ ilSHOWN, TDP_NUM_LBL} TBL_LABELS; /* labels */
typedef struct tagTblDrawPatms {
char ReqShownFoundTxt[TDP_NUM_LBL][TDP_LEN_LBL];
char ReqShownFound[TDP_NUM_LBL][TDP_NUM_PAR];
int nOrientation; /* 10*degrees: 0 or 2700 */
int bDrawTbl;
} TBL_DRAW_PARMS;
/*********************************************/
typedef struct tagDrawParmsSettings {
TBL_DRAW_PARMS *tdp;
unsigned long ulDisplTime;
int bOrigAtom;
int nFontSize;
} SET_DRAW_PARMS; /* input only: how to draw or calculate */
/*********************************************/
typedef struct tagReturnedDrawParms {
int bEsc;
} RET_DRAW_PARMS;
/*********************************************/
typedef struct tagPersistDrawParms {
int rcPict[4];
} PER_DRAW_PARMS; /* saved between displaying different structures */
/*********************************************/
typedef struct tagDrawParms {
SET_DRAW_PARMS sdp; /* how to draw: fill on the 1st call */
RET_DRAW_PARMS rdp; /* returned when drawing window is closed */
PER_DRAW_PARMS *pdp; /* persistent: save between calls (window size) */
#ifndef INCHI_LIB
#ifndef INCHI_ANSI_ONLY
AT_NUMB *nEquLabels; /* num_inp_atoms elements, value>0 marks atoms in the set #value */
AT_NUMB nNumEquSets; /* max mark value */
AT_NUMB nCurEquLabel; /* current mark */
#endif
#endif
} DRAW_PARMS; /* Settings: How to draw the structure */
#endif /* } INCHI_ANSI_ONLY */
#if( ACD_LABS_VERSION == 1 )
#define MAX_NUM_PATHS 5
#else
#define MAX_NUM_PATHS 4
#endif
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;
typedef struct tagInputParms {
char szSdfDataHeader[MAX_SDF_HEADER+1];
char *pSdfLabel;
char *pSdfValue;
long lSdfId;
long lMolfileNumber;
#ifndef INCHI_ANSI_ONLY
DRAW_PARMS dp;
PER_DRAW_PARMS pdp;
TBL_DRAW_PARMS tdp;
#endif
/*
-- Files --
ip->path[0] => Input
ip->path[1] => Output (INChI)
ip->path[2] => Log
ip->path[3] => Problem structures
ip->path[4] => Errors file (ACD(
*/
const char *path[MAX_NUM_PATHS];
int num_paths;
long first_struct_number;
long last_struct_number;
INPUT_TYPE nInputType;
INCHI_MODE nMode;
int bAbcNumbers;
/*int bXml;*/
int bINChIOutputOptions; /* !(ip->bINChIOutputOptions & INCHI_OUT_PLAIN_TEXT) */
int bCtPredecessors;
int bXmlStarted;
int bDisplayEachComponentINChI;
long msec_MaxTime; /* was ulMaxTime; max time to run ProsessOneStructure */
long msec_LeftTime;
long ulDisplTime; /* not used: max structure or question display time */
int bDisplay;
int bDisplayIfRestoreWarnings; /* InChI->Struct debug */
int bMergeAllInputStructures;
int bSaveWarningStructsAsProblem;
int bSaveAllGoodStructsAsProblem;
int bGetSdfileId;
int bGetMolfileNumber; /* read molfile number from the name line like "Structure #22" */
int bCompareComponents; /* see flags CMP_COMPONENTS, etc. */
int bDisplayCompositeResults;
int bDoNotAddH;
int bNoStructLabels;
int bChiralFlag;
int bAllowEmptyStructure;
INCHI_MODE bTautFlags;
INCHI_MODE bTautFlagsDone;
#if( READ_INCHI_STRING == 1 )
int bReadInChIOptions;
#endif
} INPUT_PARMS;
#endif /* __INCHIDRP_H__ */
syntax highlighted by Code2HTML, v. 0.9.1