From COLLADA Public Wiki
Jump to: navigation, search
Welcome to the COLLADA CoherencyTest portal
Links to, and information about, a simple test that checks whether a COLLADA document is properly composed

Portals:  • Products  • Extensions  • Tools  • Conditioners  • COLLADA DOM  • Coherency Test  • Tech topics  • Tutorials

COLLADA Coherency Test is a command-line version of CoherencyTest from COLLADA Refinery. It checks whether a COLLADA dae file is coherent (properly composed). It is built using the COLLADA DOM library from http://sourceforge.net/projects/collada-dom.

It is developed in C/C++ and built using MSVC.

If you have suggestions for what should go into the coherency test, please email me at herbert_law@playstation.sony.com.

External links

List of Checks

Check_links Checks whether all IDs are valid reference and whether we can resolveElement and getElement from a link
Check_unique_id Checks whether all IDs in each document are unique
Check_counts It checks that the number counts are correctly set; for example:
  • skin vertex count should be = mesh vertex count
  • accessor has the right count on arrays from stride and counts.
Check_files Checks whether the image files, cg/fx files, and other non-dae files that the document reference exist
Check_textures Checks whether the textures are correctly defined/used (image, surface, sampler, instancing...) <texture> shouldn't directly reference to <image> ID. It should reference <newparam>'s SID, and have <sampler2D> with

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, aimms, algol68, apache, applescript, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, caddcl, cadlisp, cfdg, cfm, chaiscript, chapel, cil, clojure, cmake, cobol, coffeescript, cpp, csharp, css, cuesheet, d, dart, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, ezt, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, ispfpanel, j, java, java5, javascript, jcl, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nginx, nimrod, nsis, oberon2, objc, objeck, ocaml, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, pic16, pike, pixelbender, pli, plsql, postgresql, postscript, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, qml, racket, rails, rbs, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, rust, sas, scala, scheme, scilab, scl, sdlbasic, smalltalk, smarty, spark, sparql, sql, standardml, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vbscript, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xpp, yaml, z80, zxbasic

 reference to another  <newparam>'s SID that have <surface> with  <init_from> reference to <image> ID.
|  Check_URI       
|Checks whether URIs are correct. It should also  check for unescaped spaces because an XML validator  won't catch the problem. Reference  http://www.w3.org/TR/xmlschema-2/#anyURI
|  Check_schema    
|Checks whether the document validates against the Schema   
|  Check_inputs    
|Checks whether the required number of input elements  are present and that they have the correct semantic  values for their sources.   
|  Check_skin      
|Checks that values in name_array reference only to an existing SID, and values in  IDREF_array reference only to an existing ID  
|  Check_InstanceGeometry
|Checks whether all Instance_geometry have  bind_material that has a correct matching  bind_material between symbol and target
|  Check_Controller
|Checks whether skin have same number of vertices  weight as the vertices number of geometry. It  checks whether morph has the same number of vertices  from source geometry as number of vertices in  all other target geometry.
|  Check_Float_array
|Checks whether NaN, INF, INF exist in all the float  array  
|  Check_sid	 
|Checks whether SIDs are  valid SIDs  
|  Check_morph      
* Checks whether a morph has the same number of targets and target_weights.
* Checks whether all targets have the same number of vertices.

===User guide===
 Usage: coherencytest filename.dae ... [OPTION]...
 option:                           \n"
 filename.dae		   - check collada file filename.dae, 
                             filename.dae should be a url format
 -log filename.log         - log warnings and errors in filename.log          
 -check SCHEMA COUNTS ..   - check SCHEMA and COUNTS only, test all 
                             if not specify any
                             available checks:              
 -ignore SCHEMA COUNTS ..  - ignore SCHEMA and COUNTS only, test all
                             if not specify any
 -quiet -q                 - disable printfs and MessageBox
 -version                  - print version and copyright information
 -xmlschema schema.xsd     - use your own version of schema.xsd to do schema check
                           - the defualt schema is http://www.collada.org/2005/11/COLLADASchema.xsd

==Changes (for developer)==

   Date       Version   Description
 - 04-24-2007 1.0       Inital Version
 - 04-26-2007           printf date and time when test starts
                        Add separator in log file between on differen
                        file checks
 - 05-07-2007           add #ifdef and -ctf support
                        Split into header files
                        catch all daeErrorhandler errors as test fails
                        Fix Accessor CHECK_count
                        size of param should be <= stride
                        size of param + offset should be <= stride
                        size of data_array should be reference from 
                        accessor source instead of the one within the 
                        same source.
 - 05-09-2007 1.1       Add make files to build in linux
 - 06-11-2007           pass all collada_dom errors and warnings as
                        CoherencyTest errors and warnings
 - 06-19-2007           update makefiles for linux build
 - 07-09-2007           Add check_Sid if Sid contains any illegal characters
                        add Check_bind_material to check if <instance_controller>
                        has <bind_material> correctly.
                        add check if controller has skin or morph.
 - 07-18-2007           add -xmlschema option to use your own schema.xsd
 - 07-19-2007           remove dependency on iconv
 - 07-30-2007 1.2       if inputs that should reference to source is not
                        reference to a source, report error
                        if Index_Range in CHECK_Index_Range() is 0,

[[Category:Portals]][[Category:Coherency testing]][[Category:Tools]]
</div> <!-- of portal background formatting -->

Navigation menu