[brlcad-commits] SF.net SVN: brlcad:[65021] brlcad/trunk/src/util/gencolor.c
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <car...@us...> - 2015-05-21 19:06:24
|
Revision: 65021 http://sourceforge.net/p/brlcad/code/65021 Author: carlmoore Date: 2015-05-21 19:06:19 +0000 (Thu, 21 May 2015) Log Message: ----------- implement -p,-b,-L,-H cases Modified Paths: -------------- brlcad/trunk/src/util/gencolor.c Modified: brlcad/trunk/src/util/gencolor.c =================================================================== --- brlcad/trunk/src/util/gencolor.c 2015-05-21 16:53:02 UTC (rev 65020) +++ brlcad/trunk/src/util/gencolor.c 2015-05-21 19:06:19 UTC (rev 65021) @@ -41,6 +41,16 @@ int bytes_in_buf, copies_per_buf; int32_t count = -1; +int32_t basemultiple = 262144; /* This is 512 squared. */ +int outputtype = 0; /* 1 for pix, 2 for bw; + * if this is used and resolution is not yet set, + * give resolution a default value of 1 + */ +int resolution = 0; /* 1 for low-res, 2 for hi-res; + * if this is used and outputtype is not yet set, + * give outputtype a default value of 1 + */ +int setrcount = 0; /* set to 1 if -r is detected */ unsigned char buf[MAX_BYTES]; @@ -58,13 +68,30 @@ int c; bu_optind = 1; - while ((c = bu_getopt(argc, argv, "r:h?")) != -1) { + while ((c = bu_getopt(argc, argv, "r:pbLHh?")) != -1) { switch (c) { case 'r': count = atoi(bu_optarg); if (count > INT32_MAX) count = INT32_MAX; + setrcount = 1; break; + case 'p': + outputtype = 1; + if (resolution == 0) resolution = 1; + break; + case 'b': + outputtype = 2; + if (resolution == 0) resolution = 1; + break; + case 'L': + resolution = 1; + if (outputtype == 0) outputtype = 1; + break; + case 'H': + resolution = 2; + if (outputtype == 0) outputtype = 1; + break; default: /* 'h' '?' */ printusage(0); } @@ -109,6 +136,22 @@ len = 1; } +/* If -r was used, ignore -p,-b,-L,-H */ + if (!setrcount) { + if (outputtype == 1) { + if (resolution == 1) + count = basemultiple*3; + else + count = basemultiple*12; + } else { + if (resolution == 1) + count = basemultiple; + else + count = basemultiple*4; + } + count = count/len; /* e.g., len is 3 for RGB for a pix file */ + } + /* * Replicate the pattern as many times as it will fit * in the buffer. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |