Commit 01a4cd22 authored by ElenaSubbotina's avatar ElenaSubbotina

OdfFormatWriter - fix errors after testing

parent 202b58fb
......@@ -65,7 +65,7 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"mso-spt36" , 7}, // shapetypeBentConnector5,
{ L"mso-spt90" , 7}, // shapetypeBentUpArrow,
{ L"quad-bevel" , 7}, // shapetypeBevel,
{ L"block-arc" , 7}, // shapetypeBlockArc,
{ L"" , 7}, // shapetypeBlockArc,
{ L"mso-spt49" , 7}, // shapetypeBorderCallout1,
{ L"mso-spt50" , 7}, // shapetypeBorderCallout2,
{ L"mso-spt51" , 7}, // shapetypeBorderCallout3,
......
......@@ -43,158 +43,243 @@ public:
{
odf_type_name =L"ooxml-leftCircularArrow";
enhanced_path = L"M 529769 128373 L 570534 225808 A ?f91 ?f92 ?f93 ?f94 570534 225808 ?f88 ?f90 W ?f95 ?f96 ?f97 ?f98 570534 225808 ?f88 ?f90 L 246425 854941 139301 967187 5691 907641 74093 892667 A ?f138 ?f139 ?f140 ?f141 74093 892667 ?f135 ?f137 W ?f142 ?f143 ?f144 ?f145 74093 892667 ?f135 ?f137 Z N";
text_areas = L"?f48 ?f50 ?f49 ?f51";
glue_points = L"?f40 ?f41 ?f42 ?f43 ?f44 ?f45 ?f46 ?f47";
view_box = L"0 0 1637004 1637004";
enhanced_path = L"M ?f63 ?f64 L ?f69 ?f70 G ?f13 ?f14 ?f210 ?f211 L ?f185 ?f186 ?f57 ?f58 ?f183 ?f184 ?f126 ?f127 G ?f10 ?f12 ?f212 ?f213 Z N";
text_areas = L"?f206 ?f208 ?f207 ?f209";
modifiers = L"10980 1142322 6300000 18900000 12500";
view_box = L"0 0 0 0";
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f3 - ?f2");
add(L"f8", L"5419351 / 1725033");
add(L"f9", L"180");
add(L"f10", L"?f7 / 1637004");
add(L"f11", L"?f6 / 1637004");
add(L"f12", L"139301 - 818502");
add(L"f13", L"967187 - 818502");
add(L"f14", L"sqrt(?f12 * ?f12 + ?f13 * ?f13 + 0 * 0)");
add(L"f15", L"atan2(?f12, ?f13)");
add(L"f16", L"?f15 + ?f1");
add(L"f17", L"?f16 * ?f9 / ?f0");
add(L"f18", L"0 - ?f17");
add(L"f19", L"529769 - 818502");
add(L"f20", L"128373 - 818502");
add(L"f21", L"sqrt(?f19 * ?f19 + ?f20 * ?f20 + 0 * 0)");
add(L"f22", L"atan2(?f19, ?f20)");
add(L"f23", L"?f22 + ?f1");
add(L"f24", L"?f23 * ?f9 / ?f0");
add(L"f25", L"0 - ?f24");
add(L"f26", L"74093 - 818502");
add(L"f27", L"892667 - 818502");
add(L"f28", L"sqrt(?f26 * ?f26 + ?f27 * ?f27 + 0 * 0)");
add(L"f29", L"atan2(?f26, ?f27)");
add(L"f30", L"?f29 + ?f1");
add(L"f31", L"?f30 * ?f9 / ?f0");
add(L"f32", L"0 - ?f31");
add(L"f33", L"246425 - 818502");
add(L"f34", L"854941 - 818502");
add(L"f35", L"sqrt(?f33 * ?f33 + ?f34 * ?f34 + 0 * 0)");
add(L"f36", L"atan2(?f33, ?f34)");
add(L"f37", L"?f36 + ?f1");
add(L"f38", L"?f37 * ?f9 / ?f0");
add(L"f39", L"0 - ?f38");
add(L"f40", L"550151 / ?f10");
add(L"f41", L"177091 / ?f11");
add(L"f42", L"5691 / ?f10");
add(L"f43", L"907641 / ?f11");
add(L"f44", L"139301 / ?f10");
add(L"f45", L"967187 / ?f11");
add(L"f46", L"246425 / ?f10");
add(L"f47", L"854941 / ?f11");
add(L"f48", L"289519 / ?f10");
add(L"f49", L"1347485 / ?f10");
add(L"f50", L"289519 / ?f11");
add(L"f51", L"1347485 / ?f11");
add(L"f52", L"21550000 - -4313128");
add(L"f53", L"if(?f52, -4313128, 21550000)");
add(L"f54", L"-21550000 - ?f53");
add(L"f55", L"if(?f54, -21550000, ?f53)");
add(L"f56", L"14837806 + ?f55");
add(L"f57", L"14837806 + ?f1");
add(L"f58", L"?f57 * ?f8 / ?f0");
add(L"f59", L"0 - ?f58");
add(L"f60", L"cos(?f59)");
add(L"f61", L"0 - ?f60");
add(L"f62", L"?f61 * 642475");
add(L"f63", L"sin(?f59)");
add(L"f64", L"0 - ?f63");
add(L"f65", L"?f64 * 642475");
add(L"f66", L"sqrt(?f62 * ?f62 + ?f65 * ?f65 + 0 * 0)");
add(L"f67", L"642475 * 642475 / ?f66");
add(L"f68", L"?f64 * ?f67");
add(L"f69", L"570534 - ?f68");
add(L"f70", L"?f61 * ?f67");
add(L"f71", L"225808 - ?f70");
add(L"f72", L"?f69 - 642475");
add(L"f73", L"?f71 - 642475");
add(L"f74", L"?f69 + 642475");
add(L"f75", L"?f71 + 642475");
add(L"f76", L"?f56 + ?f1");
add(L"f77", L"?f76 * ?f8 / ?f0");
add(L"f78", L"0 - ?f77");
add(L"f79", L"cos(?f78)");
add(L"f80", L"0 - ?f79");
add(L"f81", L"?f80 * 642475");
add(L"f82", L"sin(?f78)");
add(L"f83", L"0 - ?f82");
add(L"f84", L"?f83 * 642475");
add(L"f85", L"sqrt(?f81 * ?f81 + ?f84 * ?f84 + 0 * 0)");
add(L"f86", L"642475 * 642475 / ?f85");
add(L"f87", L"?f83 * ?f86");
add(L"f88", L"?f69 + ?f87");
add(L"f89", L"?f80 * ?f86");
add(L"f90", L"?f71 + ?f89");
add(L"f91", L"if(?f55, 570534, ?f72)");
add(L"f92", L"if(?f55, 225808, ?f73)");
add(L"f93", L"if(?f55, 570534, ?f74)");
add(L"f94", L"if(?f55, 225808, ?f75)");
add(L"f95", L"if(?f55, ?f72, ?f88)");
add(L"f96", L"if(?f55, ?f73, ?f90)");
add(L"f97", L"if(?f55, ?f74, ?f88)");
add(L"f98", L"if(?f55, ?f75, ?f90)");
add(L"f99", L"21550000 - 4379179");
add(L"f100", L"if(?f99, 4379179, 21550000)");
add(L"f101", L"-21550000 - ?f100");
add(L"f102", L"if(?f101, -21550000, ?f100)");
add(L"f103", L"10458627 + ?f102");
add(L"f104", L"10458627 + ?f1");
add(L"f105", L"?f104 * ?f8 / ?f0");
add(L"f106", L"0 - ?f105");
add(L"f107", L"cos(?f106)");
add(L"f108", L"0 - ?f107");
add(L"f109", L"?f108 * 748094");
add(L"f110", L"sin(?f106)");
add(L"f111", L"0 - ?f110");
add(L"f112", L"?f111 * 748094");
add(L"f113", L"sqrt(?f109 * ?f109 + ?f112 * ?f112 + 0 * 0)");
add(L"f114", L"748094 * 748094 / ?f113");
add(L"f115", L"?f111 * ?f114");
add(L"f116", L"74093 - ?f115");
add(L"f117", L"?f108 * ?f114");
add(L"f118", L"892667 - ?f117");
add(L"f119", L"?f116 - 748094");
add(L"f120", L"?f118 - 748094");
add(L"f121", L"?f116 + 748094");
add(L"f122", L"?f118 + 748094");
add(L"f123", L"?f103 + ?f1");
add(L"f124", L"?f123 * ?f8 / ?f0");
add(L"f125", L"0 - ?f124");
add(L"f126", L"cos(?f125)");
add(L"f127", L"0 - ?f126");
add(L"f128", L"?f127 * 748094");
add(L"f129", L"sin(?f125)");
add(L"f130", L"0 - ?f129");
add(L"f131", L"?f130 * 748094");
add(L"f132", L"sqrt(?f128 * ?f128 + ?f131 * ?f131 + 0 * 0)");
add(L"f133", L"748094 * 748094 / ?f132");
add(L"f134", L"?f130 * ?f133");
add(L"f135", L"?f116 + ?f134");
add(L"f136", L"?f127 * ?f133");
add(L"f137", L"?f118 + ?f136");
add(L"f138", L"if(?f102, 74093, ?f119)");
add(L"f139", L"if(?f102, 892667, ?f120)");
add(L"f140", L"if(?f102, 74093, ?f121)");
add(L"f141", L"if(?f102, 892667, ?f122)");
add(L"f142", L"if(?f102, ?f119, ?f135)");
add(L"f143", L"if(?f102, ?f120, ?f137)");
add(L"f144", L"if(?f102, ?f121, ?f135)");
add(L"f145", L"if(?f102, ?f122, ?f137)");
add(L"f0", L"if(0-$4 ,0,if(25000-$4 ,$4 ,25000))");
add(L"f1", L"?f0 *2/1");
add(L"f2", L"if(0-$0 ,0,if(?f1 -$0 ,$0 ,?f1 ))");
add(L"f3", L"if(1-$2 ,1,if(21599999-$2 ,$2 ,21599999))");
add(L"f4", L"if(0-$3 ,0,if(21599999-$3 ,$3 ,21599999))");
add(L"f5", L"min(logwidth,logheight)");
add(L"f6", L"?f5 *?f2 /100000");
add(L"f7", L"?f5 *?f0 /100000");
add(L"f8", L"?f6 *1/2");
add(L"f9", L"logwidth/2");
add(L"f10", L"?f9 +?f8 -?f7 ");
add(L"f11", L"logheight/2");
add(L"f12", L"?f11 +?f8 -?f7 ");
add(L"f13", L"?f10 +0-?f6 ");
add(L"f14", L"?f12 +0-?f6 ");
add(L"f15", L"?f13 +?f8 -0");
add(L"f16", L"?f14 +?f8 -0");
add(L"f17", L"?f15 *sin(pi*(?f3 )/10800000)");
add(L"f18", L"?f16 *cos(pi*(?f3 )/10800000)");
add(L"f19", L"?f15 *(cos(atan2(?f17 ,?f18 )))");
add(L"f20", L"?f16 *(sin(atan2(?f17 ,?f18 )))");
add(L"f21", L"logwidth/2");
add(L"f22", L"?f21 +?f19 -0");
add(L"f23", L"logheight/2");
add(L"f24", L"?f23 +?f20 -0");
add(L"f25", L"min(?f13 ,?f14 )");
add(L"f26", L"?f19 *?f19 /1");
add(L"f27", L"?f20 *?f20 /1");
add(L"f28", L"?f25 *?f25 /1");
add(L"f29", L"?f26 +0-?f28 ");
add(L"f30", L"?f27 +0-?f28 ");
add(L"f31", L"?f29 *?f30 /?f26 ");
add(L"f32", L"?f31 *1/?f27 ");
add(L"f33", L"1+0-?f32 ");
add(L"f34", L"sqrt(?f33 )");
add(L"f35", L"?f29 *1/?f19 ");
add(L"f36", L"?f35 *1/?f20 ");
add(L"f37", L"(1+?f34 )/?f36 ");
add(L"f38", L"(10800000*atan2(?f37 ,1))/pi");
add(L"f39", L"?f38 +21600000-0");
add(L"f40", L"if(?f38 ,?f38 ,?f39 )");
add(L"f41", L"?f40 +0-?f3 ");
add(L"f42", L"?f41 +21600000-0");
add(L"f43", L"if(?f41 ,?f41 ,?f42 )");
add(L"f44", L"?f43 +0-10800000");
add(L"f45", L"?f43 +0-21600000");
add(L"f46", L"if(?f44 ,?f45 ,?f43 )");
add(L"f47", L"abs(?f46 )");
add(L"f48", L"?f47 *-1/1");
add(L"f49", L"abs($1 )");
add(L"f50", L"?f49 *-1/1");
add(L"f51", L"if(?f48 -?f50 ,?f48 ,if(0-?f50 ,?f50 ,0))");
add(L"f52", L"?f3 +?f51 -0");
add(L"f53", L"?f15 *sin(pi*(?f52 )/10800000)");
add(L"f54", L"?f16 *cos(pi*(?f52 )/10800000)");
add(L"f55", L"?f15 *(cos(atan2(?f53 ,?f54 )))");
add(L"f56", L"?f16 *(sin(atan2(?f53 ,?f54 )))");
add(L"f57", L"?f21 +?f55 -0");
add(L"f58", L"?f23 +?f56 -0");
add(L"f59", L"?f10 *sin(pi*(?f4 )/10800000)");
add(L"f60", L"?f12 *cos(pi*(?f4 )/10800000)");
add(L"f61", L"?f10 *(cos(atan2(?f59 ,?f60 )))");
add(L"f62", L"?f12 *(sin(atan2(?f59 ,?f60 )))");
add(L"f63", L"?f21 +?f61 -0");
add(L"f64", L"?f23 +?f62 -0");
add(L"f65", L"?f13 *sin(pi*(?f4 )/10800000)");
add(L"f66", L"?f14 *cos(pi*(?f4 )/10800000)");
add(L"f67", L"?f13 *(cos(atan2(?f65 ,?f66 )))");
add(L"f68", L"?f14 *(sin(atan2(?f65 ,?f66 )))");
add(L"f69", L"?f21 +?f67 -0");
add(L"f70", L"?f23 +?f68 -0");
add(L"f71", L"?f7 *cos(pi*(?f52 )/10800000)");
add(L"f72", L"?f7 *sin(pi*(?f52 )/10800000)");
add(L"f73", L"?f22 +?f71 -0");
add(L"f74", L"?f24 +?f72 -0");
add(L"f75", L"?f7 *cos(pi*(?f52 )/10800000)");
add(L"f76", L"?f7 *sin(pi*(?f52 )/10800000)");
add(L"f77", L"?f22 +0-?f75 ");
add(L"f78", L"?f24 +0-?f76 ");
add(L"f79", L"?f77 +0-?f21 ");
add(L"f80", L"?f78 +0-?f23 ");
add(L"f81", L"?f73 +0-?f21 ");
add(L"f82", L"?f74 +0-?f23 ");
add(L"f83", L"min(?f10 ,?f12 )");
add(L"f84", L"?f79 *?f83 /?f10 ");
add(L"f85", L"?f80 *?f83 /?f12 ");
add(L"f86", L"?f81 *?f83 /?f10 ");
add(L"f87", L"?f82 *?f83 /?f12 ");
add(L"f88", L"?f86 +0-?f84 ");
add(L"f89", L"?f87 +0-?f85 ");
add(L"f90", L"sqrt(?f88 *?f88 +?f89 *?f89 +0*0)");
add(L"f91", L"?f84 *?f87 /1");
add(L"f92", L"?f86 *?f85 /1");
add(L"f93", L"?f91 +0-?f92 ");
add(L"f94", L"?f83 *?f83 /1");
add(L"f95", L"?f90 *?f90 /1");
add(L"f96", L"?f94 *?f95 /1");
add(L"f97", L"?f93 *?f93 /1");
add(L"f98", L"?f96 +0-?f97 ");
add(L"f99", L"max(?f98 ,0)");
add(L"f100", L"sqrt(?f99 )");
add(L"f101", L"?f89 *-1/1");
add(L"f102", L"if(?f101 ,-1,1)");
add(L"f103", L"?f102 *?f88 /1");
add(L"f104", L"?f103 *?f100 /1");
add(L"f105", L"?f93 *?f89 /1");
add(L"f106", L"(?f105 +?f104 )/?f95 ");
add(L"f107", L"?f105 +0-?f104 ");
add(L"f108", L"?f107 *1/?f95 ");
add(L"f109", L"abs(?f89 )");
add(L"f110", L"?f109 *?f100 /1");
add(L"f111", L"?f93 *?f88 /-1");
add(L"f112", L"(?f111 +?f110 )/?f95 ");
add(L"f113", L"?f111 +0-?f110 ");
add(L"f114", L"?f113 *1/?f95 ");
add(L"f115", L"?f86 +0-?f106 ");
add(L"f116", L"?f86 +0-?f108 ");
add(L"f117", L"?f87 +0-?f112 ");
add(L"f118", L"?f87 +0-?f114 ");
add(L"f119", L"sqrt(?f115 *?f115 +?f117 *?f117 +0*0)");
add(L"f120", L"sqrt(?f116 *?f116 +?f118 *?f118 +0*0)");
add(L"f121", L"?f120 +0-?f119 ");
add(L"f122", L"if(?f121 ,?f106 ,?f108 )");
add(L"f123", L"if(?f121 ,?f112 ,?f114 )");
add(L"f124", L"?f122 *?f10 /?f83 ");
add(L"f125", L"?f123 *?f12 /?f83 ");
add(L"f126", L"?f21 +?f124 -0");
add(L"f127", L"?f23 +?f125 -0");
add(L"f128", L"?f79 *?f25 /?f13 ");
add(L"f129", L"?f80 *?f25 /?f14 ");
add(L"f130", L"?f81 *?f25 /?f13 ");
add(L"f131", L"?f82 *?f25 /?f14 ");
add(L"f132", L"?f130 +0-?f128 ");
add(L"f133", L"?f131 +0-?f129 ");
add(L"f134", L"sqrt(?f132 *?f132 +?f133 *?f133 +0*0)");
add(L"f135", L"?f128 *?f131 /1");
add(L"f136", L"?f130 *?f129 /1");
add(L"f137", L"?f135 +0-?f136 ");
add(L"f138", L"?f25 *?f25 /1");
add(L"f139", L"?f134 *?f134 /1");
add(L"f140", L"?f138 *?f139 /1");
add(L"f141", L"?f137 *?f137 /1");
add(L"f142", L"?f140 +0-?f141 ");
add(L"f143", L"max(?f142 ,0)");
add(L"f144", L"sqrt(?f143 )");
add(L"f145", L"?f102 *?f132 /1");
add(L"f146", L"?f145 *?f144 /1");
add(L"f147", L"?f137 *?f133 /1");
add(L"f148", L"(?f147 +?f146 )/?f139 ");
add(L"f149", L"?f147 +0-?f146 ");
add(L"f150", L"?f149 *1/?f139 ");
add(L"f151", L"abs(?f133 )");
add(L"f152", L"?f151 *?f144 /1");
add(L"f153", L"?f137 *?f132 /-1");
add(L"f154", L"(?f153 +?f152 )/?f139 ");
add(L"f155", L"?f153 +0-?f152 ");
add(L"f156", L"?f155 *1/?f139 ");
add(L"f157", L"?f128 +0-?f148 ");
add(L"f158", L"?f128 +0-?f150 ");
add(L"f159", L"?f129 +0-?f154 ");
add(L"f160", L"?f129 +0-?f156 ");
add(L"f161", L"sqrt(?f157 *?f157 +?f159 *?f159 +0*0)");
add(L"f162", L"sqrt(?f158 *?f158 +?f160 *?f160 +0*0)");
add(L"f163", L"?f162 +0-?f161 ");
add(L"f164", L"if(?f163 ,?f148 ,?f150 )");
add(L"f165", L"if(?f163 ,?f154 ,?f156 )");
add(L"f166", L"?f164 *?f13 /?f25 ");
add(L"f167", L"?f165 *?f14 /?f25 ");
add(L"f168", L"?f21 +?f166 -0");
add(L"f169", L"?f23 +?f167 -0");
add(L"f170", L"(10800000*atan2(?f167 ,?f166 ))/pi");
add(L"f171", L"?f170 +21600000-0");
add(L"f172", L"if(?f170 ,?f170 ,?f171 )");
add(L"f173", L"?f4 +0-?f172 ");
add(L"f174", L"?f173 +21600000-0");
add(L"f175", L"if(?f173 ,?f173 ,?f174 )");
add(L"f176", L"?f172 +?f175 -0");
add(L"f177", L"0+0-?f175 ");
add(L"f178", L"?f126 +0-?f168 ");
add(L"f179", L"?f127 +0-?f169 ");
add(L"f180", L"sqrt(?f178 *?f178 +?f179 *?f179 +0*0)");
add(L"f181", L"?f180 *1/2");
add(L"f182", L"?f181 +0-?f7 ");
add(L"f183", L"if(?f182 ,?f126 ,?f73 )");
add(L"f184", L"if(?f182 ,?f127 ,?f74 )");
add(L"f185", L"if(?f182 ,?f168 ,?f77 )");
add(L"f186", L"if(?f182 ,?f169 ,?f78 )");
add(L"f187", L"(10800000*atan2(?f125 ,?f124 ))/pi");
add(L"f188", L"?f187 +21600000-0");
add(L"f189", L"if(?f187 ,?f187 ,?f188 )");
add(L"f190", L"?f189 +0-?f4 ");
add(L"f191", L"?f190 +0-21600000");
add(L"f192", L"if(?f190 ,?f191 ,?f190 )");
add(L"f193", L"?f4 +?f192 -0");
add(L"f194", L"0+0-?f192 ");
add(L"f195", L"?f15 *sin(pi*(?f4 )/10800000)");
add(L"f196", L"?f16 *cos(pi*(?f4 )/10800000)");
add(L"f197", L"?f15 *(cos(atan2(?f195 ,?f196 )))");
add(L"f198", L"?f16 *(sin(atan2(?f195 ,?f196 )))");
add(L"f199", L"?f21 +?f197 -0");
add(L"f200", L"?f23 +?f198 -0");
add(L"f201", L"?f4 +5400000-0");
add(L"f202", L"?f52 +0-5400000");
add(L"f203", L"?f52 +10800000-0");
add(L"f204", L"?f10 *cos(pi*(2700000)/10800000)");
add(L"f205", L"?f12 *sin(pi*(2700000)/10800000)");
add(L"f206", L"?f21 +0-?f204 ");
add(L"f207", L"?f21 +?f204 -0");
add(L"f208", L"?f23 +0-?f205 ");
add(L"f209", L"?f23 +?f205 -0");
add(L"f210", L"(?f176 )/60000.0");
add(L"f211", L"(?f177 )/60000.0");
add(L"f212", L"(?f193 )/60000.0");
add(L"f213", L"(?f194 )/60000.0");
/////////////////////////////////////////////////////////
_handle h;
h.position = L"?f57 ?f58";
handles.push_back(h);
h.position = L"?f63 ?f64";
handles.push_back(h);
h.position = L"?f126 ?f127";
h.r_minimum = L"0";
h.r_maximum = L"?f1";
handles.push_back(h);
h.position = L"?f77 ?f78";
h.r_minimum = L"0";
h.r_maximum = L"25000";
handles.push_back(h);
}
};
class oox_shape_CircularArrow : public oox_shape
......@@ -202,11 +287,12 @@ class oox_shape_CircularArrow : public oox_shape
public:
oox_shape_CircularArrow()
{
odf_type_name =L"ooxml-circularArrow";
odf_type_name = L"ooxml-circularArrow";
enhanced_path = L"M ?f60 ?f61 L ?f172 ?f173 ?f54 ?f55 ?f174 ?f175 ?f159 ?f160 Z N";
enhanced_path = L"M ?f60 ?f61 G ?f10 ?f12 ?f197 ?f198 L ?f172 ?f173 ?f54 ?f55 ?f174 ?f175 ?f159 ?f160 G ?f13 ?f14 ?f199 ?f200 Z N";
text_areas = L"?f193 ?f195 ?f194 ?f196";
modifiers = L"5085 327528 8671970 1800502 5932";
modifiers = L"12500 515062 20457681 17744048 18489";
view_box = L"0 0 0 0";
add(L"f0", L"if(0-$4 ,0,if(25000-$4 ,$4 ,25000))");
add(L"f1", L"?f0 *2/1");
......
......@@ -49,6 +49,7 @@
// shapetypePlaqueTabs,
// shapetypeSquareTabs,
// shapetypeTeardrop,
//+ shapetypeBlockArc
#include "../oox_shape_defines.h"
......@@ -838,4 +839,109 @@ public:
handles.push_back(h);
}
};
class oox_shape_BlockArc : public oox_shape
{
public:
oox_shape_BlockArc()
{
odf_type_name =L"ooxml-blockArc";
enhanced_path = L"M ?f18 ?f20 G ?f7 ?f9 ?f76 ?f77 L ?f35 ?f36 G ?f25 ?f26 ?f78 ?f79 Z N";
text_areas = L"f60 ?f68 ?f44 ?f52";
modifiers = L"13500000 10800000 12740";
view_box = L"0 0 0 0";
add(L"f0", L"if(0-$0 ,0,if(21599999-$0 ,$0 ,21599999))");
add(L"f1", L"if(0-$1 ,0,if(21599999-$1 ,$1 ,21599999))");
add(L"f2", L"if(0-$2 ,0,if(50000-$2 ,$2 ,50000))");
add(L"f3", L"?f1 +0-?f0 ");
add(L"f4", L"?f3 +21600000-0");
add(L"f5", L"if(?f3 ,?f3 ,?f4 )");
add(L"f6", L"0+0-?f5 ");
add(L"f7", L"logwidth/2");
add(L"f8", L"?f7 *sin(pi*(?f0 )/10800000)");
add(L"f9", L"logheight/2");
add(L"f10", L"?f9 *cos(pi*(?f0 )/10800000)");
add(L"f11", L"?f7 *sin(pi*(?f1 )/10800000)");
add(L"f12", L"?f9 *cos(pi*(?f1 )/10800000)");
add(L"f13", L"?f7 *(cos(atan2(?f8 ,?f10 )))");
add(L"f14", L"?f9 *(sin(atan2(?f8 ,?f10 )))");
add(L"f15", L"?f7 *(cos(atan2(?f11 ,?f12 )))");
add(L"f16", L"?f9 *(sin(atan2(?f11 ,?f12 )))");
add(L"f17", L"logwidth/2");
add(L"f18", L"?f17 +?f13 -0");
add(L"f19", L"logheight/2");
add(L"f20", L"?f19 +?f14 -0");
add(L"f21", L"?f17 +?f15 -0");
add(L"f22", L"?f19 +?f16 -0");
add(L"f23", L"min(logwidth,logheight)");
add(L"f24", L"?f23 *?f2 /100000");
add(L"f25", L"?f7 +0-?f24 ");
add(L"f26", L"?f9 +0-?f24 ");
add(L"f27", L"?f25 *sin(pi*(?f1 )/10800000)");
add(L"f28", L"?f26 *cos(pi*(?f1 )/10800000)");
add(L"f29", L"?f25 *sin(pi*(?f0 )/10800000)");
add(L"f30", L"?f26 *cos(pi*(?f0 )/10800000)");
add(L"f31", L"?f25 *(cos(atan2(?f27 ,?f28 )))");
add(L"f32", L"?f26 *(sin(atan2(?f27 ,?f28 )))");
add(L"f33", L"?f25 *(cos(atan2(?f29 ,?f30 )))");
add(L"f34", L"?f26 *(sin(atan2(?f29 ,?f30 )))");
add(L"f35", L"?f17 +?f31 -0");
add(L"f36", L"?f19 +?f32 -0");
add(L"f37", L"?f17 +?f33 -0");
add(L"f38", L"?f19 +?f34 -0");
add(L"f39", L"21600000+0-?f0 ");
add(L"f40", L"?f5 +0-?f39 ");
add(L"f41", L"max(?f18 ,?f35 )");
add(L"f42", L"max(?f21 ,?f37 )");
add(L"f43", L"max(?f41 ,?f42 )");
add(L"f44", L"if(?f40 ,logwidth,?f43 )");
add(L"f45", L"5400000+0-?f0 ");
add(L"f46", L"27000000+0-?f0 ");
add(L"f47", L"if(?f45 ,?f45 ,?f46 )");
add(L"f48", L"?f5 +0-?f47 ");
add(L"f49", L"max(?f20 ,?f36 )");
add(L"f50", L"max(?f22 ,?f38 )");
add(L"f51", L"max(?f49 ,?f50 )");
add(L"f52", L"if(?f48 ,logheight,?f51 )");
add(L"f53", L"10800000+0-?f0 ");
add(L"f54", L"32400000+0-?f0 ");
add(L"f55", L"if(?f53 ,?f53 ,?f54 )");
add(L"f56", L"?f5 +0-?f55 ");
add(L"f57", L"min(?f18 ,?f35 )");
add(L"f58", L"min(?f21 ,?f37 )");
add(L"f59", L"min(?f57 ,?f58 )");
add(L"f60", L"if(?f56 ,0,?f59 )");
add(L"f61", L"16200000+0-?f0 ");
add(L"f62", L"37800000+0-?f0 ");
add(L"f63", L"if(?f61 ,?f61 ,?f62 )");
add(L"f64", L"?f5 +0-?f63 ");
add(L"f65", L"min(?f20 ,?f36 )");
add(L"f66", L"min(?f22 ,?f38 )");
add(L"f67", L"min(?f65 ,?f66 )");
add(L"f68", L"if(?f64 ,0,?f67 )");
add(L"f69", L"(?f18 +?f37 )/2");
add(L"f70", L"(?f20 +?f38 )/2");
add(L"f71", L"(?f21 +?f35 )/2");
add(L"f72", L"(?f22 +?f36 )/2");
add(L"f73", L"?f0 +0-5400000");
add(L"f74", L"?f1 +5400000-0");
add(L"f75", L"(?f73 +?f74 )/2");
add(L"f76", L"(?f0 )/60000.0");
add(L"f77", L"(?f5 )/60000.0");
add(L"f78", L"(?f1 )/60000.0");
add(L"f79", L"(?f6 )/60000.0");
/////////////////////////////////////////////////////////
_handle h;
h.position = L"?f18 ?f20";
handles.push_back(h);
h.position = L"?f35 ?f36";
h.r_minimum = L"0";
h.r_maximum = L"50000";
handles.push_back(h);
}
};
}
......@@ -2014,7 +2014,7 @@ std::wstring odf_drawing_context::add_marker_style(int type)
{
if (type == 2) return L"";
std::wstring str_types [] = {L"ArrowMarker", L"DiamondMarker", L"None", L"OvalMarker", L"StealthMarker", L"TriangleMarker"};
std::wstring str_types [] = {L"None", L"ArrowMarker", L"DiamondMarker", L"OvalMarker", L"StealthMarker", L"TriangleMarker"};
style * style_=NULL;
if (impl_->styles_context_->find_odf_style(str_types[type],style_family::Marker,style_)) return str_types[type];
......@@ -2035,7 +2035,7 @@ std::wstring odf_drawing_context::add_marker_style(int type)
switch(type)
{
case 1:
case 2:
marker->svg_d_ = L"M0 564l564 567 567-567-567-564z";
marker->svg_viewBox_ = L"0 0 1131 1131";
break;
......@@ -2051,7 +2051,7 @@ std::wstring odf_drawing_context::add_marker_style(int type)
marker->svg_d_ = L"M1321 3493h-1321l702-3493z";
marker->svg_viewBox_ = L"0 0 1321 3493";
break;
case 0:
case 1:
default:
marker->svg_d_ =L"M0 2108v17 17l12 42 30 34 38 21 43 4 29-8 30-21 25-26 13-34 343-1532 339 1520 13 42 29 34 39 21 42 4 42-12 34-30 21-42v-39-12l-4 4-440-1998-9-42-25-39-38-25-43-8-42 8-38 25-26 39-8 42z";
marker->svg_viewBox_ = L"0 0 1122 2243";
......
......@@ -81,6 +81,7 @@ oox_shape_ptr oox_shape::create(int ooxPrstGeomType)
case SimpleTypes::shapetypeCurvedLeftArrow: return boost::make_shared<oox_shape_curvedLeftArrow>();
case SimpleTypes::shapetypeCurvedDownArrow: return boost::make_shared<oox_shape_curvedDownArrow>();
case SimpleTypes::shapetypeLeftCircularArrow: return boost::make_shared<oox_shape_LeftCircularArrow>();
case SimpleTypes::shapetypeBlockArc: return boost::make_shared<oox_shape_BlockArc>();
case SimpleTypes::shapetypePlaque: return boost::make_shared<oox_shape_Plaque>();
case SimpleTypes::shapetypeDoubleWave: return boost::make_shared<oox_shape_DoubleWave>();
......
......@@ -1011,7 +1011,7 @@ void OoxConverter::convert(PPTX::Logic::Ln *oox_line_prop, DWORD ARGB, PPTX::Log
{
if (oox_line_prop->headEnd->len.IsInit() || oox_line_prop->headEnd->type.IsInit() || oox_line_prop->headEnd->w.IsInit())
{
int type = 0, w = 1, len = 1;//medium arrow
int type = 1, w = 1, len = 1;//medium arrow
if (oox_line_prop->headEnd->len.IsInit()) len = oox_line_prop->headEnd->len->GetBYTECode();
if (oox_line_prop->headEnd->type.IsInit()) type = oox_line_prop->headEnd->type->GetBYTECode();
if (oox_line_prop->headEnd->w.IsInit()) w = oox_line_prop->headEnd->w->GetBYTECode();
......@@ -1023,11 +1023,11 @@ void OoxConverter::convert(PPTX::Logic::Ln *oox_line_prop, DWORD ARGB, PPTX::Log
{
if (oox_line_prop->tailEnd->len.IsInit() || oox_line_prop->tailEnd->type.IsInit() || oox_line_prop->tailEnd->w.IsInit())
{
int type = 0, w = 1, len = 1;//medium arrow
int type = 1, w = 1, len = 1;//medium arrow
if (oox_line_prop->tailEnd->len.IsInit()) len = oox_line_prop->tailEnd->len->GetBYTECode();
if (oox_line_prop->tailEnd->type.IsInit()) type = oox_line_prop->tailEnd->type->GetBYTECode();
if (oox_line_prop->tailEnd->w.IsInit()) w = oox_line_prop->tailEnd->w->GetBYTECode();
odf_context()->drawing_context()->set_line_tail(type, len, w);
}
}
......@@ -1883,8 +1883,11 @@ void OoxConverter::convert(PPTX::Logic::TxBody *oox_txBody, PPTX::Logic::ShapeSt
void OoxConverter::convert(PPTX::Logic::ArcTo *oox_geom_path)
{
if (!oox_geom_path) return;
int stAng = XmlUtils::GetInteger(oox_geom_path->stAng);
int swAng = XmlUtils::GetInteger(oox_geom_path->swAng);
std::wstring path_elm = oox_geom_path->hR + L" " + oox_geom_path->wR + L" " + oox_geom_path->swAng + L" " + oox_geom_path->stAng;
std::wstring path_elm = oox_geom_path->wR + L" " + oox_geom_path->hR + L" " + std::to_wstring(stAng/60000) + L" " + std::to_wstring(swAng /60000);
odf_context()->drawing_context()->add_path_element(std::wstring(L"G"), path_elm);
}
......
......@@ -651,15 +651,15 @@ void OoxConverter::convert(OOX::Vml::CStroke *vml_stroke)
switch(vml_stroke->m_oStartArrow.GetValue())
{
case SimpleTypes::strokearrowtypeBlock:
odf_context()->drawing_context()->set_line_head(SimpleTypes::lineendtypeStealth,vml_stroke->m_oStartArrowLength.GetValue(),vml_stroke->m_oStartArrowWidth.GetValue()); break;
odf_context()->drawing_context()->set_line_head(4, vml_stroke->m_oStartArrowLength.GetValue(), vml_stroke->m_oStartArrowWidth.GetValue()); break;
case SimpleTypes::strokearrowtypeClassic:
odf_context()->drawing_context()->set_line_head(SimpleTypes::lineendtypeArrow,vml_stroke->m_oStartArrowLength.GetValue(),vml_stroke->m_oStartArrowWidth.GetValue()); break;
odf_context()->drawing_context()->set_line_head(1, vml_stroke->m_oStartArrowLength.GetValue(), vml_stroke->m_oStartArrowWidth.GetValue()); break;
case SimpleTypes::strokearrowtypeDiamond:
odf_context()->drawing_context()->set_line_head(SimpleTypes::lineendtypeDiamond,vml_stroke->m_oStartArrowLength.GetValue(),vml_stroke->m_oStartArrowWidth.GetValue()); break;
odf_context()->drawing_context()->set_line_head(2, vml_stroke->m_oStartArrowLength.GetValue(), vml_stroke->m_oStartArrowWidth.GetValue()); break;
case SimpleTypes::strokearrowtypeOpen:
odf_context()->drawing_context()->set_line_head(SimpleTypes::lineendtypeTriangle,vml_stroke->m_oStartArrowLength.GetValue(),vml_stroke->m_oStartArrowWidth.GetValue()); break;
odf_context()->drawing_context()->set_line_head(5, vml_stroke->m_oStartArrowLength.GetValue(), vml_stroke->m_oStartArrowWidth.GetValue()); break;
case SimpleTypes::strokearrowtypeOval:
odf_context()->drawing_context()->set_line_head(SimpleTypes::lineendtypeOval,vml_stroke->m_oStartArrowLength.GetValue(),vml_stroke->m_oStartArrowWidth.GetValue()); break;
odf_context()->drawing_context()->set_line_head(3, vml_stroke->m_oStartArrowLength.GetValue(), vml_stroke->m_oStartArrowWidth.GetValue()); break;
case SimpleTypes::strokearrowtypeNone:
default:
break;
......@@ -667,15 +667,15 @@ void OoxConverter::convert(OOX::Vml::CStroke *vml_stroke)
switch(vml_stroke->m_oEndArrow.GetValue())
{
case SimpleTypes::strokearrowtypeBlock:
odf_context()->drawing_context()->set_line_tail(SimpleTypes::lineendtypeStealth,vml_stroke->m_oEndArrowLength.GetValue(),vml_stroke->m_oEndArrowWidth.GetValue()); break;
odf_context()->drawing_context()->set_line_tail(4, vml_stroke->m_oEndArrowLength.GetValue(), vml_stroke->m_oEndArrowWidth.GetValue()); break;
case SimpleTypes::strokearrowtypeClassic:
odf_context()->drawing_context()->set_line_tail(SimpleTypes::lineendtypeArrow,vml_stroke->m_oEndArrowLength.GetValue(),vml_stroke->m_oEndArrowWidth.GetValue()); break;
odf_context()->drawing_context()->set_line_tail(1, vml_stroke->m_oEndArrowLength.GetValue(), vml_stroke->m_oEndArrowWidth.GetValue()); break;
case SimpleTypes::strokearrowtypeDiamond:
odf_context()->drawing_context()->set_line_tail(SimpleTypes::lineendtypeDiamond,vml_stroke->m_oEndArrowLength.GetValue(),vml_stroke->m_oEndArrowWidth.GetValue()); break;
odf_context()->drawing_context()->set_line_tail(2, vml_stroke->m_oEndArrowLength.GetValue(), vml_stroke->m_oEndArrowWidth.GetValue()); break;
case SimpleTypes::strokearrowtypeOpen:
odf_context()->drawing_context()->set_line_tail(SimpleTypes::lineendtypeTriangle,vml_stroke->m_oEndArrowLength.GetValue(),vml_stroke->m_oEndArrowWidth.GetValue()); break;
odf_context()->drawing_context()->set_line_tail(5, vml_stroke->m_oEndArrowLength.GetValue(), vml_stroke->m_oEndArrowWidth.GetValue()); break;
case SimpleTypes::strokearrowtypeOval:
odf_context()->drawing_context()->set_line_tail(SimpleTypes::lineendtypeOval,vml_stroke->m_oEndArrowLength.GetValue(),vml_stroke->m_oEndArrowWidth.GetValue()); break;
odf_context()->drawing_context()->set_line_tail(3, vml_stroke->m_oEndArrowLength.GetValue(), vml_stroke->m_oEndArrowWidth.GetValue()); break;
case SimpleTypes::strokearrowtypeNone:
default:
break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment