[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31840] trunk/blender/source/blender/ collada/DocumentExporter.cpp: Patch by Jan Diederich, fixes bug #23715 in the COLLADA exporter.

Arystanbek Dyussenov arystan.d at gmail.com
Thu Sep 9 10:14:36 CEST 2010


Revision: 31840
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31840
Author:   kazanbas
Date:     2010-09-09 10:14:36 +0200 (Thu, 09 Sep 2010)

Log Message:
-----------
Patch by Jan Diederich, fixes bug #23715 in the COLLADA exporter.
Allow IDs to start only with an alphabetic character replacing digits with an '_'.

Modified Paths:
--------------
    trunk/blender/source/blender/collada/DocumentExporter.cpp

Modified: trunk/blender/source/blender/collada/DocumentExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/DocumentExporter.cpp	2010-09-09 07:52:35 UTC (rev 31839)
+++ trunk/blender/source/blender/collada/DocumentExporter.cpp	2010-09-09 08:14:36 UTC (rev 31840)
@@ -162,47 +162,84 @@
 The COLLADA spec also allows additional chars for member access ('.'), these
 must obviously be removed too, otherwise they would be heavily misinterpreted.
 */
-const unsigned char translate_map[256] = {
-	95, 95, 95, 95, 95, 95, 95, 95,
-	95, 95, 95, 95, 95, 95, 95, 95,
-	95, 95, 95, 95, 95, 95, 95, 95,
-	95, 95, 95, 95, 95, 95, 95, 95,
-	95, 95, 95, 95, 95, 95, 95, 95,
-	95, 95, 95, 95, 95, 45, 95, 95,
-	48, 49, 50, 51, 52, 53, 54, 55,
-	56, 57, 95, 95, 95, 95, 95, 95,
-	95, 65, 66, 67, 68, 69, 70, 71,
-	72, 73, 74, 75, 76, 77, 78, 79,
-	80, 81, 82, 83, 84, 85, 86, 87,
-	88, 89, 90, 95, 95, 95, 95, 95,
-	95, 97, 98, 99, 100, 101, 102, 103,
-	104, 105, 106, 107, 108, 109, 110, 111,
-	112, 113, 114, 115, 116, 117, 118, 119,
-	120, 121, 122, 95, 95, 95, 95, 95,
-	95, 95, 95, 95, 95, 95, 95, 95,
-	95, 95, 95, 95, 95, 95, 95, 95,
-	95, 95, 95, 95, 95, 95, 95, 95,
-	95, 95, 95, 95, 95, 95, 95, 95,
-	95, 95, 95, 95, 95, 95, 95, 95,
-	95, 95, 95, 95, 95, 95, 95, 95,
-	95, 95, 95, 95, 95, 95, 95, 183,
-	95, 95, 95, 95, 95, 95, 95, 95,
-	192, 193, 194, 195, 196, 197, 198, 199,
-	200, 201, 202, 203, 204, 205, 206, 207,
-	208, 209, 210, 211, 212, 213, 214, 95,
-	216, 217, 218, 219, 220, 221, 222, 223,
-	224, 225, 226, 227, 228, 229, 230, 231,
-	232, 233, 234, 235, 236, 237, 238, 239,
-	240, 241, 242, 243, 244, 245, 246, 95,
-	248, 249, 250, 251, 252, 253, 254, 255};
+const unsigned char translate_start_name_map[256] = {
+95,  95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+65,  66,  67,  68,  69,  70,  71,  72,
+73,  74,  75,  76,  77,  78,  79,  80,
+81,  82,  83,  84,  85,  86,  87,  88,
+89,  90,  95,  95,  95,  95,  95,  95,
+97,  98,  99,  100,  101,  102,  103,  104,
+105,  106,  107,  108,  109,  110,  111,  112,
+113,  114,  115,  116,  117,  118,  119,  120,
+121,  122,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  192,
+193,  194,  195,  196,  197,  198,  199,  200,
+201,  202,  203,  204,  205,  206,  207,  208,
+209,  210,  211,  212,  213,  214,  95,  216,
+217,  218,  219,  220,  221,  222,  223,  224,
+225,  226,  227,  228,  229,  230,  231,  232,
+233,  234,  235,  236,  237,  238,  239,  240,
+241,  242,  243,  244,  245,  246,  95,  248,
+249,  250,  251,  252,  253,  254,  255};
 
+const unsigned char translate_name_map[256] = {
+95,  95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  45,  95,  95,  48,
+49,  50,  51,  52,  53,  54,  55,  56,
+57,  95,  95,  95,  95,  95,  95,  95,
+65,  66,  67,  68,  69,  70,  71,  72,
+73,  74,  75,  76,  77,  78,  79,  80,
+81,  82,  83,  84,  85,  86,  87,  88,
+89,  90,  95,  95,  95,  95,  95,  95,
+97,  98,  99,  100,  101,  102,  103,  104,
+105,  106,  107,  108,  109,  110,  111,  112,
+113,  114,  115,  116,  117,  118,  119,  120,
+121,  122,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  95,  95,
+95,  95,  95,  95,  95,  95,  183,  95,
+95,  95,  95,  95,  95,  95,  95,  192,
+193,  194,  195,  196,  197,  198,  199,  200,
+201,  202,  203,  204,  205,  206,  207,  208,
+209,  210,  211,  212,  213,  214,  95,  216,
+217,  218,  219,  220,  221,  222,  223,  224,
+225,  226,  227,  228,  229,  230,  231,  232,
+233,  234,  235,  236,  237,  238,  239,  240,
+241,  242,  243,  244,  245,  246,  95,  248,
+249,  250,  251,  252,  253,  254,  255};
+
 /** Look at documentation of translate_map */
 static std::string translate_id(const std::string &id)
 {
+	if (id.size() == 0)
+	{ return id; }
 	std::string id_translated = id;
-	for (unsigned int i=0; i < id_translated.size(); i++)
+	id_translated[0] = translate_start_name_map[(unsigned int)id_translated[0]];
+	for (unsigned int i=1; i < id_translated.size(); i++)
 	{
-		id_translated[i] = translate_map[(unsigned int)id_translated[i]];
+		id_translated[i] = translate_name_map[(unsigned int)id_translated[i]];
 	}
 	return id_translated;
 }





More information about the Bf-blender-cvs mailing list