[brlcad-commits] SF.net SVN: brlcad:[58633] brlcad/trunk/src/librt
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <tbr...@us...> - 2013-11-23 14:24:55
|
Revision: 58633 http://sourceforge.net/p/brlcad/code/58633 Author: tbrowder2 Date: 2013-11-23 14:24:51 +0000 (Sat, 23 Nov 2013) Log Message: ----------- add new attr member 'long_description' with goal of eventual automation of 'attributes.xml' and synchronization with the brlcad.org web site attribute description and the original BRL-CAD attribute source definition (DRY) Modified Paths: -------------- brlcad/trunk/src/librt/db5_attrs.cpp brlcad/trunk/src/librt/db5_attrs_private.h brlcad/trunk/src/librt/gen-registered-attributes-html.cpp Modified: brlcad/trunk/src/librt/db5_attrs.cpp =================================================================== --- brlcad/trunk/src/librt/db5_attrs.cpp 2013-11-23 02:12:08 UTC (rev 58632) +++ brlcad/trunk/src/librt/db5_attrs.cpp 2013-11-23 14:24:51 UTC (rev 58633) @@ -51,6 +51,8 @@ const char *aliases; // property name as found in file 'attributes.xml'; user-defined attrs may not have this defined: const char *property; + // a longer description for lists outside a table + const char *long_description; }; @@ -61,56 +63,64 @@ "Region Flag: boolean", "Yes, R, 1, 0", // example "", // aliases, if any - "" // property, if any + "", // property, if any + "" // long_description, if any }, { ATTR_REGION_ID, false, ATTR_STANDARD, "region_id", "an integer", "0, -1, and positive integers", // examples "id", // aliases, if any - "Region Identifier Number" // property, if any + "Region Identifier Number", // property, if any + "" // long_description, if any }, { ATTR_MATERIAL_ID, false, ATTR_STANDARD, "material_id", "zero or positive integer (user-defined)", "", // examples "giftmater,mat", // aliases, if any - "Material Identifier Number" // property, if any + "Material Identifier Number", // property, if any + "" // long_description, if any }, { ATTR_AIR, false, ATTR_STANDARD, "aircode", "an integer (application defined)", "'0', '1', or '-2'", // examples "air", // aliases, if any - "Air Code" // property, if any + "Air Code", // property, if any + "" // long_description, if any }, { ATTR_LOS, false, ATTR_STANDARD, "los", "an integer in the inclusive range: 0 to 100", "'24' or '100'", // examples "", // aliases, if any - "Line of Sight Thickness Equivalence" // property, if any + "Line of Sight Thickness Equivalence", // property, if any + "" // long_description, if any }, { ATTR_COLOR, false, ATTR_STANDARD, "color", "a 3-tuple of RGB values", "\"0 255 255\"", // examples "rgb", // aliases, if any - "Color" // property, if any + "Color", // property, if any + "" // long_description, if any }, { ATTR_SHADER, false, ATTR_STANDARD, "shader", "a string of shader characteristics in a standard format", "", // examples "oshader", // aliases, if any - "Shader Name" // property, if any + "Shader Name", // property, if any + "" // long_description, if any }, { ATTR_INHERIT, false, ATTR_STANDARD, "inherit", "boolean", "Yes, 1, 0", // examples "", // aliases, if any - "Inherit Properties" // property, if any + "Inherit Properties", // property, if any + "" // long_description, if any }, { ATTR_TIMESTAMP, true, ATTR_STANDARD, /* first binary attribute */ "mtime", @@ -120,7 +130,8 @@ "", // examples "timestamp,time_stamp,modtime,mod_time", // aliases, if any - "Time Stamp" // property, if any + "Time Stamp", // property, if any + "" // long_description, if any }, }; @@ -154,6 +165,7 @@ const string examp = a.examples; const string Aliases = a.aliases; const string prop = a.property; + const string l_desc = a.long_description; // check for invalid subtype const int st = a.attr_subtype; @@ -187,7 +199,7 @@ bu_bomb("duplicate attr alias\n"); } } - db5_attr_t ap(a.is_binary, a.attr_subtype, name, desc, examp, aliases, prop); + db5_attr_t ap(a.is_binary, a.attr_subtype, name, desc, examp, aliases, prop, l_desc); // prepare the maps name2int.insert(make_pair(name, a.attr_type)); Modified: brlcad/trunk/src/librt/db5_attrs_private.h =================================================================== --- brlcad/trunk/src/librt/db5_attrs_private.h 2013-11-23 02:12:08 UTC (rev 58632) +++ brlcad/trunk/src/librt/db5_attrs_private.h 2013-11-23 14:24:51 UTC (rev 58633) @@ -70,13 +70,15 @@ std::string examples; std::set<std::string> aliases; /* comma-delimited list of alternative names for this attribute */ std::string property; + std::string long_description; db5_attr_t() {} db5_attr_t(const int b, const int a, const std::string& n, const std::string& d, const std::string& e, const std::set<std::string>& s, - const std::string& p) + const std::string& p, + const std::string& ld) : is_binary(b ? true : false) , attr_subtype(a) , name(n) @@ -84,6 +86,7 @@ , examples(e) , aliases(s) , property(p) + , long_description(ld) {} }; Modified: brlcad/trunk/src/librt/gen-registered-attributes-html.cpp =================================================================== --- brlcad/trunk/src/librt/gen-registered-attributes-html.cpp 2013-11-23 02:12:08 UTC (rev 58632) +++ brlcad/trunk/src/librt/gen-registered-attributes-html.cpp 2013-11-23 14:24:51 UTC (rev 58633) @@ -21,7 +21,7 @@ using namespace db5_attrs_private; // local funcs -static void gen_attr_xml_tables(const std::string& fname, const std::string& fname2); +//static void gen_attr_xml_tables(const std::string& fname, const std::string& fname2); static void gen_attr_html_page(const std::string& fname); static void open_file_write(ofstream& fs, const string& f); @@ -38,12 +38,12 @@ gen_attr_html_page(ofil); // write the xml table for file 'attributes.xml' - string adir("../../doc/docbook/system/man5/en/"); + //string adir("../../doc/docbook/system/man5/en/"); // these two files are included in the manually generated // 'attributes.xml' file: - string stable(adir + "attributes-standard-table.xml"); - string utable(adir + "attributes-user-table.xml"); + //string stable(adir + "attributes-standard-table.xml"); + //string utable(adir + "attributes-user-table.xml"); //gen_attr_xml_tables(stable, utable); @@ -61,6 +61,7 @@ } } // open_file_write +/* void gen_attr_xml_tables(const std::string& fname, const std::string& fname2) { @@ -68,41 +69,16 @@ open_file_write(fo, fname); open_file_write(fo2, fname2); + // the table files will be included in a parent DocBook xml file + // for man pages and will be child elements of a DB <para> + + // the standard (core) attributes fo << - "<!doctype html>\n" - "<html lang=\"en\">\n" - "<head>\n" - " <title>brlcad-attributes.html</title>\n" - " <meta charset = \"UTF-8\" />\n" - " <style type = \"text/css\">\n" - " table, td, th {\n" - " border: 1px solid black;\n" - " }\n" - " </style>\n" - "</head>\n" - "<body>\n" - " <h1>BRL-CAD Standard and User-Registered Attributes</h2>\n" - " <p>Following are lists of the BRL-CAD standard and user-registered attribute names\n" - " along with their value definitions and aliases (if any). Users should\n" - " not assign values to them in other than their defined format.\n" - " (Note that attribute names are not case-sensitive although their canonical form is\n" - " lower-case.)</p>\n" + "<article xmlns='http://docbook.org/ns/docbook' version='5.0'\n" + " xmlns:xi='http://www.w3.org/2001/XInclude'\n" + ">\n" - " <p>Some attributes have ASCII names but binary values (e.g., 'mtime'). Their values cannot\n" - " be modified by a user with the 'attr' command. In some cases, but not all, their\n" - " values may be shown in a human readable form with the 'attr' command.)</p>\n" - " <p>If a user wishes to register an attribute to protect its use for models\n" - " transferred to other BRL-CAD users, submit the attribute along with a description\n" - " of its intended use to the\n" - " <a href=\"mailto:brl...@li...\">BRL-CAD developers</a>.\n" - " Its approval will be formal when it appears in the separate, registered attribute\n" - " table following the standard attribute table.</p>\n" - ; - - // need a table here (5 columns at the moment) - fo << - " <h3>BRL-CAD Standard Attributes</h3>\n" " <table>\n" " <tr>\n" " <th>Attribute</th>\n" @@ -199,6 +175,7 @@ printf("DEBUG: see output file '%s'\n", fname.c_str()); } // gen_attr_xml_table +*/ void gen_attr_html_page(const std::string& fname) @@ -226,23 +203,28 @@ " (Note that attribute names are not case-sensitive although their canonical form is\n" " lower-case.)</p>\n" + " <p>Any code setting or reading the value of one of these attributes\n" + " must handle all aliases to ensure all functions asking for\n" + " the value in question get a consistent answer.</p>\n" + " <p>Some attributes have ASCII names but binary values (e.g., 'mtime'). Their values cannot\n" " be modified by a user with the 'attr' command. In some cases, but not all, their\n" " values may be shown in a human readable form with the 'attr' command.)</p>\n" " <p>If a user wishes to register an attribute to protect its use for models\n" - " transferred to other BRL-CAD users, submit the attribute along with a description\n" - " of its intended use to the\n" + " transferred to other BRL-CAD users, submit the attribute, along with a description\n" + " of its intended use, to the\n" " <a href=\"mailto:brl...@li...\">BRL-CAD developers</a>.\n" - " Its approval will be formal when it appears in the separate, registered attribute\n" + " Its approval will be formal when it appears in the separate, registered-attribute\n" " table following the standard attribute table.</p>\n" ; // need a table here (5 columns at the moment) fo << - " <h3>BRL-CAD Standard Attributes</h3>\n" + " <h3>BRL-CAD Standard (Core) Attributes</h3>\n" " <table>\n" " <tr>\n" + " <th>Property</th>\n" " <th>Attribute</th>\n" " <th>Binary?</th>\n" " <th>Definition</th>\n" @@ -262,6 +244,7 @@ } fo << " <tr>\n" + " <td>" << a.property << "</td>\n" " <td>" << name << "</td>\n" " <td>" << (a.is_binary ? "yes" : "") << "</td>\n" " <td>" << a.description << "</td>\n" @@ -292,6 +275,7 @@ fo << " <table>\n" " <tr>\n" + " <th>Property</th>\n" " <th>Attribute</th>\n" " <th>Binary?</th>\n" " <th>Definition</th>\n" @@ -304,6 +288,7 @@ db5_attr_t& a(i->second); fo << " <tr>\n" + " <td>" << a.property << "</td>\n" " <td>" << name << "</td>\n" " <td>" << (a.is_binary ? "yes" : "") << "</td>\n" " <td>" << a.description << "</td>\n" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |