From e55d0bf18d8570b86a7a0390106f5aa92139d30c Mon Sep 17 00:00:00 2001 From: edgrif <edgrif> Date: Thu, 16 Aug 2007 15:48:52 +0000 Subject: [PATCH] add a 'default's style + a current style to allowing default bumping at any time. --- src/include/ZMap/zmapStyle.h | 8 ++- src/zmapFeature/zmapFeatureTypes.c | 78 +++++++++++++++++++----------- src/zmapFeature/zmapStyle_P.h | 7 +-- 3 files changed, 59 insertions(+), 34 deletions(-) diff --git a/src/include/ZMap/zmapStyle.h b/src/include/ZMap/zmapStyle.h index 051f90561..1f0d8d0f4 100755 --- a/src/include/ZMap/zmapStyle.h +++ b/src/include/ZMap/zmapStyle.h @@ -26,9 +26,9 @@ * Description: Style and Style set handling functions. * * HISTORY: - * Last edited: Jun 19 13:52 2007 (edgrif) + * Last edited: Aug 15 17:59 2007 (edgrif) * Created: Mon Feb 26 09:28:26 2007 (edgrif) - * CVS info: $Id: zmapStyle.h,v 1.8 2007-06-21 12:26:45 edgrif Exp $ + * CVS info: $Id: zmapStyle.h,v 1.9 2007-08-16 15:48:52 edgrif Exp $ *------------------------------------------------------------------- */ #ifndef ZMAP_STYLE_H @@ -289,9 +289,13 @@ GQuark zMapStyleGetID(ZMapFeatureTypeStyle style) ; void zMapFeatureTypeDestroy(ZMapFeatureTypeStyle type) ; ZMapFeatureTypeStyle zMapStyleGetPredefined(char *style_name) ; gboolean zMapFeatureTypeSetAugment(GData **current, GData **new) ; + +void zMapStyleInitOverlapMode(ZMapFeatureTypeStyle style, + ZMapStyleOverlapMode default_overlap_mode, ZMapStyleOverlapMode curr_overlap_mode) ; void zMapStyleSetBump(ZMapFeatureTypeStyle type, char *bump) ; ZMapStyleOverlapMode zMapStyleGetOverlapMode(ZMapFeatureTypeStyle style) ; void zMapStyleSetOverlapMode(ZMapFeatureTypeStyle style, ZMapStyleOverlapMode overlap_mode) ; +ZMapStyleOverlapMode zMapStyleResetOverlapMode(ZMapFeatureTypeStyle style) ; ZMapFeatureTypeStyle zMapFeatureStyleCopy(ZMapFeatureTypeStyle style) ; gboolean zMapStyleMerge(ZMapFeatureTypeStyle curr_style, ZMapFeatureTypeStyle new_style) ; diff --git a/src/zmapFeature/zmapFeatureTypes.c b/src/zmapFeature/zmapFeatureTypes.c index 98fd239f3..2fe095aa6 100755 --- a/src/zmapFeature/zmapFeatureTypes.c +++ b/src/zmapFeature/zmapFeatureTypes.c @@ -27,9 +27,9 @@ * * Exported functions: See ZMap/zmapFeature.h * HISTORY: - * Last edited: Jun 19 13:06 2007 (edgrif) + * Last edited: Aug 15 18:06 2007 (edgrif) * Created: Tue Dec 14 13:15:11 2004 (edgrif) - * CVS info: $Id: zmapFeatureTypes.c,v 1.53 2007-06-21 12:20:43 edgrif Exp $ + * CVS info: $Id: zmapFeatureTypes.c,v 1.54 2007-08-16 15:48:52 edgrif Exp $ *------------------------------------------------------------------- */ @@ -282,22 +282,6 @@ ZMapFeatureTypeStyle zMapFeatureTypeCreate(char *name, char *description) new_type->min_mag = new_type->max_mag = 0.0 ; - -#ifdef ED_G_NEVER_INCLUDE_THIS_CODE - /* By default we always parse homology gaps, important for stuff like passing this - * information to blixem. */ - new_type->opts.parse_gaps = TRUE ; -#endif /* ED_G_NEVER_INCLUDE_THIS_CODE */ - - - /* I don't really want to do this but need to just to get stuff up and running.... */ - new_type->overlap_mode = ZMAPOVERLAP_COMPLETE ; -#ifdef ED_G_NEVER_INCLUDE_THIS_CODE - new_type->fields_set.overlap_mode = TRUE ; -#endif /* ED_G_NEVER_INCLUDE_THIS_CODE */ - - new_type->opts.hidden_always = new_type->opts.hidden_init = FALSE ; - return new_type ; } @@ -402,7 +386,8 @@ gboolean zMapStyleMerge(ZMapFeatureTypeStyle curr_style, ZMapFeatureTypeStyle ne if (new_style->fields_set.overlap_mode) { - curr_style->overlap_mode = new_style->overlap_mode ; + curr_style->default_overlap_mode = new_style->default_overlap_mode ; + curr_style->curr_overlap_mode = new_style->curr_overlap_mode ; curr_style->fields_set.overlap_mode = TRUE ; } @@ -504,7 +489,11 @@ void zMapStylePrint(ZMapFeatureTypeStyle style, char *prefix) printf("\tMax mag: %g\n", style->max_mag) ; if (style->fields_set.overlap_mode) - printf("\tOverlap mode: %s\n", style_overlapmode_str_G[style->mode]) ; + { + printf("\tDefault overlap mode: %s\n", style_overlapmode_str_G[style->default_overlap_mode]) ; + + printf("\tCurrent overlap mode: %s\n", style_overlapmode_str_G[style->curr_overlap_mode]) ; + } if (style->fields_set.bump_spacing) printf("\tBump width: %g\n", style->bump_spacing) ; @@ -513,7 +502,7 @@ void zMapStylePrint(ZMapFeatureTypeStyle style, char *prefix) printf("\tWidth: %g\n", style->width) ; if (style->fields_set.score_mode) - printf("Score mode: %s\n", style_scoremode_str_G[style->mode]) ; + printf("Score mode: %s\n", style_scoremode_str_G[style->score_mode]) ; if (style->fields_set.min_score) printf("\tMin score: %g\n", style->min_score) ; @@ -814,8 +803,6 @@ void zMapStyleSetBump(ZMapFeatureTypeStyle style, char *bump_str) { ZMapStyleOverlapMode bump = ZMAPOVERLAP_COMPLETE ; - zMapAssert(style) ; - if (bump_str && *bump_str) { if (g_ascii_strcasecmp(bump_str, "complete") == 0) @@ -836,21 +823,54 @@ void zMapStyleSetBump(ZMapFeatureTypeStyle style, char *bump_str) bump = ZMAPOVERLAP_SIMPLE ; } - style->overlap_mode = bump ; - style->fields_set.overlap_mode = TRUE ; + zMapStyleSetOverlapMode(style, bump) ; return ; } - void zMapStyleSetOverlapMode(ZMapFeatureTypeStyle style, ZMapStyleOverlapMode overlap_mode) { - zMapAssert(overlap_mode > ZMAPOVERLAP_START && overlap_mode < ZMAPOVERLAP_END) ; + zMapAssert(style && (overlap_mode > ZMAPOVERLAP_START && overlap_mode < ZMAPOVERLAP_END)) ; + + if (!style->fields_set.overlap_mode) + { + style->fields_set.overlap_mode = TRUE ; + + style->default_overlap_mode = overlap_mode ; + } + + style->curr_overlap_mode = overlap_mode ; + + return ; +} + + +/* Reset overlap mode to default and returns the default mode. */ +ZMapStyleOverlapMode zMapStyleResetOverlapMode(ZMapFeatureTypeStyle style) +{ + zMapAssert(style && style->fields_set.overlap_mode) ; + + style->curr_overlap_mode = style->default_overlap_mode ; + + return style->curr_overlap_mode ; +} + + +/* Re/init overlap mode. */ +void zMapStyleInitOverlapMode(ZMapFeatureTypeStyle style, + ZMapStyleOverlapMode default_overlap_mode, ZMapStyleOverlapMode curr_overlap_mode) +{ + zMapAssert(style + && (default_overlap_mode > ZMAPOVERLAP_START && default_overlap_mode < ZMAPOVERLAP_END) + && (curr_overlap_mode > ZMAPOVERLAP_START && curr_overlap_mode < ZMAPOVERLAP_END)) ; - style->overlap_mode = overlap_mode ; style->fields_set.overlap_mode = TRUE ; + style->default_overlap_mode = default_overlap_mode ; + + style->curr_overlap_mode = curr_overlap_mode ; + return ; } @@ -861,7 +881,7 @@ ZMapStyleOverlapMode zMapStyleGetOverlapMode(ZMapFeatureTypeStyle style) zMapAssert(style) ; - mode = style->overlap_mode ; + mode = style->curr_overlap_mode ; return mode; } diff --git a/src/zmapFeature/zmapStyle_P.h b/src/zmapFeature/zmapStyle_P.h index 2001e1dea..1a5e2101d 100755 --- a/src/zmapFeature/zmapStyle_P.h +++ b/src/zmapFeature/zmapStyle_P.h @@ -26,9 +26,9 @@ * Description: Private header for style. * * HISTORY: - * Last edited: Mar 21 13:32 2007 (edgrif) + * Last edited: Aug 15 11:24 2007 (edgrif) * Created: Mon Feb 26 09:13:30 2007 (edgrif) - * CVS info: $Id: zmapStyle_P.h,v 1.3 2007-03-28 16:34:38 edgrif Exp $ + * CVS info: $Id: zmapStyle_P.h,v 1.4 2007-08-16 15:48:52 edgrif Exp $ *------------------------------------------------------------------- */ #ifndef ZMAP_STYLE_P_H @@ -199,7 +199,8 @@ typedef struct ZMapFeatureTypeStyleStruct_ ZMapStyleFullColourStruct frame2_colours ; - ZMapStyleOverlapMode overlap_mode ; /* Controls how features are grouped + ZMapStyleOverlapMode default_overlap_mode ; /* Allows return to original bump mode. */ + ZMapStyleOverlapMode curr_overlap_mode ; /* Controls how features are grouped into sub columns within a column. */ double bump_spacing ; /* gap between bumped features. */ -- GitLab