2019/05/302019/05/31 bool dmp_source (const Xml_E& xml) { tstring name = xml.GetName() ; if (name != DAE_source) { return false ; } Xml_E fa = xml.GetElement(DAE_float_array) ; Xml_E tc = xml.GetElement(DAE_technique_common) ; Xml_E ac = tc.GetElement(DAE_accessor) ; if (fa.IsEmpty()) { return false ; } if (tc.IsEmpty()) { return false ; } if (ac.IsEmpty()) { return false ; } { tstring fa_str = fa.GetText() ; long stride = 1 ; tstring stride_str = ac.GetAttribute(DAE_stride) ; if (stride_str.empty()) { return false ; } stride = ::_ttoi(stride_str.c_str()) ; Vd3A v3a ; Vd2A v2a ; if (stride == 3) { v3a = ::String_ToVd3A(fa_str.c_str()) ; } if (stride == 2) { v2a = ::String_ToVd2A(fa_str.c_str()) ; } { v_Vd4A v_pnts ; PLF plf ; if (v3a.size() > 0) { plf = PLF(PLF::point,::ToVd4A( v3a) ) ; } if (v2a.size() > 0) { plf = PLF(PLF::point,::ToVd4A(::ToVd3A(v2a))) ; } v_PLF v_plf ; v_plf.push_back(plf) ; ::Dump_ipl(v_plf) ; } } return true ; }
![]()
![]()
![]()
2019/06/04 先日のコードと見た目はあまり変わらないが... bool dmp_source (const Xml_E& xml) { tstring name = xml.GetName() ; if (name != DAE_source) { return false ; } Xml_E tc = xml.GetElement(DAE_technique_common) ; if (tc.IsEmpty()) { return false ; } { long stride = get_stride(tc) ; dae_V3A v3a ; dae_V2A v2a ; if (stride == 3) { v3a = get_source_3(xml) ; } if (stride == 2) { v2a = get_source_2(xml) ; } { v_Vd4A v_pnts ; PLF plf ; if (v3a.size() > 0) { plf = PLF(PLF::point,::ToVd4A( v3a) ) ; } if (v2a.size() > 0) { plf = PLF(PLF::point,::ToVd4A(::ToVd3A(v2a))) ; } v_PLF v_plf ; v_plf.push_back(plf) ; ::Dump_ipl(v_plf) ; } } return true ; }