 
  desc: Add child to current directory. This cmd is directory dependent, 
        you can only add specific child under specific dir.
-------------------------------------------------------------------------------------------
  Add format is directory dependent, each dir can define their own add format.
  
  Add material, particle or gpuprogram:
         
      format: add <type> <name> <scriptFileName>
          
      You can choose script file name from prompt,
      your new created staff will be added into that script.
      Or you can input script name by yourself, 
      system will create a new script file with that name. 
  
      eg: add particle fireball0 fireball.particle   // under \particleRoot
          add sm glass0 glass.material               // under \materialRoot
-------------------------------------------------------------------------------------------     
      
  Add effector, emitter to particle
  
      format: add <type> <detailType>
  
      eg: add affector LinearForce                    // under \particleRoot\particleName
          add emitter Point                           // under \particleRoot\particleName    
--------------------------------------------------------------------------------------------
  Add technique, pass, tus  to material
    
      format: add <type>
    
      eg: add technique            // under \materialRoot\materialName
          add pass                 // under \materialRoot\materialName\technique
          add tus                  // under \materialRoot\materialName\technique\pass
---------------------------------------------------------------------------------------------  
  Add gpu program reference to pass
  
      format: add <type> <GpuProgramType> <language> <programName>
                                                      
      eg: add GpuProgramRef vertex_program_ref hlsl flate_vs20
---------------------------------------------------------------------------------------------
new format for shader material

add sm <materialName> [texNum] [materialScriptFile]
[    vs  <vsName> [<shaderFile> <entry_point> [target] [blank] [programScriptFile] ] 
     ps  <psName> [<shaderFile> <entry_point> [target] [blank] [programScriptFile] ]  ]      
    
[texNum]: This is used to specify how many texture_unit you want
[blank]: Use blank default_param.
         For a lot of time,  constant names and value are identical, i create two program named "sys_vsc" and "sys_psc"
         their default_param looks like this:
            
        param_named_auto gView view_matrix
        param_named_auto gViewProj viewproj_matrix
        param_named_auto gWorld world_matrix
        param_named_auto gWorldView worldview_matrix
        param_named_auto gWorldViewProj worldviewproj_matrix
            ..
            ..

        after program is created and successfuly loaded, i copy auto costant entry from them as much as possible,
        if you have your own nameing convention, just change ose_hlsl, and set sys_vec or sys_psc

 [materialScriptFile]: if you don't define this, material will be added to default material script file,
                       you can change it in \system, the same rule for programScriptFile.
---------------------------------------------------------------------------------------------
new format for gpg

add gpg <programType> <name>  <shaderFile> <entry_point> [target] [blankAuto] [programScriptFile]

---------------------------------------------------------------------------------------------
new format for compositor

add compositor <name> [<texNum> <name1> <name2> ....] [materialName] [compScriptFile]

                                   
      
