text: [{"Owner":"Dad72","Date":"2016-02-16T15:16:34Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tIs it possible to verify that two objects can be merged before the merged.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tfor exemple_dd_\n_lt_/p_gt_\n\n_lt_pre_gt_\n_lt_code_gt_if(BABYLON.Mesh.isMerged(myGroupObjets) _eq__eq_ true) { // merge possible\n    BABYLON.Mesh.MergeMeshes(myGroupObjets)_sm_ \n}_lt_/code_gt__lt_/pre_gt_\n\n_lt_p_gt_\n\tI can not find isMerged or equivalent function. I think this could be an interesting feature to check that the object can be merged together because we merge objects that share the same textures.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Temechon","Date":"2016-02-16T16:14:02Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tNot_co_ it_t_s not possible. However_co_ it would be very easy to do it with tags_dd_ _lt_a href_eq__qt_http_dd_//doc.babylonjs.com/tutorials/How_to_use_the_Tags_System_qt_ rel_eq__qt_external nofollow_qt__gt_http_dd_//doc.babylonjs.com/tutorials/How_to_use_the_Tags_System_lt_/a_gt_\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"JCPalmer","Date":"2016-02-16T16:58:49Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tI have written a heterogeneous merge for _lt_a href_eq__qt_https_dd_//github.com/BabylonJS/Extensions/blob/master/Dialog/Source/Label.ts#L109_qt_ rel_eq__qt_external nofollow_qt__gt_Dialog extension_lt_/a_gt_.  Was assembling a _qt_string_qt_ of Letter mesh clones_co_ then would combine them until the material of the next letter was different.  Start a new merge after that.  If you did not care that they be _qt_sequential_qt_ meshes_co_ you could do a first pass to get all the unique materials first.  Then merge.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tIf someone is loading the same texture over and over in different materials_co_ they need to start with just better organization.  If it helps_co_ I made sure if a name of a material matches one already loaded_co_ the reference to the first material is returned_co_ skipping the 2nd load / material.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tThis is helpful for cross .babylon sharing of Materials.  For Blender exporter at least_co_ the name of the .babylon file is prefixed_co_ _qt_filename.material_qt__co_ to avoid collision by default.  There is an option to over ride namespace.  If namespace was over ridden to be _qt_shared_qt__co_ material would be _qt_shared.material_qt_.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI think the function checking whether a single merge is possible is kind of a crutch.  This kind of thing should be known at the design time_co_ or you should just do them in batches_co_ like I do.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Dad72","Date":"2016-02-16T19:37:02Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tI will try to create a function that checks whether the textures used by the object are identical._lt_br_gt_\n\tThank you for your ideas.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"JCPalmer","Date":"2016-02-16T20:30:39Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tJust remember that meshes are sub meshed by material not texture.  You cannot merge 2 meshes with the same texture_co_ only material.  You could have more than one texture per mesh. If you found a texture match_co_ assign one_t_s material to the other before merge.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Dad72","Date":"2016-02-16T20:36:01Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tah_co_ yes_co_ the same _lt_span style_eq__qt_color_dd_rgb(39_co_42_co_52)_sm_font-family_dd__t_Helvetica Neue_t__co_ Helvetica_co_ Arial_co_ sans-serif_sm_font-size_dd_14px_sm_font-style_dd_normal_sm_font-variant_dd_normal_sm_font-weight_dd_normal_sm_letter-spacing_dd_normal_sm_line-height_dd_22.4px_sm_text-indent_dd_0px_sm_text-transform_dd_none_sm_white-space_dd_normal_sm_word-spacing_dd_0px_sm_float_dd_none_sm_background-color_dd_rgb(255_co_255_co_255)_sm__qt__gt_material_lt_span_gt_ _lt_/span_gt__lt_/span_gt_. I noted. thank you JC\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Dad72","Date":"2016-02-17T12:58:35Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tI made this function. do you think this is enough?\n_lt_/p_gt_\n\n_lt_pre_gt_\n_lt_code_gt_    var isMerged _eq_ function(listeMeshes)\n\t{\n\t\tvar result _eq_ false_sm_\n\t\tfor(var i _eq_ 0_sm_ i &lt_sm_ listeMeshes.length_sm_ i++)\n\t\t{\n\t\t\tif(listeMeshes[0].material _eq__eq_ listeMeshes_lt_em_gt_.material) {\n\t\t\t\tresult _eq_ true_sm_\n\t\t\t\tcontinue_sm_\n\t\t\t} else {\n\t\t\t\tresult _eq_ false_sm_\n\t\t\t\tbreak_sm_\n\t\t\t}\n\t\t}\n\t\treturn result_sm_\n\t}_sm__lt_/em_gt__lt_/code_gt__lt_/pre_gt__lt_em_gt_\n\n_lt_/em_gt__lt_p_gt__lt_em_gt_\n\t \n_lt_/em_gt__lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"JCPalmer","Date":"2016-02-17T16:19:48Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tMight be the language problem_co_ but I think you mean _qt_isMergeable_qt_.  The concept is right_co_ but think there is are bugs in your program.  First_co_ you never reference i.  Your test asks _qt_is the reference of material of mesh 0 the same as the reference to the material of an array of meshes.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI do not write javascript for this reason.  This would never compile in Typescript.  My javascript is not good_co_ but something like this should work_dd_\n_lt_/p_gt_\n\n_lt_pre_gt_\n_lt_code_gt_var isMergeable _eq_ function(listMeshes)\n\t{\n\t\tvar result _eq_ listMeshes.length &gt_sm_ 1_sm_\n                var mat _eq_ listMeshes[0].material_sm_\n\t\tfor(var i _eq_ 1_sm_ i &lt_sm_ listMeshes.length_sm_ i++)\n\t\t{\n\t\t\tif(listMeshes_lt_em_gt_.material !_eq_ mat) {\n\t\t\t\tresult _eq_ false_sm_\n\t\t\t\tbreak_sm_\n\t\t\t}\n\t\t}\n\t\treturn result_sm_\n\t}_sm__lt_/em_gt__lt_/code_gt__lt_/pre_gt_\n\n_lt_p_gt_\n\t_lt_em_gt_  _lt_/em_gt_\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Dad72","Date":"2016-02-17T17:47:56Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tYes I forget i _lt_img alt_eq__qt__dd_ph34r_dd__qt_ data-emoticon_eq__qt_true_qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_ph34r.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/ph34r@2x.png 2x_qt_ title_eq__qt__dd_ph34r_dd__qt_ width_eq__qt_20_qt__gt_  Thank you for the fix.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI think you also _lt_span style_eq__qt_color_dd_rgb(39_co_42_co_52)_sm_font-family_dd__t_Helvetica Neue_t__co_ Helvetica_co_ Arial_co_ sans-serif_sm_font-size_dd_14px_sm_font-style_dd_normal_sm_font-variant_dd_normal_sm_font-weight_dd_normal_sm_letter-spacing_dd_normal_sm_line-height_dd_22.4px_sm_text-indent_dd_0px_sm_text-transform_dd_none_sm_white-space_dd_normal_sm_word-spacing_dd_0px_sm_float_dd_none_sm_background-color_dd_rgb(255_co_255_co_255)_sm__qt__gt_you never reference _lt_/span_gt__lt_strong_gt_i _lt_/strong_gt__lt_img alt_eq__qt__dd_)_qt_ data-emoticon_eq__qt_true_qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ title_eq__qt__dd_)_qt_ width_eq__qt_20_qt__gt__lt_/p_gt_\n\n_lt_p_gt_\n\tif(listMeshes.material !_eq_ mat) { _eq_&gt_sm_ if(listMeshes_lt_strong_gt__lt_/strong_gt__lt_em_gt_.material !_eq_ mat) {\n_lt_/em_gt__lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"}]