On Tue, 2 Aug 2016 14:49:26 +0200
"Matteo F. Vescovi" <m...@debian.org> wrote:

>> Is there any remaining reason why the Blender package should not be
>> linked against it? Blender is supposed to have built-in support for
>> Collada.

> Simple, it fails:

I didn't know that; it hasn't previously been mentioned in this bug
report.

>     In file included from
>     
> /usr/include/opencollada/COLLADAFramework/COLLADAFWInstanceGeometry.h:15:0,
>                      from
>     /usr/include/opencollada/COLLADAFramework/COLLADAFWNode.h:17,
>                      from
>     
> /<<BUILDDIR>>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.h:30,
>                      from
>     
> /<<BUILDDIR>>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.cpp:43:
>     
> /usr/include/opencollada/COLLADAFramework/COLLADAFWInstanceBindingBase.h:53:14:
>     error: 'vector' in namespace 'std' does not name a template type
>              std::vector <COLLADABU::URI> &skeletons() { return mSkeletons; }
>                   ^
>     
> /usr/include/opencollada/COLLADAFramework/COLLADAFWInstanceBindingBase.h:65:14:
>     error: 'vector' in namespace 'std' does not name a template type
>              std::vector <COLLADABU::URI> mSkeletons;
>                   ^

That's very odd.

How is it that the official binaries from the Blender website are built
with Collada support? What's different about their build environment?
Has anybody asked them?

> Feel free to help debugging. Patches are really welcome.

One potential problem is that many of the OpenCOLLADA header files are
filled with a weird mixture of UTF-8 and Windows-1252 characters,
neither of which are actually legal in C/C++ source code, except maybe
as quoted strings. In particular, in a UTF-8 environment, the
Windows-1252 characters can be interpreted as the beginning of a
multibyte sequence, which screws up the following text. It's unlikely
that that's the entire cause of the problem, but let's try getting rid
of them:


# export LANG=C   # THIS IS IMPORTANT!!!
# 
# dpkg -s opencollada-dev | egrep "Package|Status|Version"
Package: opencollada-dev
Status: install ok installed
Version: 0.1.0~20140703.ddf8f47+dfsg1-3
# 
# pwd
/usr/include/opencollada
# 
# BADCHARS=$(echo {8,9,a,b,c,d,e,f}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f})
# PATTERN=$(for n in $BADCHARS ; do echo -ne "\x${n}" ; [ $n = ff ] || echo -n 
"|" ; done)
# BADFILES=$(egrep -l "$PATTERN" $(find . -name '*.h'))
# 
# for n in $BADCHARS ; do c=$(echo -ne "\x${n}") ; grep -q "${c}" $BADFILES && 
echo "character: \\x${n}" ; done
character: \x92
character: \x93
character: \x94
character: \x95
character: \x97
character: \xbd
character: \xbf
character: \xe9
character: \xef
# 
# grep -a -C3 --color=always $'\x95' $BADFILES | less -R
# 
# echo $'s/(\xef\xbf\xbd|\*|")?Curve Interpolation("|\*|\xef\xbf\xbd)?/*Curve 
Interpolation*/g' >~/sedscript
# echo $'s/plus (\xef\xbf)?\xbd/plus 
half/g\ns/\xef\xbf\xbds/\'s/g\ns/\xef\xbf\xbd /- /g' >>~/sedscript
# echo 
$'s/\x92/\'/g\ns/\x93/"/g\ns/\x94/"/g\ns/\x95/-/g\ns/\x97/-/g\ns/\xe9/e/g' 
>>~/sedscript
# 
# BADFILES=$(egrep -l "${PATTERN}|Curve Interpolation" $(find . -name '*.h'))
# 
# sed -r -i.badchar -f ~/sedscript $BADFILES
# 
# for n in $BADCHARS ; do c=$(echo -ne "\x${n}") ; grep -q "${c}" $BADFILES && 
echo "character: \\x${n}" ; done
# 
# cd ..
#
# find opencollada/ -name '*.badchar' | wc
     32      32    2061
# 
# (for f in $(find opencollada/ -name '*.badchar') ; do diff -u ${f} 
${f%.badchar} ; done) >~/opencollada-headers-badchars.diff
# 


See attached patchfile. That should also be sent upstream, wherever that
is.

Let me know if that helps. Otherwise, there must be some way of finding
out what that template instantiation error is.


-- Ian Bruce
--- opencollada/COLLADAStreamWriter/COLLADASWInputList.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAStreamWriter/COLLADASWInputList.h	2016-08-03 23:34:59.984290928 -0700
@@ -35,20 +35,20 @@
 			BINORMAL=0, /** Geometric binormal (bitangent) vector */
 			BINDMATRIX, 
 			COLOR, /** Color coordinate vector. Color inputs are RGB (float3) */
-			CONTINUITY, /** Continuity constraint at the control vertex (CV). See also "Curve Interpolation" in Chapter 4: Programming Guide. */
+			CONTINUITY, /** Continuity constraint at the control vertex (CV). See also *Curve Interpolation* in Chapter 4: Programming Guide. */
 			IMAGE, /** Raster or MIP-level input. */
-			INPUT, /** Sampler input. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
-			IN_TANGENT, /** Tangent vector for preceding control point. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
-			INTERPOLATION, /** Sampler interpolation type. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
+			INPUT, /** Sampler input. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
+			IN_TANGENT, /** Tangent vector for preceding control point. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
+			INTERPOLATION, /** Sampler interpolation type. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
 			INV_BIND_MATRIX, /** Inverse of local-to-world matrix. */
 			JOINT, /** Skin influence identifier */
-			LINEAR_STEPS, /** Number of piece-wise linear approximation steps to use for the spline segment that follows this CV. See also Curve Interpolation in Chapter 4: Programming Guide. */
+			LINEAR_STEPS, /** Number of piece-wise linear approximation steps to use for the spline segment that follows this CV. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
 			MORPH_TARGET, /** Morph targets for mesh morphing */
 			MORPH_WEIGHT, /** Weights for mesh morphing */
 			NORMAL, /** Normal vector */
-			OUTPUT, /** Sampler output. See also Curve Interpolation in Chapter 4: Programming Guide. */
-			OUT_TANGENT, /** Tangent vector for succeeding control point. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
-			POSITION, /** Geometric coordinate vector. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
+			OUTPUT, /** Sampler output. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
+			OUT_TANGENT, /** Tangent vector for succeeding control point. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
+			POSITION, /** Geometric coordinate vector. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
 			TANGENT, /** Geometric tangent vector */
 			TEXBINORMAL, /** Texture binormal (bitangent) vector */
 			TEXCOORD, /** Texture coordinate vector */
--- opencollada/COLLADAStreamWriter/COLLADASWCameraOptic.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAStreamWriter/COLLADASWCameraOptic.h	2016-08-03 23:34:59.984290928 -0700
@@ -42,7 +42,7 @@
         /** The aspect ratio of the field of view. If the <aspect_ratio> 
         element is not specified, it is calculated from the <xfov> or <yfov> 
         elements and the current viewport. The aspect ratio is defined as the 
-        ratio of the field of view’s width over its height. */
+        ratio of the field of view's width over its height. */
         float mAspectRatio;
         String mAspectRatioSid;
 
@@ -119,7 +119,7 @@
         /** The aspect ratio of the field of view. If the <aspect_ratio> 
         element is not specified, it is calculated from the <xfov> or <yfov> 
         elements and the current viewport. The aspect ratio is defined as the 
-        ratio of the field of view’s width over its height. */
+        ratio of the field of view's width over its height. */
         void setAspectRatio ( float val, const bool useDefaultSid = false, const String& sid="" );
 
         /** The horizontal field of view in degrees - used for the perspective camera. */
--- opencollada/COLLADAStreamWriter/COLLADASWPass.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAStreamWriter/COLLADASWPass.h	2016-08-03 23:34:59.980291025 -0700
@@ -96,19 +96,19 @@
         /** Instructs the FX Runtime what kind of geometry to submit. 
         The <draw> element contains an xs:string. The following list includes common strings to use in
         <draw>, although you are not limited to only these strings:
-        � GEOMETRY: The geometry associated with this <instance_geometry> or
+        - GEOMETRY: The geometry associated with this <instance_geometry> or
         <instance_material>.
-        � SCENE_GEOMETRY: Draw the entire scene�s geometry but with this effect, not the effects or
+        - SCENE_GEOMETRY: Draw the entire scene's geometry but with this effect, not the effects or
         materials already associated with the geometry. This is for techniques such as shadow-buffer
         generation, where you might be interested only in extracting the Z value from the light. This is
         without regard to ordering on the assumption that ZBuffer handles order.
-        � SCENE_IMAGE: Draw the entire scene into my targets. Use the appropriate effects or materials for
+        - SCENE_IMAGE: Draw the entire scene into my targets. Use the appropriate effects or materials for
         each object. This is for effects that need an accurate image of the scene to work on for effects such
         as postprocessing blurs. This is without regard to ordering on the assumption that ZBuffer handles
         order.
-        � FULL_SCREEN_QUAD: Positions are 0,0 to 1,1 and the UVs match.
-        � FULL_SCREEN_QUAD_PLUS_HALF_PIXEL: Positions are 0,0 to 1,1 and the UVs are off by plus �
-        of a pixel�s UV size. */
+        - FULL_SCREEN_QUAD: Positions are 0,0 to 1,1 and the UVs match.
+        - FULL_SCREEN_QUAD_PLUS_HALF_PIXEL: Positions are 0,0 to 1,1 and the UVs are off by plus half
+        of a pixel's UV size. */
         void addDraw ( const String& draw );
 
     };
--- opencollada/COLLADAStreamWriter/COLLADASWTechniqueFX.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAStreamWriter/COLLADASWTechniqueFX.h	2016-08-03 23:34:59.984290928 -0700
@@ -30,12 +30,12 @@
     Each effect can contain many techniques, each of which describes a 
     different method for rendering that effect. There are three different
     scenarios for which techniques are commonly used:
-    � One technique might describe a high-LOD version while a second technique 
+    - One technique might describe a high-LOD version while a second technique 
     describes a low-LOD version of the same effect.
-    � Describe an effect in different ways and use validation tools in the FX 
+    - Describe an effect in different ways and use validation tools in the FX 
     Runtime to find the most efficient version of an effect for an unknown 
     device that uses a standard API.
-    � Describe an effect under different game states, for example, a daytime 
+    - Describe an effect under different game states, for example, a daytime 
     and a nighttime technique, a normal technique, and a "magic-is-enabled" 
     technique.
 
--- opencollada/COLLADAStreamWriter/COLLADASWInstanceEffect.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAStreamWriter/COLLADASWInstanceEffect.h	2016-08-03 23:34:59.980291025 -0700
@@ -38,7 +38,7 @@
 
         /** A string that specifies for which API profile this hint is intended. It is the name of the
         profile within the effect that contains the technique. Profiles are constructed by
-        appending this attribute’s value to "profile_". For example, to select
+        appending this attribute's value to "profile_". For example, to select
         profile_CG, specify profile="CG". Optional. */
         String mProfileNC;
 
--- opencollada/COLLADAStreamWriter/COLLADASWSurfaceInitOption.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAStreamWriter/COLLADASWSurfaceInitOption.h	2016-08-03 23:34:59.988290830 -0700
@@ -97,7 +97,7 @@
 
         /** An xs:unsignedInt that specifies which 2D layer within a
         volume to initialize. There are anywhere from 0 to n slices in a volume,
-        where n is the volume�s depth slice. This attribute is used in combination
+        where n is the volume's depth slice. This attribute is used in combination
         with mip because a volume might have MIPmaps The default is 0. */
         unsigned int mSlice;
 
@@ -180,7 +180,7 @@
 
         /** An xs:unsignedInt that specifies which 2D layer within a
         volume to initialize. There are anywhere from 0 to n slices in a volume,
-        where n is the volume�s depth slice. This attribute is used in combination
+        where n is the volume's depth slice. This attribute is used in combination
         with mip because a volume might have MIPmaps The default is 0. */
         const unsigned int getSlice () const { return mSlice; }
         void setSlice ( const unsigned int val ) { mSlice = val; }
@@ -220,12 +220,12 @@
         behavior unless <mipmap_generate> is responsible for initializing the remaining
         subsurfaces.
         All attributes are optional:
-        � mip: An xs:unsignedInt that specifies the MIP level. The default is 0.
-        � slice: An xs:unsignedInt that specifies which 2D layer within a
+        - mip: An xs:unsignedInt that specifies the MIP level. The default is 0.
+        - slice: An xs:unsignedInt that specifies which 2D layer within a
         volume to initialize. There are anywhere from 0 to n slices in a volume,
-        where n is the volume�s depth slice. This attribute is used in combination
+        where n is the volume's depth slice. This attribute is used in combination
         with mip because a volume might have MIPmaps The default is 0.
-        � face: An enumerated value of type fx_surface_face_enum that
+        - face: An enumerated value of type fx_surface_face_enum that
         specifies which surface of a cube to initialize from the specified image.
         This attribute is used in combination with mip because a cubemap might
         have MIPmaps. The default is POSITIVE_X. */
@@ -234,7 +234,7 @@
         /** Initializes this surface with a 1D, 2D, RECT, or DEPTH from a compound image
         such as DDS.
         Must include:
-        � <all>: Initializes the surface with one compound image such as DDS.
+        - <all>: Initializes the surface with one compound image such as DDS.
         This element contains no data; the ref attribute, referencing an image, is
         required. */
         void addInitPlanar ( StreamWriter* sw ) const;
@@ -242,18 +242,18 @@
         /** Initializes this surface with a 3D from a compound image such as DDS.
         Choose one of the following; for both, the ref attribute, referencing an image, is
         required:
-        � <all>: Initializes the surface with one compound image such as DDS.
-        � <primary>: Initializes MIP level 0 of the surface with one compound
+        - <all>: Initializes the surface with one compound image such as DDS.
+        - <primary>: Initializes MIP level 0 of the surface with one compound
         image such as DDS. Use of this element expects the surface to have
         element <mip_levels>=0 or <mipmap_generate>. */
         void addInitVolume ( StreamWriter* sw ) const;
 
         /** Initializes the entire surface with a CUBE from a compound image such as DDS.
         Contains one of:
-        � <all>: Initializes the surface with one compound image such as DDS.
+        - <all>: Initializes the surface with one compound image such as DDS.
         This element contains no data; the ref attribute, referencing an image, is
         required.
-        � <primary>: Initializes all primary MIP level 0 subsurfaces with one
+        - <primary>: Initializes all primary MIP level 0 subsurfaces with one
         compound image such as DDS. Its ref attribute, referencing an image, is
         required. Use of this element expects the surface to have element
         <mip_levels>=0 or <mipmap_generate>.
@@ -270,7 +270,7 @@
         <order>NEGATIVE_X</order>
         <order>NEGATIVE_Y</order>
         <order>NEGATIVE_Z</order>
-        � </primary><face>: Occurs 6 times. Initializes each face MIP chain
+        - </primary><face>: Occurs 6 times. Initializes each face MIP chain
         with one compound image such as DDS. This element contains no data;
         the ref attribute, referencing an image, is required. */
         void addInitCube ( StreamWriter* sw ) const;
--- opencollada/COLLADAStreamWriter/COLLADASWFormatHint.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAStreamWriter/COLLADASWFormatHint.h	2016-08-03 23:34:59.984290928 -0700
@@ -36,18 +36,18 @@
         represents the name of a channel. There are typically 1 to 4
         channels. This element has no attributes.
         Valid enumeration values are:
-        � RGB: Red/Green/Blue color map.
-        � RGBA: Red/Green/Blue/Alpha map, often used
+        - RGB: Red/Green/Blue color map.
+        - RGBA: Red/Green/Blue/Alpha map, often used
         for color and transparency or other things packed
         into channel A, such as specular power.
-        � L: Luminance map, often used for light mapping.
-        � LA: Luminance/Alpha map, often used for light
+        - L: Luminance map, often used for light mapping.
+        - LA: Luminance/Alpha map, often used for light
         mapping.
-        � D: Depth map, often used for displacement,
+        - D: Depth map, often used for displacement,
         parallax, relief, or shadow mapping.
-        � XYZ: Typically used for normal maps or threecomponent
+        - XYZ: Typically used for normal maps or threecomponent
         displacement maps.
-        � XYZW: Typically used for normal maps, where W
+        - XYZW: Typically used for normal maps, where W
         is the depth for relief or parallax mapping. */
         enum Channels
         {
@@ -68,18 +68,18 @@
         high dynamic range via floating point. This element has no
         attributes.
         Valid enumeration values are:
-        � SNORM: Format represents a decimal value that
+        - SNORM: Format represents a decimal value that
         remains within the -1 to 1 range. Implementation
         could be integer, fixed-point, or float.
-        � UNORM: Format represents a decimal value that
+        - UNORM: Format represents a decimal value that
         remains within the 0 to 1 range. Implementation
         could be integer, fixed-point, or float.
-        � SINT: Format represents signed integer numbers;
+        - SINT: Format represents signed integer numbers;
         for example, 8 bits can represent -128 to 127.
-        � UINT: Format represents unsigned integer
+        - UINT: Format represents unsigned integer
         numbers. For example, 8 bits can represent 0 to
         255.
-        � FLOAT: Format should support full floating-point
+        - FLOAT: Format should support full floating-point
         ranges typically used for high dynamic range. */
         enum Range
         {
@@ -99,11 +99,11 @@
         channels may still convey the same information. This
         element has no attributes.
         Valid enumeration values are:
-        � LOW: For integers, this typically represents 8 bits.
+        - LOW: For integers, this typically represents 8 bits.
         For floats, typically 16 bits.
-        � MID: For integers, this typically represents 8 to 24
+        - MID: For integers, this typically represents 8 to 24
         bits. For floats, typically 16 to 32 bits.
-        � HIGH: For integers, this typically represents 16 to
+        - HIGH: For integers, this typically represents 16 to
         32 bits. For floats, typically 24 to 32 bits. */
         enum Precision
         {
@@ -117,13 +117,13 @@
         things to help an application pick the best format. This
         element has no attributes.
         Valid enumeration values are:
-        � SRGB_GAMMA: Colors are stored with respect
+        - SRGB_GAMMA: Colors are stored with respect
         to the sRGB 2.2 gamma curve rather than linear.
-        � NORMALIZED3: The texel�s XYZ/RGB should be
+        - NORMALIZED3: The texel's XYZ/RGB should be
         normalized such as in a normal map.
-        � NORMALIZED4: The texel�s XYZW/RGBA should
+        - NORMALIZED4: The texel's XYZW/RGBA should
         be normalized such as in a normal map.
-        � COMPRESSABLE: The surface may use run-time
+        - COMPRESSABLE: The surface may use run-time
         compression. Consider the best compression
         based on desired <channels>, <range>,
         <precision>, and <option>s. */
--- opencollada/COLLADAFramework/COLLADAFWGeometry.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWGeometry.h	2016-08-03 23:34:59.992290733 -0700
@@ -29,11 +29,11 @@
      primarily, to accept vertex position information with varying degrees of attribution (color, normals, etc.).
      Geometric descriptions provide this vertex data with relative directness or efficiency. Some of the more
      common forms of geometry are:
-     • B-Spline
-     • Bézier
-     • Mesh
-     • NURBS
-     • Patch
+     - B-Spline
+     - Bezier
+     - Mesh
+     - NURBS
+     - Patch
      This is by no means an exhaustive list. Currently, COLLADA supports only polygonal meshes and splines.
     */
 	class Geometry : public ObjectTemplate < COLLADA_TYPE::GEOMETRY >
--- opencollada/COLLADAFramework/COLLADAFWImage.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWImage.h	2016-08-03 23:34:59.996290635 -0700
@@ -75,9 +75,9 @@
 
         /** This specifies either embedded image data or an external image file. One of the 
         following must appear:
-        • <data>: Contains a sequence of hexadecimal encoded binary octets composing the embedded
+        - <data>: Contains a sequence of hexadecimal encoded binary octets composing the embedded
         image data. This element has no attributes or child elements.
-        • <init_from>: Contains a string of type xs:anyURI that specifies an external image file.
+        - <init_from>: Contains a string of type xs:anyURI that specifies an external image file.
         This element has no attributes or child elements. */
 
 		/** The URI of the image. */
--- opencollada/COLLADAFramework/COLLADAFWShaderBlinn.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWShaderBlinn.h	2016-08-03 23:34:59.996290635 -0700
@@ -37,13 +37,13 @@
     color = <emission> + <ambient> * al + <diffuse> * max ( N * L, 0 ) + <specular> * max ( H * N, 0 )^<shininess>
 
     where:
-    • al — A constant amount of ambient light contribution coming from the scene. In the COMMON
+    - al - A constant amount of ambient light contribution coming from the scene. In the COMMON
     profile, this is the sum of all the <light><technique_common><ambient> values in the
     <visual_scene>.
-    • N — Normal vector (normalized)
-    • L — Light vector (normalized)
-    • I — Eye vector (normalized)
-    • H — Half-angle vector,calculated as halfway between the unit Eye and Light vectors, using the
+    - N - Normal vector (normalized)
+    - L - Light vector (normalized)
+    - I - Eye vector (normalized)
+    - H - Half-angle vector,calculated as halfway between the unit Eye and Light vectors, using the
     equation H= normalize(I+L)
     */
 	class ShaderBlinn : public ShaderPhong 
--- opencollada/COLLADAFramework/COLLADAFWParam.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWParam.h	2016-08-03 23:34:59.988290830 -0700
@@ -27,7 +27,7 @@
      * The basic declaration of a parameter describes the name, data type, and value data of the 
      * parameter. That parameter name identifies it to the function or program. The parameter type 
      * indicates the encoding of its value. The <param> element contains information of type 
-     * xs:string, which is the parameter�s actual value.
+     * xs:string, which is the parameter's actual value.
      */
     class Param
     {
@@ -58,7 +58,7 @@
 
         /**
          * Value data of the parameter. The <param> element contains information of 
-         * type xs:string, which is the parameter�s actual value. The parameter type 
+         * type xs:string, which is the parameter's actual value. The parameter type 
          * indicates the encoding of its value.
          */
         //Type mValue;
@@ -127,7 +127,7 @@
 
 //         /**
 //         * Value data of the parameter. The <param> element contains information of 
-//         * type xs:string, which is the parameter�s actual value. The parameter type 
+//         * type xs:string, which is the parameter's actual value. The parameter type 
 //         * indicates the encoding of its value.
 //         */
 //         template < class Type >
@@ -135,7 +135,7 @@
 // 
 //         /**
 //         * Value data of the parameter. The <param> element contains information of 
-//         * type xs:string, which is the parameter�s actual value. The parameter type 
+//         * type xs:string, which is the parameter's actual value. The parameter type 
 //         * indicates the encoding of its value.
 //         */
 //         template < class Type >
--- opencollada/COLLADAFramework/COLLADAFWShaderConstantFX.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWShaderConstantFX.h	2016-08-03 23:34:59.992290733 -0700
@@ -27,7 +27,7 @@
     The reflected color is calculated as:
     color = <emission> + <ambient> * al
     where:
-    • al — A constant amount of ambient light contribution coming from the scene. In the COMMON
+    - al - A constant amount of ambient light contribution coming from the scene. In the COMMON
     profile, this is the sum of all the <light><technique_common><ambient><color> values in
     the <visual_scene>.
     */
--- opencollada/COLLADAFramework/COLLADAFWShaderPhong.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWShaderPhong.h	2016-08-03 23:34:59.996290635 -0700
@@ -30,13 +30,13 @@
     color = <emission> + <ambient> * al + <diffuse> * max ( N * L, 0 ) + <specular> * max ( R * I, 0 )^<shininess>
     
     where:
-    • al — A constant amount of ambient light contribution coming from the scene. In the COMMON
+    - al - A constant amount of ambient light contribution coming from the scene. In the COMMON
     profile, this is the sum of all the <light><technique_common><ambient><color> values in
     the <visual_scene>.
-    • N — Normal vector
-    • L — Light vector
-    • I — Eye vector
-    • R — Perfect reflection vector (reflect (L around N))
+    - N - Normal vector
+    - L - Light vector
+    - I - Eye vector
+    - R - Perfect reflection vector (reflect (L around N))
     */
 	class ShaderPhong : public ShaderLambert 
 	{
--- opencollada/COLLADAFramework/COLLADAFWMeshPrimitiveWithFaceVertexCount.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWMeshPrimitiveWithFaceVertexCount.h	2016-08-03 23:34:59.992290733 -0700
@@ -27,7 +27,7 @@
     The <vertices> element under <mesh> is used to describe mesh-vertices. Polygons, triangles, and 
     so forth index mesh-vertices, not positions directly. Mesh-vertices must have at least one 
     <input> (unshared) element with a semantic attribute whose value is POSITION.
-    For texture coordinates, COLLADA’s right-handed coordinate system applies; therefore, an ST 
+    For texture coordinates, COLLADA's right-handed coordinate system applies; therefore, an ST 
     texture coordinate of [0,0] maps to the lower-left texel of a texture image, when loaded in a 
     professional 2-D texture viewer/editor.
     */
--- opencollada/COLLADAFramework/COLLADAFWMeshPrimitive.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWMeshPrimitive.h	2016-08-03 23:34:59.996290635 -0700
@@ -35,7 +35,7 @@
     The <vertices> element under <mesh> is used to describe mesh-vertices. Polygons, triangles, and 
     so forth index mesh-vertices, not positions directly. Mesh-vertices must have at least one 
     <input> (unshared) element with a semantic attribute whose value is POSITION.
-    For texture coordinates, COLLADA’s right-handed coordinate system applies; therefore, an ST 
+    For texture coordinates, COLLADA's right-handed coordinate system applies; therefore, an ST 
     texture coordinate of [0,0] maps to the lower-left texel of a texture image, when loaded in a 
     professional 2-D texture viewer/editor.
     */
--- opencollada/COLLADAFramework/COLLADAFWEffect.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWEffect.h	2016-08-03 23:34:59.988290830 -0700
@@ -34,9 +34,9 @@
     <technique>s that describe one of several ways of generating an effect.
     Elements inside the <effect> declaration assume the use of an underlying library of code that handles
     the creation, use, and management of shaders, source code, parameters, etc. We shall refer to this
-    underlying library as the “FX Runtime”.
+    underlying library as the "FX Runtime".
     Parameters declared inside the <effect> element but outside of any <profile_*> element are said to
-    be in “<effect> scope”. Parameters inside <effect> scope can be drawn only from a constrained list
+    be in "<effect> scope". Parameters inside <effect> scope can be drawn only from a constrained list
     of basic data types and, after declaration, are available to <shader>s and declarations across all profiles.
     <effect> scope provides a handy way to parameterize many profiles and techniques with a single
     parameter.
@@ -58,10 +58,10 @@
         /** 
         At least one profile must appear, but any number of any of
         the following profiles can be included:
-        • <profile_CG>
-        • <profile_GLES>
-        • <profile_GLSL>
-        • <profile_COMMON> 
+        - <profile_CG>
+        - <profile_GLES>
+        - <profile_GLSL>
+        - <profile_COMMON> 
         */
         // TODO Fix members!!!
 //        Profile* mProfile;
--- opencollada/COLLADAFramework/COLLADAFWSemantic.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWSemantic.h	2016-08-03 23:34:59.996290635 -0700
@@ -23,10 +23,10 @@
     Semantics describe the intention or purpose of a parameter declaration in an effect, using an 
     overloaded concept. Semantics have been used historically to describe three different type of 
     metainformation:
-    • A hardware resource allocated to a parameter, for example, TEXCOORD2, NORMAL.
-    • A value from the scene graph or graphics API that is being represented by this parameter, for
+    - A hardware resource allocated to a parameter, for example, TEXCOORD2, NORMAL.
+    - A value from the scene graph or graphics API that is being represented by this parameter, for
     example, MODELVIEWMATRIX, CAMERAPOS, VIEWPORTSIZE.
-    • A user-defined value that will be set by the application at run time when the effect is being 
+    - A user-defined value that will be set by the application at run time when the effect is being 
     initialized, for example, DAMAGE_PERCENT, MAGIC_LEVEL.
     Semantics are used by the <instance_geometry> declaration inside <node> to bind effect 
     parameters to values and data sources that can be found in the scene graph, using the 
--- opencollada/COLLADAFramework/COLLADAFWNewParam.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWNewParam.h	2016-08-03 23:34:59.988290830 -0700
@@ -55,7 +55,7 @@
         /** Provides additional information about the volatility or linkage of a <newparam> declaration. */
         Modifier mModifier;
 
-        /** The parameter’s type. Must be exactly one of the following:
+        /** The parameter's type. Must be exactly one of the following:
         <float>, <float2>, <float3>, <float4>, <surface>, <sampler2D> */
         ParamType mParamType;
 
--- opencollada/COLLADAFramework/COLLADAFWImageSource.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWImageSource.h	2016-08-03 23:34:59.992290733 -0700
@@ -20,9 +20,9 @@
     /** 
     This specifies either embedded image data or an external image file. One of the 
     following must appear:
-    • <data>: Contains a sequence of hexadecimal encoded binary octets composing the embedded
+    - <data>: Contains a sequence of hexadecimal encoded binary octets composing the embedded
     image data. This element has no attributes or child elements.
-    • <init_from>: Contains a string of type xs:anyURI that specifies an external image file.
+    - <init_from>: Contains a string of type xs:anyURI that specifies an external image file.
     This element has no attributes or child elements.
     */
 	class ImageSource 	
--- opencollada/COLLADAFramework/COLLADAFWShaderLambert.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWShaderLambert.h	2016-08-03 23:34:59.988290830 -0700
@@ -23,15 +23,15 @@
 
     Used inside a <profile_COMMON> effect, declares a fixed-function pipeline that produces a diffuse
     shaded surface that is independent of lighting.
-    The result is based on Lambert’s Law, which states that when light hits a rough surface, the light is
+    The result is based on Lambert's Law, which states that when light hits a rough surface, the light is
     reflected in all directions equally. The reflected color is calculated simply as:
     color = <emission> + <ambient> * al + <diffuse> * max ( N * L, 0 )
     where:
-    • al — A constant amount of ambient light contribution coming from the scene. In the COMMON
+    - al - A constant amount of ambient light contribution coming from the scene. In the COMMON
     profile, this is the sum of all the <light><technique_common><ambient><color> values in
     the <visual_scene>.
-    • N — Normal vector
-    • L — Light vector
+    - N - Normal vector
+    - L - Light vector
     */
 	class ShaderLambert : public ShaderConstantFX 
 	{
--- opencollada/COLLADAFramework/COLLADAFWRenderDraw.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWRenderDraw.h	2016-08-03 23:34:59.988290830 -0700
@@ -28,18 +28,18 @@
     
     The <draw> element contains an xs:string. The following list includes common strings to use in
     <draw>, although you are not limited to only these strings:
-    • GEOMETRY: The geometry associated with this <instance_geometry> or <instance_material>.
-    • SCENE_GEOMETRY: Draw the entire scene’s geometry but with this effect, not the effects or
+    - GEOMETRY: The geometry associated with this <instance_geometry> or <instance_material>.
+    - SCENE_GEOMETRY: Draw the entire scene's geometry but with this effect, not the effects or
     materials already associated with the geometry. This is for techniques such as shadow-buffer
     generation, where you might be interested only in extracting the Z value from the light. This is
     without regard to ordering on the assumption that ZBuffer handles order.
-    • SCENE_IMAGE: Draw the entire scene into my targets. Use the appropriate effects or materials for
+    - SCENE_IMAGE: Draw the entire scene into my targets. Use the appropriate effects or materials for
     each object. This is for effects that need an accurate image of the scene to work on for effects such
     as postprocessing blurs. This is without regard to ordering on the assumption that ZBuffer handles
     order.
-    • FULL_SCREEN_QUAD: Positions are 0,0 to 1,1 and the UVs match.
-    • FULL_SCREEN_QUAD_PLUS_HALF_PIXEL: Positions are 0,0 to 1,1 and the UVs are off by plus ½
-    of a pixel’s UV size.
+    - FULL_SCREEN_QUAD: Positions are 0,0 to 1,1 and the UVs match.
+    - FULL_SCREEN_QUAD_PLUS_HALF_PIXEL: Positions are 0,0 to 1,1 and the UVs are off by plus half
+    of a pixel's UV size.
     */
 	class RenderDraw 	
     {
--- opencollada/COLLADAFramework/COLLADAFWMesh.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWMesh.h	2016-08-03 23:34:59.992290733 -0700
@@ -28,10 +28,10 @@
      * includes vertex and primitive information.
      * Vertex information is the set of attributes associated with a point on 
      * the surface of the mesh. Each vertex includes data for attributes such as:
-     * • Vertex position
-     * • Vertex color
-     * • Vertex normal
-     * • Vertex texture coordinate
+     * - Vertex position
+     * - Vertex color
+     * - Vertex normal
+     * - Vertex texture coordinate
      * The mesh also includes a description of how the vertices are organized to 
      * form the geometric shape of the mesh. The mesh vertices are collated into 
      * geometric primitives such as polygons, triangles, or lines.
--- opencollada/COLLADAFramework/COLLADAFWTechnique.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWTechnique.h	2016-08-03 23:34:59.988290830 -0700
@@ -34,11 +34,11 @@
     Techniques hold all the necessary elements required to render an effect. Each effect can 
     contain many techniques, each of which describes a different method for rendering that effect. 
     There are three different scenarios for which techniques are commonly used:
-    • One technique might describe a high-LOD version while a second technique describes a low-LOD
+    - One technique might describe a high-LOD version while a second technique describes a low-LOD
     version of the same effect.
-    • Describe an effect in different ways and use validation tools in the FX Runtime to find the 
+    - Describe an effect in different ways and use validation tools in the FX Runtime to find the 
     most efficient version of an effect for an unknown device that uses a standard API.
-    • Describe an effect under different game states, for example, a daytime and a nighttime 
+    - Describe an effect under different game states, for example, a daytime and a nighttime 
     technique, a normal technique, and a "magic-is-enabled" technique.
 
     Child elements vary by profile. See the parent element main entries for details. The following 
--- opencollada/COLLADAFramework/COLLADAFWFloatOrParam.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADAFramework/COLLADAFWFloatOrParam.h	2016-08-03 23:34:59.996290635 -0700
@@ -23,10 +23,10 @@
     A type that describes the scalar attributes of fixed-function shader elements inside 
     <profile_COMMON> effects.
     This type describes the attributes and related elements of the following elements:
-    • <index_of_refraction>
-    • <reflectivity>
-    • <shininess>
-    • <transparency>
+    - <index_of_refraction>
+    - <reflectivity>
+    - <shininess>
+    - <transparency>
 
     Note: Exactly one of the child elements <float> or <param> must appear. 
     They are mutually exclusive.
--- opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLInputShared.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLInputShared.h	2016-08-03 23:35:00.000290538 -0700
@@ -32,7 +32,7 @@
      * desired semantic information.
      * The <source> and <input> elements are part of the COLLADA dataflow model. This model is also
      * known as stream processing, pipe, or producer-consumer. An input connection is the dataflow 
-     * path from a <source> to a sink (the dataflow consumers, which are <input>�s parents, such as 
+     * path from a <source> to a sink (the dataflow consumers, which are <input>'s parents, such as 
      * <polylist>).
      * In COLLADA, all inputs are driven by index values. A consumer samples an input by supplying 
      * an index value to an input. Some consumers have multiple inputs that can share the same 
@@ -46,7 +46,7 @@
 
     private:
 
-        /** The offset into the list of indices defined by the parent element�s <p> or
+        /** The offset into the list of indices defined by the parent element's <p> or
         <v> subelement. If two <input> elements share the same offset, they are
         indexed the same. This is a simple form of compression for the list of
         indices and also defines the order in which the inputs are used. Required. */
@@ -97,7 +97,7 @@
         /** Destructor. */
         virtual ~InputShared() {}
 
-        /** The offset into the list of indices defined by the parent element�s <p> or
+        /** The offset into the list of indices defined by the parent element's <p> or
         <v> subelement. If two <input> elements share the same offset, they are
         indexed the same. This is a simple form of compression for the list of
         indices and also defines the order in which the inputs are used. Required. */
--- opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLSourceArrayLoader.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLSourceArrayLoader.h	2016-08-03 23:34:59.996290635 -0700
@@ -35,7 +35,7 @@
 	protected:
 	
         /**
-        * Provides the bulk of the mesh’s vertex data. See main entry.
+        * Provides the bulk of the mesh's vertex data. See main entry.
         */
         SourceArray mSourceArray;
 
@@ -76,14 +76,14 @@
 		void clearSources();
 
         /**
-        * Provides the bulk of the mesh’s vertex data. See main entry.
+        * Provides the bulk of the mesh's vertex data. See main entry.
         * @param sourceArraySize Parameter to get the size of the source array.
         * @return const SourceArray The source array.
         */
         const SourceArray& getSourceArray () const;
 
         /**
-        * Provides the bulk of the mesh’s vertex data. See main entry.
+        * Provides the bulk of the mesh's vertex data. See main entry.
         * @param sourceArray The source array.
         * @param sourceArraySize The size of the source array.
         */
--- opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLMeshPrimitiveInputList.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLMeshPrimitiveInputList.h	2016-08-03 23:34:59.996290635 -0700
@@ -34,7 +34,7 @@
     The <vertices> element under <mesh> is used to describe mesh-vertices. Polygons, triangles, and 
     so forth index mesh-vertices, not positions directly. Mesh-vertices must have at least one 
     <input> (unshared) element with a semantic attribute whose value is POSITION.
-    For texture coordinates, COLLADA’s right-handed coordinate system applies; therefore, an ST 
+    For texture coordinates, COLLADA's right-handed coordinate system applies; therefore, an ST 
     texture coordinate of [0,0] maps to the lower-left texel of a texture image, when loaded in a 
     professional 2-D texture viewer/editor.
     */
--- opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLMeshLoader.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLMeshLoader.h	2016-08-03 23:35:00.000290538 -0700
@@ -29,10 +29,10 @@
      * includes vertex and primitive information.
      * Vertex information is the set of attributes associated with a point on 
      * the surface of the mesh. Each vertex includes data for attributes such as:
-     * � Vertex position
-     * � Vertex color
-     * � Vertex normal
-     * � Vertex texture coordinate
+     * - Vertex position
+     * - Vertex color
+     * - Vertex normal
+     * - Vertex texture coordinate
      * The mesh also includes a description of how the vertices are organized to 
      * form the geometric shape of the mesh. The mesh vertices are collated into 
      * geometric primitives such as polygons, triangles, or lines.
--- opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLTechniqueCommon.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLTechniqueCommon.h	2016-08-03 23:35:00.000290538 -0700
@@ -26,8 +26,8 @@
      * In other words, if an element has <technique> child elements for one or more specific 
      * profiles, applications reading the COLLADA document should use the technique most 
      * appropriate for the application. If none of the specific <technique>s is appropriate, the 
-     * application must use the element�s <technique_common> instead, if one is specified.
-     * Each element�s <technique_common> attributes and children are unique. Refer to each parent 
+     * application must use the element's <technique_common> instead, if one is specified.
+     * Each element's <technique_common> attributes and children are unique. Refer to each parent 
      * element for details.
      */
     class TechniqueCommon
--- opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLPolygons.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLPolygons.h	2016-08-03 23:35:00.000290538 -0700
@@ -35,8 +35,8 @@
      * contain holes.
      * Polygon primitives that contain four or more vertices may be non-planar as well.
      * Many operations need an exact orientation of a surface point. The normal vector partially 
-     * defines this orientation, but it is still leaves the “rotation” about the normal itself 
-     * ambiguous. One way to “lock down” this extra rotation is to also specify the surface tangent at 
+     * defines this orientation, but it is still leaves the "rotation" about the normal itself 
+     * ambiguous. One way to "lock down" this extra rotation is to also specify the surface tangent at 
      * the same point. Assuming that the type of the coordinate system is known (for example, 
      * right-handed), this fully specifies the orientation of the surface, meaning that we can define 
      * a 3x3 matrix to transforms between objectspace and surface space.
@@ -44,9 +44,9 @@
      * matrix) and the third one, called binormal may be computed as the cross-product of the tangent 
      * and the normal. COLLADA supports two different types of tangents, because they have different 
      * applications and different logical placements in a document:
-     * • texture-space tangents: specified with the TEXTANGENT and TEXBINORMAL semantics and the
+     * - texture-space tangents: specified with the TEXTANGENT and TEXBINORMAL semantics and the
      *   set attribute on the <input> (shared) elements
-     * • standard (geometric) tangents: specified with the TANGENT and BINORMAL semantics on the
+     * - standard (geometric) tangents: specified with the TANGENT and BINORMAL semantics on the
      *   <input> (shared) elements
      */
     class Polygons : public MeshPrimitiveInputList
--- opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLInputUnshared.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLInputUnshared.h	2016-08-03 23:35:00.000290538 -0700
@@ -30,20 +30,20 @@
         {
             BINORMAL=0, /** Geometric binormal (bitangent) vector */
             COLOR, /** Color coordinate vector. Color inputs are RGB (float3) */
-            CONTINUITY, /** Continuity constraint at the control vertex (CV). See also "Curve Interpolation" in Chapter 4: Programming Guide. */
+            CONTINUITY, /** Continuity constraint at the control vertex (CV). See also *Curve Interpolation* in Chapter 4: Programming Guide. */
             IMAGE, /** Raster or MIP-level input. */
-            INPUT, /** Sampler input. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
-            IN_TANGENT, /** Tangent vector for preceding control point. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
-            INTERPOLATION, /** Sampler interpolation type. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
+            INPUT, /** Sampler input. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
+            IN_TANGENT, /** Tangent vector for preceding control point. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
+            INTERPOLATION, /** Sampler interpolation type. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
             INV_BIND_MATRIX, /** Inverse of local-to-world matrix. */
             JOINT, /** Skin influence identifier */
-            LINEAR_STEPS, /** Number of piece-wise linear approximation steps to use for the spline segment that follows this CV. See also �Curve Interpolation� in Chapter 4: Programming Guide. */
+            LINEAR_STEPS, /** Number of piece-wise linear approximation steps to use for the spline segment that follows this CV. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
             MORPH_TARGET, /** Morph targets for mesh morphing */
             MORPH_WEIGHT, /** Weights for mesh morphing */
             NORMAL, /** Normal vector */
-            OUTPUT, /** Sampler output. See also �Curve Interpolation� in Chapter 4: Programming Guide. */
-            OUT_TANGENT, /** Tangent vector for succeeding control point. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
-            POSITION, /** Geometric coordinate vector. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
+            OUTPUT, /** Sampler output. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
+            OUT_TANGENT, /** Tangent vector for succeeding control point. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
+            POSITION, /** Geometric coordinate vector. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
             TANGENT, /** Geometric tangent vector */
             TEXBINORMAL, /** Texture binormal (bitangent) vector */
             TEXCOORD, /** Texture coordinate vector */
@@ -88,7 +88,7 @@
      * semantic information.
      * The <source> and <input> elements are part of the COLLADA dataflow model. This model is also
      * known as stream processing, pipe, or producer-consumer. An input connection is the dataflow 
-     * path from a <source> to a sink (the dataflow consumers, which are <input>�s parents, such as 
+     * path from a <source> to a sink (the dataflow consumers, which are <input>'s parents, such as 
      * <vertices>).
      * In COLLADA, all inputs are driven by index values. A consumer samples an input by supplying 
      * an index value to an input. Some consumers have simple inputs that are driven by unique 
--- opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLGeometryLoader.h.badchar	2014-07-03 09:30:54.000000000 -0700
+++ opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLGeometryLoader.h	2016-08-03 23:35:00.000290538 -0700
@@ -24,9 +24,9 @@
 
     /** 
     Base class that describes geometric data. Must be exactly one of:
-     • <convex_mesh>
-     • <mesh>
-     • <spline> 
+     - <convex_mesh>
+     - <mesh>
+     - <spline> 
     More about, read the class Geometry documentation.
     */
     class GeometryLoader : public FilePartLoader

Attachment: sedscript
Description: Binary data

Reply via email to