Commit b4181e01 authored by Elen.Subbotina's avatar Elen.Subbotina Committed by Alexander Trofimov

ASCPresentationEditor.dll (1.0.0.109)

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@58877 954022d7-b5bf-4e40-9824-e11837661b57
parent b37f342c
......@@ -63,13 +63,14 @@ __interface IAVSPresentationEditor: IDispatch
[id(2001)] HRESULT GetAdditionalParam([in] BSTR ParamName, [out, retval] VARIANT* ParamValue);
};
[dispinterface, uuid("34EC371F-3F73-4a40-B8A6-FD21B9C3E789")]
__interface _IAVSPresentationEditorEvents
{
};
//?????? ???
//[dispinterface, uuid("34EC371F-3F73-4a40-B8A6-FD21B9C3E789")]
//__interface _IAVSPresentationEditorEvents
//{
//};
// CAVSPresentationEditor
[coclass, uuid("29759D68-916E-4317-BC8B-35793F7448B3"), event_source(com), threading(apartment), vi_progid("AVSPptEditor.PptEditor"), progid("AVSPptEditor.PptEditor.1"), version(1.0)]
[coclass, uuid("29759D68-916E-4317-BC8B-35793F7448B3")/*, event_source(com)*/, threading(apartment), vi_progid("AVSPptEditor.PptEditor"), progid("AVSPptEditor.PptEditor.1"), version(1.0)]
class ATL_NO_VTABLE CAVSPresentationEditor:
public IAVSPresentationEditor
{
......@@ -109,8 +110,6 @@ protected:
#endif
public:
__event __interface _IAVSPresentationEditorEvents;
CAVSPresentationEditor()
{
m_hSynchMutex = CreateMutex(NULL, FALSE, NULL);
......
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCPresentationEditor", "ASCPresentationEditor_vs2005.vcproj", "{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}"
ProjectSection(ProjectDependencies) = postProject
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
{DC24710E-8DF2-4A7A-B7C3-2313E294143C} = {DC24710E-8DF2-4A7A-B7C3-2313E294143C}
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD} = {617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81} = {7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "agg2d", "..\DesktopEditor\agg-2.4\agg_vs2005.vcproj", "{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCHTMLRenderer", "..\ASCHTMLRenderer\ASCHTMLRendererLib.vcproj", "{DC24710E-8DF2-4A7A-B7C3-2313E294143C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "font_engine", "..\DesktopEditor\fontengine\font_engine_vs2005.vcproj", "{C739151F-5384-41DF-A1A6-F089E2C1AD56}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "..\DesktopEditor\graphics\graphics_vs2005.vcproj", "{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "..\DesktopEditor\freetype-2.5.2\builds\windows\vc2005\freetype.vcproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raster", "..\DesktopEditor\raster\raster_vs2005.vcproj", "{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cximage", "..\DesktopEditor\cximage\CxImage\cximage_vs2005.vcproj", "{BC52A07C-A797-423D-8C4F-8678805BBB36}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jpeg", "..\DesktopEditor\cximage\jpeg\Jpeg_vs2005.vcproj", "{818753F2-DBB9-4D3B-898A-A604309BE470}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tiff", "..\DesktopEditor\cximage\tiff\Tiff_vs2005.vcproj", "{0588563C-F05C-428C-B21A-DD74756628B3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "png", "..\DesktopEditor\cximage\png\png_vs2005.vcproj", "{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mng", "..\DesktopEditor\cximage\mng\mng_vs2005.vcproj", "{40A69F40-063E-43FD-8543-455495D8733E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\DesktopEditor\cximage\zlib\zlib_vs2005.vcproj", "{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdcr", "..\DesktopEditor\cximage\raw\libdcr_vs2005.vcproj", "{DF861D33-9BC1-418C-82B1-581F590FE169}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpsd", "..\DesktopEditor\cximage\libpsd\libpsd_vs2005.vcproj", "{9A037A69-D1DF-4505-AB2A-6CB3641C476E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jasper", "..\DesktopEditor\cximage\jasper\jasper_vs2005.vcproj", "{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug Multithreaded|Win32 = Debug Multithreaded|Win32
Debug Multithreaded|x64 = Debug Multithreaded|x64
Debug Singlethreaded|Win32 = Debug Singlethreaded|Win32
Debug Singlethreaded|x64 = Debug Singlethreaded|x64
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release Multithreaded|Win32 = Release Multithreaded|Win32
Release Multithreaded|x64 = Release Multithreaded|x64
Release Singlethreaded|Win32 = Release Singlethreaded|Win32
Release Singlethreaded|x64 = Release Singlethreaded|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
ReleaseASC|Win32 = ReleaseASC|Win32
ReleaseASC|x64 = ReleaseASC|x64
Unicode Debug|Win32 = Unicode Debug|Win32
Unicode Debug|x64 = Unicode Debug|x64
Unicode Release|Win32 = Unicode Release|Win32
Unicode Release|x64 = Unicode Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Debug|Win32.ActiveCfg = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Debug|Win32.Build.0 = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Debug|x64.ActiveCfg = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Release Multithreaded|Win32.ActiveCfg = ReleaseASC|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Release Multithreaded|Win32.Build.0 = ReleaseASC|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Release Multithreaded|x64.ActiveCfg = ReleaseASC|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Release Singlethreaded|Win32.ActiveCfg = ReleaseASC|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Release Singlethreaded|Win32.Build.0 = ReleaseASC|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Release Singlethreaded|x64.ActiveCfg = ReleaseASC|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Release|Win32.ActiveCfg = Release|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Release|Win32.Build.0 = Release|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Release|x64.ActiveCfg = Release|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.ReleaseASC|Win32.ActiveCfg = ReleaseASC|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.ReleaseASC|Win32.Build.0 = ReleaseASC|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.ReleaseASC|x64.ActiveCfg = ReleaseASC|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Unicode Debug|Win32.Build.0 = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Unicode Release|Win32.ActiveCfg = Release|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Unicode Release|Win32.Build.0 = Release|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Unicode Release|x64.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|Win32.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|Win32.Build.0 = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|x64.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Multithreaded|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Multithreaded|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Multithreaded|x64.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Singlethreaded|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Singlethreaded|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Singlethreaded|x64.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|x64.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseASC|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseASC|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseASC|x64.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Debug|Win32.Build.0 = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Release|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Release|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Release|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|Win32.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|Win32.Build.0 = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|x64.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release Multithreaded|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release Multithreaded|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release Multithreaded|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release Singlethreaded|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release Singlethreaded|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release Singlethreaded|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseASC|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseASC|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseASC|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Unicode Debug|Win32.Build.0 = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Unicode Release|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Unicode Release|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Unicode Release|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|Win32.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|Win32.Build.0 = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|x64.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Multithreaded|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Multithreaded|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Multithreaded|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Singlethreaded|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Singlethreaded|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Singlethreaded|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseASC|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseASC|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseASC|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Debug|Win32.Build.0 = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Release|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Release|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Release|x64.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|Win32.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|Win32.Build.0 = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|x64.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Multithreaded|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Multithreaded|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Multithreaded|x64.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Singlethreaded|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Singlethreaded|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Singlethreaded|x64.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|x64.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseASC|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseASC|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseASC|x64.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Debug|Win32.Build.0 = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Release|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Release|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Release|x64.ActiveCfg = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|Win32.ActiveCfg = Debug Multithreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|Win32.Build.0 = Debug Multithreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|x64.ActiveCfg = Debug Multithreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|Win32.ActiveCfg = Debug Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|Win32.Build.0 = Debug Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|x64.ActiveCfg = Debug Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|Win32.ActiveCfg = Release Multithreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|Win32.Build.0 = Release Multithreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|x64.ActiveCfg = Release Multithreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|Win32.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|Win32.Build.0 = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|x64.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseASC|Win32.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseASC|Win32.Build.0 = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseASC|x64.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Debug|Win32.Build.0 = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Release|Win32.ActiveCfg = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Release|Win32.Build.0 = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Release|x64.ActiveCfg = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Multithreaded|x64.Build.0 = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Singlethreaded|x64.Build.0 = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|Win32.ActiveCfg = Debug|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|Win32.Build.0 = Debug|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|x64.ActiveCfg = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|x64.Build.0 = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Multithreaded|Win32.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Multithreaded|x64.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Multithreaded|x64.Build.0 = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Singlethreaded|x64.Build.0 = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|Win32.ActiveCfg = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|Win32.Build.0 = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|x64.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|x64.Build.0 = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseASC|Win32.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseASC|x64.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseASC|x64.Build.0 = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Release|x64.Build.0 = Unicode Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Multithreaded|x64.Build.0 = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Singlethreaded|x64.Build.0 = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|Win32.ActiveCfg = Debug|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|Win32.Build.0 = Debug|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|x64.ActiveCfg = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|x64.Build.0 = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Multithreaded|Win32.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Multithreaded|x64.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Multithreaded|x64.Build.0 = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Singlethreaded|x64.Build.0 = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|Win32.ActiveCfg = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|Win32.Build.0 = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|x64.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|x64.Build.0 = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseASC|Win32.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseASC|x64.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseASC|x64.Build.0 = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Release|x64.Build.0 = Unicode Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Multithreaded|x64.Build.0 = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Singlethreaded|x64.Build.0 = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|Win32.ActiveCfg = Debug|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|Win32.Build.0 = Debug|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|x64.ActiveCfg = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|x64.Build.0 = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Multithreaded|Win32.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Multithreaded|x64.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Multithreaded|x64.Build.0 = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Singlethreaded|x64.Build.0 = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|Win32.ActiveCfg = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|Win32.Build.0 = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|x64.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|x64.Build.0 = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseASC|Win32.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseASC|x64.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseASC|x64.Build.0 = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Release|x64.Build.0 = Unicode Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Multithreaded|x64.Build.0 = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Singlethreaded|x64.Build.0 = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|Win32.ActiveCfg = Debug|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|Win32.Build.0 = Debug|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|x64.ActiveCfg = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|x64.Build.0 = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Multithreaded|Win32.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Multithreaded|x64.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Multithreaded|x64.Build.0 = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Singlethreaded|x64.Build.0 = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|Win32.ActiveCfg = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|Win32.Build.0 = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|x64.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|x64.Build.0 = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseASC|Win32.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseASC|x64.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseASC|x64.Build.0 = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Release|x64.Build.0 = Unicode Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Multithreaded|x64.Build.0 = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Singlethreaded|x64.Build.0 = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|Win32.ActiveCfg = Debug|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|Win32.Build.0 = Debug|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|x64.ActiveCfg = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|x64.Build.0 = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Multithreaded|Win32.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Multithreaded|x64.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Multithreaded|x64.Build.0 = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Singlethreaded|x64.Build.0 = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|Win32.ActiveCfg = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|Win32.Build.0 = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|x64.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|x64.Build.0 = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseASC|Win32.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseASC|x64.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseASC|x64.Build.0 = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Release|x64.Build.0 = Unicode Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Multithreaded|x64.Build.0 = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Singlethreaded|x64.Build.0 = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|Win32.ActiveCfg = Debug|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|Win32.Build.0 = Debug|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|x64.ActiveCfg = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|x64.Build.0 = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release Multithreaded|Win32.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release Multithreaded|x64.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release Multithreaded|x64.Build.0 = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release Singlethreaded|x64.Build.0 = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release|Win32.ActiveCfg = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Release|Win32.Build.0 = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Release|x64.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release|x64.Build.0 = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseASC|Win32.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseASC|x64.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseASC|x64.Build.0 = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Release|x64.Build.0 = Unicode Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug Multithreaded|x64.Build.0 = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug Singlethreaded|x64.Build.0 = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug|Win32.ActiveCfg = Debug|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug|Win32.Build.0 = Debug|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug|x64.ActiveCfg = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug|x64.Build.0 = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release Multithreaded|Win32.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release Multithreaded|x64.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release Multithreaded|x64.Build.0 = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release Singlethreaded|x64.Build.0 = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release|Win32.ActiveCfg = Release|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release|Win32.Build.0 = Release|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release|x64.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release|x64.Build.0 = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.ReleaseASC|Win32.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.ReleaseASC|x64.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.ReleaseASC|x64.Build.0 = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Release|x64.Build.0 = Unicode Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Multithreaded|x64.Build.0 = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Singlethreaded|x64.Build.0 = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|Win32.ActiveCfg = Debug|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|Win32.Build.0 = Debug|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|x64.ActiveCfg = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|x64.Build.0 = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Multithreaded|Win32.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Multithreaded|x64.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Multithreaded|x64.Build.0 = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Singlethreaded|x64.Build.0 = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|Win32.ActiveCfg = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|Win32.Build.0 = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|x64.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|x64.Build.0 = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseASC|Win32.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseASC|x64.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseASC|x64.Build.0 = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Release|x64.Build.0 = Unicode Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Multithreaded|x64.Build.0 = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Singlethreaded|x64.Build.0 = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|Win32.ActiveCfg = Debug|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|Win32.Build.0 = Debug|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|x64.ActiveCfg = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|x64.Build.0 = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Multithreaded|Win32.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Multithreaded|x64.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Multithreaded|x64.Build.0 = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Singlethreaded|x64.Build.0 = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|Win32.ActiveCfg = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|Win32.Build.0 = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|x64.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|x64.Build.0 = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseASC|Win32.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseASC|x64.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseASC|x64.Build.0 = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Release|x64.Build.0 = Unicode Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Multithreaded|x64.Build.0 = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Singlethreaded|x64.Build.0 = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|Win32.ActiveCfg = Debug|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|Win32.Build.0 = Debug|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|x64.ActiveCfg = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|x64.Build.0 = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Multithreaded|Win32.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Multithreaded|x64.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Multithreaded|x64.Build.0 = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Singlethreaded|x64.Build.0 = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|Win32.ActiveCfg = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|Win32.Build.0 = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|x64.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|x64.Build.0 = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseASC|Win32.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseASC|x64.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseASC|x64.Build.0 = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Release|x64.Build.0 = Unicode Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......
......@@ -149,7 +149,7 @@
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="..\ASCPresentationEditor;..\Common"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_MATH_DEFINES;PPT_DEF;PPTX_DEF;ODP_DEF;_PRESENTATION_WRITER_;USE_ODF_FILE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="2"
......@@ -424,6 +424,14 @@
<File
RelativePath=".\OfficeDrawing\Elements.cpp"
>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="0"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\OfficeDrawing\Elements.h"
......@@ -436,6 +444,14 @@
<File
RelativePath=".\OfficeDrawing\Layout.cpp"
>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="0"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\OfficeDrawing\Layout.h"
......@@ -468,6 +484,14 @@
<File
RelativePath=".\OfficeDrawing\TextAttributesEx.cpp"
>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="0"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\OfficeDrawing\TextAttributesEx.h"
......@@ -485,30 +509,6 @@
RelativePath=".\OfficeDrawing\Theme.h"
>
</File>
<Filter
Name="Graphics"
>
<File
RelativePath=".\OfficeDrawing\Shapes\Graphics\agg_trans_affine.cpp"
>
</File>
<File
RelativePath=".\OfficeDrawing\Shapes\Graphics\agg_trans_affine.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Shapes\Graphics\ap_AggPlusEnums.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Shapes\Graphics\ap_AggPlusTypes.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Shapes\Graphics\Matrix.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="PPTXWriter"
......
#pragma once
#ifdef _WIN32
#include <atlcoll.h>
#include "Gdiplus.h"
#include <atlcoll.h>
#include <gdiplus.h>
#endif
#include "Metric.h"
......
......@@ -128,7 +128,7 @@ namespace NSPresentationEditor
class CAudioOverlay
{
public:
CAtlArray<CAudioPart> m_arParts;
std::vector<CAudioPart> m_arParts;
double m_dAllDuration;
public:
......@@ -144,7 +144,7 @@ namespace NSPresentationEditor
}
CAudioOverlay& operator=(const CAudioOverlay& oSrc)
{
m_arParts.Copy(oSrc.m_arParts);
m_arParts.insert(m_arParts.end(), oSrc.m_arParts.begin(), oSrc.m_arParts.end());
m_dAllDuration = oSrc.m_dAllDuration;
return *this;
}
......@@ -153,7 +153,7 @@ namespace NSPresentationEditor
void Calculate()
{
size_t nCount = m_arParts.GetCount();
size_t nCount = m_arParts.size();
//
for (size_t i = 0; i < nCount; ++i)
......@@ -233,7 +233,7 @@ namespace NSPresentationEditor
{
CString strRes = _T("");
size_t nCount = m_arParts.GetCount();
size_t nCount = m_arParts.size();
for (size_t i = 0; i < nCount; ++i)
{
......
......@@ -7,8 +7,8 @@ namespace NSPresentationEditor
class CDocument : public IBase
{
public:
CAtlArray<CTheme> m_arThemes;
CAtlArray<CSlide> m_arSlides;
std::vector<CTheme> m_arThemes;
std::vector<CSlide> m_arSlides;
CMetricInfo m_oInfo;
......@@ -24,8 +24,8 @@ namespace NSPresentationEditor
CDocument& operator=(const CDocument& oSrc)
{
m_arThemes.Copy(oSrc.m_arThemes);
m_arSlides.Copy(oSrc.m_arSlides);
m_arThemes.insert(m_arThemes.end(), oSrc.m_arThemes.begin(), oSrc.m_arThemes.end());
m_arSlides.insert(m_arSlides.end(), oSrc.m_arSlides.begin(), oSrc.m_arSlides.end());
m_oInfo = oSrc.m_oInfo;
......@@ -47,15 +47,15 @@ namespace NSPresentationEditor
//
inline void ClearThemes()
{
m_arThemes.RemoveAll();
m_arThemes.clear();
}
inline void AddTheme(const CTheme& oTheme)
{
m_arThemes.Add(oTheme);
m_arThemes.push_back(oTheme);
}
inline void UpdateTheme(size_t nIndex, const CTheme& oTheme)
{
if (nIndex >= m_arThemes.GetCount())
if (nIndex >= m_arThemes.size())
return;
m_arThemes[nIndex] = oTheme;
......@@ -63,15 +63,15 @@ namespace NSPresentationEditor
//
inline void ClearSlides()
{
m_arSlides.RemoveAll();
m_arSlides.clear();
}
inline void AddSlide(const CSlide& oSlide)
{
m_arSlides.Add(oSlide);
m_arSlides.push_back(oSlide);
}
inline void UpdateSlide(size_t nIndex, const CSlide& oSlide)
{
if (nIndex >= m_arSlides.GetCount())
if (nIndex >= m_arSlides.size())
return;
m_arSlides[nIndex] = oSlide;
......@@ -82,17 +82,17 @@ namespace NSPresentationEditor
// layouts
void CalculateLayouts()
{
size_t nCountThemes = m_arThemes.GetCount();
size_t nCountThemes = m_arThemes.size();
for (size_t i = 0; i < nCountThemes; ++i)
{
CTheme* pTheme = &m_arThemes[i];
size_t nCountLayouts = pTheme->m_arLayouts.GetCount();
size_t nCountLayouts = pTheme->m_arLayouts.size();
for (size_t j = 0; j < nCountLayouts; ++j)
{
CLayout* pLayout = &pTheme->m_arLayouts[j];
size_t nCountElements = pLayout->m_arElements.GetCount();
size_t nCountElements = pLayout->m_arElements.size();
for (size_t nElem = 0; nElem < nCountElements; ++nElem)
{
if (pLayout->m_bUseThemeColorScheme)
......@@ -113,12 +113,12 @@ namespace NSPresentationEditor
{
CalculateLayouts();
size_t nCount = m_arSlides.GetCount();
size_t nCount = m_arSlides.size();
for (size_t nIndex = 0; nIndex < nCount; ++nIndex)
{
LONG lThemeID = m_arSlides[nIndex].m_lThemeID;
if ((0 > lThemeID) || (lThemeID >= (LONG)m_arThemes.GetCount()))
if ((0 > lThemeID) || (lThemeID >= (LONG)m_arThemes.size()))
{
m_arSlides[nIndex].Calculate(NULL);
continue;
......@@ -128,23 +128,23 @@ namespace NSPresentationEditor
}
//
size_t nCountThemes = m_arThemes.GetCount();
size_t nCountThemes = m_arThemes.size();
for (size_t i = 0; i < nCountThemes; ++i)
{
CTheme* pTheme = &m_arThemes[i];
size_t nCountEl = pTheme->m_arElements.GetCount();
size_t nCountEl = pTheme->m_arElements.size();
for (size_t j = 0; j < nCountEl; ++j)
{
pTheme->m_arElements[j]->m_pTheme = pTheme;
}
size_t nCountLayouts = pTheme->m_arLayouts.GetCount();
size_t nCountLayouts = pTheme->m_arLayouts.size();
for (size_t j = 0; j < nCountLayouts; ++j)
{
CLayout* pLayout = &pTheme->m_arLayouts[j];
nCountEl = pLayout->m_arElements.GetCount();
nCountEl = pLayout->m_arElements.size();
for (size_t k = 0; k < nCountEl; ++k)
{
pLayout->m_arElements[k]->m_pTheme = pTheme;
......@@ -156,7 +156,7 @@ namespace NSPresentationEditor
// /
void ClearPreset()
{
size_t nCount = m_arSlides.GetCount();
size_t nCount = m_arSlides.size();
for (size_t nIndex = 0; nIndex < nCount; ++nIndex)
{
m_arSlides[nIndex].ClearPreset();
......@@ -172,18 +172,18 @@ namespace NSPresentationEditor
CAudioOverlay oAudioOverlay;
CalculateTimes(oAudioOverlay);
size_t nCountSlides = m_arSlides.GetCount();
size_t nCountSlides = m_arSlides.size();
if ( nCountSlides > 0 )
{
double dDuration = 0.0;
for (size_t nIndex = 0; nIndex < m_arSlides.GetCount(); ++nIndex)
for (size_t nIndex = 0; nIndex < m_arSlides.size(); ++nIndex)
{
dDuration += m_arSlides[nIndex].m_dDuration;
}
CString XmlSlideSource = _T("");
for ( size_t nIndex = 0; nIndex < m_arSlides.GetCount(); ++nIndex )
for ( size_t nIndex = 0; nIndex < m_arSlides.size(); ++nIndex )
{
CSlide* pSlide = &m_arSlides[nIndex];
......@@ -208,7 +208,7 @@ namespace NSPresentationEditor
}
else
{
int nElements = (int)pSlide->m_arElements.GetCount();
int nElements = (int)pSlide->m_arElements.size();
for ( int nElem = 0; nElem < nElements; ++nElem )
{
if (etVideo == pSlide->m_arElements[nElem]->m_etType)
......@@ -490,7 +490,7 @@ namespace NSPresentationEditor
{
CaclulateSlideTimes();
LONG lCount = (LONG)m_arSlides.GetCount();
LONG lCount = (LONG)m_arSlides.size();
double dAllDuration = 0;
if (lCount > 0)
......@@ -514,7 +514,7 @@ namespace NSPresentationEditor
double Duration = 0;
double Transition2 = 0;
int nCount = (int)m_arSlides.GetCount();
int nCount = (int)m_arSlides.size();
for (int i = 0; i < nCount; ++i)
{
CSlide* pSlide = &m_arSlides[i];
......@@ -530,7 +530,7 @@ namespace NSPresentationEditor
// , . - ,
//
size_t nSize = pSlide->m_arElements.GetCount();
size_t nSize = pSlide->m_arElements.size();
for (size_t j = 0; j < nSize; ++j)
{
if (etVideo == pSlide->m_arElements[j]->m_etType)
......@@ -576,7 +576,7 @@ namespace NSPresentationEditor
CSlide* pSlide = &m_arSlides[nIndex];
size_t nCountElems = pSlide->m_arElements.GetCount();
size_t nCountElems = pSlide->m_arElements.size();
for (size_t i = 0; i < nCountElems; ++i)
{
IElement* pElement = pSlide->m_arElements[i];
......@@ -617,7 +617,7 @@ namespace NSPresentationEditor
}
CAudioPart oPart(pAudioElem);
oAudioOverlay.m_arParts.Add(oPart);
oAudioOverlay.m_arParts.push_back(oPart);
}
break;
......@@ -659,9 +659,10 @@ namespace NSPresentationEditor
XmlUtils::CXmlNode oNodeT;
oThemes.GetAt(i, oNodeT);
m_arThemes.Add();
CTheme elem;
m_arThemes.push_back(elem);
CTheme* pTheme = &m_arThemes[m_arThemes.GetCount() - 1];
CTheme* pTheme = &m_arThemes.back();
pTheme->m_oInfo = m_oInfo;
pTheme->ReadFromXml(oNodeT);
}
......@@ -680,9 +681,10 @@ namespace NSPresentationEditor
XmlUtils::CXmlNode oNodeS;
oSlides.GetAt(i, oNodeS);
m_arSlides.Add();
CSlide elem;
m_arSlides.push_back(elem);
CSlide* pSlide = &m_arSlides[m_arSlides.GetCount() - 1];
CSlide* pSlide = &m_arSlides.back();
pSlide->m_lThemeID = oNodeS.ReadAttributeInt(_T("themeid"));
pSlide->m_lLayoutID = oNodeS.ReadAttributeInt(_T("layoutid"));
......@@ -714,18 +716,18 @@ namespace NSPresentationEditor
//CAudioOverlay oAudioOverlay;
//CalculateTimes(oAudioOverlay);
size_t nCountSlides = m_arSlides.GetCount();
size_t nCountSlides = m_arSlides.size();
if ( nCountSlides > 0 )
{
double dDuration = 0.0;
for (size_t nIndex = 0; nIndex < m_arSlides.GetCount(); ++nIndex)
for (size_t nIndex = 0; nIndex < m_arSlides.size(); ++nIndex)
{
dDuration += m_arSlides[nIndex].m_dDuration;
}
CString XmlSlideSource = _T("");
for ( size_t nIndex = 0; nIndex < m_arSlides.GetCount(); ++nIndex )
for ( size_t nIndex = 0; nIndex < m_arSlides.size(); ++nIndex )
{
CSlide* pSlide = &m_arSlides[nIndex];
......@@ -753,11 +755,11 @@ namespace NSPresentationEditor
CTheme* pTheme = NULL;
CLayout* pLayout = NULL;
if ((0 <= pSlide->m_lThemeID) && (pSlide->m_lThemeID < (LONG)m_arThemes.GetCount()))
if ((0 <= pSlide->m_lThemeID) && (pSlide->m_lThemeID < (LONG)m_arThemes.size()))
{
pTheme = &m_arThemes[pSlide->m_lThemeID];
}
if ((NULL != pTheme) && ((0 <= pSlide->m_lLayoutID) && (pSlide->m_lLayoutID < (LONG)pTheme->m_arLayouts.GetCount())))
if ((NULL != pTheme) && ((0 <= pSlide->m_lLayoutID) && (pSlide->m_lLayoutID < (LONG)pTheme->m_arLayouts.size())))
{
pLayout = &pTheme->m_arLayouts[pSlide->m_lLayoutID];
}
......@@ -807,7 +809,7 @@ namespace NSPresentationEditor
// theme elements
if (pSlide->m_bShowMasterShapes && (NULL != pLayout) && pLayout->m_bShowMasterShapes && (NULL != pTheme))
{
size_t nCount = pTheme->m_arElements.GetCount();
size_t nCount = pTheme->m_arElements.size();
for (size_t ii = 0; ii < nCount; ++ii)
XmlTransforms += pTheme->m_arElements[ii]->SaveToXML();
}
......@@ -815,7 +817,7 @@ namespace NSPresentationEditor
// layout elements
if (NULL != pLayout)
{
size_t nCount = pLayout->m_arElements.GetCount();
size_t nCount = pLayout->m_arElements.size();
for (size_t ii = 0; ii < nCount; ++ii)
{
if (-1 == pLayout->m_arElements[ii]->m_lPlaceholderType)
......@@ -823,7 +825,7 @@ namespace NSPresentationEditor
}
}
int nElements = (int)pSlide->m_arElements.GetCount();
int nElements = (int)pSlide->m_arElements.size();
for ( int nElem = 0; nElem < nElements; ++nElem )
{
if (etVideo == pSlide->m_arElements[nElem]->m_etType)
......@@ -882,7 +884,7 @@ namespace NSPresentationEditor
CAudioOverlay oAudioOverlay;
CalculateTimes(oAudioOverlay);
size_t nCountSlides = m_arSlides.GetCount();
size_t nCountSlides = m_arSlides.size();
if ( nCountSlides > 0 )
{
CString XmlSlideSource = _T("");
......@@ -900,7 +902,7 @@ namespace NSPresentationEditor
pSlide->m_dDuration, lWidthPix, lHeightPix,
pSlide->m_oSlideShow.m_oTransition.m_nEffectType, pSlide->m_oSlideShow.m_oTransition.m_dSpeed );
int nElements = (int)pSlide->m_arElements.GetCount();
int nElements = (int)pSlide->m_arElements.size();
for ( int nElem = 0; nElem < nElements; ++nElem )
{
if (etAudio == pSlide->m_arElements[nElem]->m_etType)
......@@ -939,7 +941,7 @@ namespace NSPresentationEditor
oWriter.WriteString(_T("<Presentation xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"") + strMetric);
oWriter.WriteString(_T("<Themes>"));
size_t nCount = m_arThemes.GetCount();
size_t nCount = m_arThemes.size();
for (size_t i = 0; i < nCount; ++i)
{
oWriter.WriteString(m_arThemes[i].ToXmlEditor(m_oInfo));
......@@ -947,7 +949,7 @@ namespace NSPresentationEditor
oWriter.WriteString(_T("</Themes>"));
oWriter.WriteString(_T("<Slides>"));
nCount = m_arSlides.GetCount();
nCount = m_arSlides.size();
for (size_t i = 0; i < nCount; ++i)
{
NSPresentationEditor::CTheme* pThemeSlide = NULL;
......@@ -955,11 +957,11 @@ namespace NSPresentationEditor
NSPresentationEditor::CSlide* pSlide = &m_arSlides[i];
if ((0 <= pSlide->m_lThemeID) && (pSlide->m_lThemeID < (LONG)m_arThemes.GetCount()))
if ((0 <= pSlide->m_lThemeID) && (pSlide->m_lThemeID < (LONG)m_arThemes.size()))
{
pThemeSlide = &m_arThemes[pSlide->m_lThemeID];
}
if ((NULL != pThemeSlide) && (0 <= pSlide->m_lLayoutID) && (pSlide->m_lLayoutID < (LONG)pThemeSlide->m_arLayouts.GetCount()))
if ((NULL != pThemeSlide) && (0 <= pSlide->m_lLayoutID) && (pSlide->m_lLayoutID < (LONG)pThemeSlide->m_arLayouts.size()))
{
pLayoutSlide = &pThemeSlide->m_arLayouts[pSlide->m_lLayoutID];
}
......@@ -981,13 +983,13 @@ namespace NSPresentationEditor
double dScaleX = (double)m_oInfo.m_lMillimetresHor / m_oInfo.m_lUnitsHor;
double dScaleY = (double)m_oInfo.m_lMillimetresVer / m_oInfo.m_lUnitsVer;
size_t nCountThemes = m_arThemes.GetCount();
size_t nCountThemes = m_arThemes.size();
for (size_t i = 0; i < nCountThemes; ++i)
{
CTheme* pTheme = &m_arThemes[i];
pTheme->CalculateStyles();
size_t nCountElems = pTheme->m_arElements.GetCount();
size_t nCountElems = pTheme->m_arElements.size();
for (size_t nIndexEl = 0; nIndexEl < nCountElems; ++nIndexEl)
{
IElement* pElement = pTheme->m_arElements[nIndexEl];
......@@ -1001,7 +1003,7 @@ namespace NSPresentationEditor
pElement->SetupProperties(NULL, pTheme, NULL);
}
size_t nCountLayouts = pTheme->m_arLayouts.GetCount();
size_t nCountLayouts = pTheme->m_arLayouts.size();
for (size_t nIndexL = 0; nIndexL < nCountLayouts; ++nIndexL)
{
CLayout* pLayout = &pTheme->m_arLayouts[nIndexL];
......@@ -1011,7 +1013,7 @@ namespace NSPresentationEditor
pLayout->m_lWidth = m_oInfo.m_lMillimetresHor;
pLayout->m_lHeight = m_oInfo.m_lMillimetresVer;
size_t nCountLayoutElements = pLayout->m_arElements.GetCount();
size_t nCountLayoutElements = pLayout->m_arElements.size();
for (size_t nIndexLayoutEl = 0; nIndexLayoutEl < nCountLayoutElements; ++nIndexLayoutEl)
{
IElement* pElement = pLayout->m_arElements[nIndexLayoutEl];
......@@ -1069,7 +1071,7 @@ namespace NSPresentationEditor
}
}
size_t nCountSlides = m_arSlides.GetCount();
size_t nCountSlides = m_arSlides.size();
for (size_t i = 0; i < nCountSlides; ++i)
{
CSlide* pSlide = &m_arSlides[i];
......@@ -1086,11 +1088,11 @@ namespace NSPresentationEditor
CLayout* pLayout = NULL;
if (NULL != pTheme)
{
if ((0 <= pSlide->m_lLayoutID) && (pSlide->m_lLayoutID < (LONG)pTheme->m_arLayouts.GetCount()))
if ((0 <= pSlide->m_lLayoutID) && (pSlide->m_lLayoutID < (LONG)pTheme->m_arLayouts.size()))
pLayout = &pTheme->m_arLayouts[pSlide->m_lLayoutID];
}
size_t nCountElems = pSlide->m_arElements.GetCount();
size_t nCountElems = pSlide->m_arElements.size();
for (size_t nIndexEl = 0; nIndexEl < nCountElems; ++nIndexEl)
{
IElement* pElement = pSlide->m_arElements[nIndexEl];
......@@ -1112,7 +1114,7 @@ namespace NSPresentationEditor
virtual CString SerializeToXml()
{
CString strDoc = _T("<Document>");
for (size_t i = 0; i < m_arSlides.GetCount(); ++i)
for (size_t i = 0; i < m_arSlides.size(); ++i)
{
strDoc += m_arSlides[i].SerializeToXml();
}
......
......@@ -1087,7 +1087,7 @@ namespace NSPresentationEditor
NormalizeCoordsByMetric();
m_oShape.m_pShape = new CPPTShape();
m_oShape.m_oText.m_arParagraphs.RemoveAll();
m_oShape.m_oText.m_arParagraphs.clear();
XmlUtils::CXmlNode oNodeBody;
if (oNode.GetNode(_T("body"), oNodeBody))
......
......@@ -170,7 +170,8 @@ namespace NSPresentationEditor
LONG lColor = 0;
for (size_t i = 0; i < nCount; i += 3)
{
m_arColorScheme.push_back(elm);
CColor elem;
m_arColorScheme.push_back(elem);
oStyles.m_arStyles[i].LoadColor(m_arColorScheme[lColor]);
++lColor;
}
......@@ -282,7 +283,7 @@ namespace NSPresentationEditor
CStylesCSS oCSS;
oCSS.LoadStyles(oNodeS.GetText());
size_t nCountS = oCSS.m_arStyles.GetCount();
size_t nCountS = oCSS.m_arStyles.size();
for (size_t nIndexStyle = 0; nIndexStyle < nCountS; ++nIndexStyle)
{
LONG _lPhType = 0;
......@@ -316,18 +317,18 @@ namespace NSPresentationEditor
CStylesCSS oCSS;
oCSS.LoadStyles(oNodeFontRefs.GetText());
size_t nCountS = oCSS.m_arStyles.GetCount();
size_t nCountS = oCSS.m_arStyles.size();
for (size_t i = 0; i < nCountS; ++i)
{
oCSS.m_arStyles[i].m_strClassName.Delete(0, 6);
LONG lPhType = XmlUtils::GetInteger(oCSS.m_arStyles[i].m_strClassName);
std::map<CString, CString>::CPair* pPair = oCSS.m_arStyles[i].m_mapSettings.find(_T("font-index"));
if (NULL != pPair)
std::map<CString, CString>::iterator pPair = oCSS.m_arStyles[i].m_mapSettings.find(_T("font-index"));
if (oCSS.m_arStyles[i].m_mapSettings.end() != pPair)
{
LONG lFontRef = XmlUtils::GetInteger(pPair->second);
size_t nCountEl = m_arElements.GetCount();
size_t nCountEl = m_arElements.size();
for (size_t j = 0; j < nCountEl; ++j)
{
if ((lPhType == m_arElements[j]->m_lPlaceholderType) &&
......
......@@ -664,7 +664,7 @@ STDMETHODIMP NSPresentationEditor::CSVGConverter::DrawPath(long nType)
m_oSvgPen = m_oPen;
m_oSvgBrush = m_oBrush;
int lIndexPath = m_oSvgPath.m_arParts.GetSize() - 1;
int lIndexPath = m_oSvgPath.m_arParts.size() - 1;
if (lIndexPath < 0)
return S_OK;
......@@ -741,7 +741,7 @@ STDMETHODIMP NSPresentationEditor::CSVGConverter::SetCommandParams(double dAngle
double m11 = bFlipX ? -1.0 : 1.0;
double m22 = bFlipY ? -1.0 : 1.0;
CMatrix oMatrix(1, 0, 0, 1, 0, 0);
Aggplus::CMatrix oMatrix(1, 0, 0, 1, 0, 0);
if ((0 != dAngle) || (0 != lFlags))
{
......@@ -763,7 +763,7 @@ STDMETHODIMP NSPresentationEditor::CSVGConverter::SetCommandParams(double dAngle
}
STDMETHODIMP NSPresentationEditor::CSVGConverter::SetTransform(double dA, double dB, double dC, double dD, double dE, double dF)
{
CMatrix oTrans(dA, dB, dC, dD, dE, dF);
Aggplus::CMatrix oTrans(dA, dB, dC, dD, dE, dF);
m_oTransform = oTrans;
CalculateFullTransform();
......@@ -870,6 +870,6 @@ STDMETHODIMP NSPresentationEditor::CSVGConverter::OpenFile(BSTR bsFilePath)
}
STDMETHODIMP NSPresentationEditor::CSVGConverter::CloseFile()
{
m_oSvgPath.m_arParts.RemoveAll();
m_oSvgPath.m_arParts.clear();
return S_OK;
}
......@@ -2,7 +2,8 @@
#include "../stdafx.h"
#include "Shapes\Shape.h"
#include "Shapes\Graphics\Matrix.h"
#include "Shapes\BaseShape\Path.h"
#include "..\..\DesktopEditor\graphics\Matrix.h"
#include "../../ASCImageStudio3/ASCGraphics/Interfaces/ASCRenderer.h"
namespace NSPresentationEditor
......@@ -187,9 +188,9 @@ namespace NSPresentationEditor
ASCGraphics::IASCGraphicSimpleComverter* m_pSimpleGraphicsConverter; //
ASCGraphics::IASCFontManager* m_pFontManager; //
CMatrix m_oBaseTransform; // (: -> )
CMatrix m_oTransform; //
CMatrix m_oFullTransform; // (m_oBaseTransform * m_oTransform)
Aggplus::CMatrix m_oBaseTransform; // (: -> )
Aggplus::CMatrix m_oTransform; //
Aggplus::CMatrix m_oFullTransform; // (m_oBaseTransform * m_oTransform)
double m_dTransformAngle;
......@@ -242,14 +243,16 @@ namespace NSPresentationEditor
double y = dY;
m_oFullTransform.TransformPoint(x, y);
int lIndexPath = m_oSvgPath.m_arParts.GetSize() - 1;
int lIndexPath = m_oSvgPath.m_arParts.size() - 1;
if (lIndexPath < 0)
return;
CSlice oSlice(rtMoveTo);
oSlice.AddParam(x);
oSlice.AddParam(y);
m_oSvgPath.m_arParts[lIndexPath].m_arSlices.Add(oSlice);
m_oSvgPath.m_arParts[lIndexPath].m_arSlices.push_back(oSlice);
}
inline void LineTo(const double& dX, const double& dY)
{
......@@ -257,14 +260,16 @@ namespace NSPresentationEditor
double y = dY;
m_oFullTransform.TransformPoint(x, y);
int lIndexPath = m_oSvgPath.m_arParts.GetSize() - 1;
int lIndexPath = m_oSvgPath.m_arParts.size() - 1;
if (lIndexPath < 0)
return;
CSlice oSlice(rtLineTo);
oSlice.AddParam(x);
oSlice.AddParam(y);
m_oSvgPath.m_arParts[lIndexPath].m_arSlices.Add(oSlice);
m_oSvgPath.m_arParts[lIndexPath].m_arSlices.push_back(oSlice);
}
inline void CurveTo(const double& x1, const double& y1, const double& x2, const double& y2, const double& x3, const double& y3)
{
......@@ -280,35 +285,37 @@ namespace NSPresentationEditor
double _y3 = y3;
m_oFullTransform.TransformPoint(_x3, _y3);
int lIndexPath = m_oSvgPath.m_arParts.GetSize() - 1;
int lIndexPath = m_oSvgPath.m_arParts.size() - 1;
if (lIndexPath < 0)
return;
CSlice oSlice(rtCurveTo);
oSlice.AddParam(_x1);
oSlice.AddParam(_y1);
oSlice.AddParam(_x2);
oSlice.AddParam(_y2);
oSlice.AddParam(_x3);
oSlice.AddParam(_y3);
m_oSvgPath.m_arParts[lIndexPath].m_arSlices.Add(oSlice);
m_oSvgPath.m_arParts[lIndexPath].m_arSlices.push_back(oSlice);
}
void Start()
{
CPartPath oPart;
m_oSvgPath.m_arParts.Add(oPart);
m_oSvgPath.m_arParts.push_back(oPart);
}
void End()
{
}
void Close()
{
int lIndexPath = m_oSvgPath.m_arParts.GetSize() - 1;
int lIndexPath = m_oSvgPath.m_arParts.size() - 1;
if (lIndexPath < 0)
return;
CSlice oSlice(rtClose);
m_oSvgPath.m_arParts[lIndexPath].m_arSlices.Add(oSlice);
m_oSvgPath.m_arParts[lIndexPath].m_arSlices.push_back(oSlice);
}
void _SetFont()
......
......@@ -34,12 +34,13 @@ namespace NSGuidesOdp
double GetNum (CString str)
{
long numGuide = mapGuides.FindKey(str);
long numAdj = mapAdjustments.FindKey(str);
if (numGuide>=0)
return numGuide;
else if ( numAdj >=0)
return numAdj;
std::map<CString, long>::iterator numGuide = mapGuides.find(str);
std::map<CString, long>::iterator numAdj = mapAdjustments.find(str);
if (numGuide != mapGuides.end())
return numGuide->second;
else if ( numAdj != mapAdjustments.end())
return numAdj->second;
return 0;
}
......@@ -87,6 +88,7 @@ namespace NSGuidesOdp
Adjustments->clear();
for(int i = 0; i < manager.Adjustments->size(); i++)
Adjustments->push_back((*manager.Adjustments)[i]);
Guides->clear();
for(int i = 0; i < manager.Guides->size(); i++)
Guides->push_back((*manager.Guides)[i]);
......@@ -96,49 +98,50 @@ namespace NSGuidesOdp
void AddAdjustment(const CString& name, const long value)
{
long num = mapAdjustments.FindKey(name);
if(num >= 0)
std::map<CString, long>::iterator num = mapAdjustments.find(name);
if(num != mapAdjustments.end())
{
(*Adjustments)[mapAdjustments.GetValueAt(num)] = value;
(*Adjustments)[num->second] = value;
return;
}
Adjustments->push_back(value);
mapAdjustments.push_back(name, Adjustments->size() - 1);
mapAdjustments.insert(std::pair<CString, long>(name, Adjustments->size() - 1));
}
void AddGuide(const CString& name, const CString& fmla)
{
long num = mapGuides.FindKey(name);
if(num >= 0)
std::map<CString, long>::iterator num = mapGuides.find(name);
if(num != mapGuides.end())
{
strGuides[mapGuides.GetValueAt(num)] = fmla;
(*Guides)[mapGuides.GetValueAt(num)] = dNonDefResult;
strGuides[num->second] = fmla;
(*Guides)[num->second] = dNonDefResult;
return;
}
strGuides.push_back(fmla);
Guides->push_back(dNonDefResult);
mapGuides.insert(name, strGuides.size() - 1);
mapGuides.insert(std::pair<CString, long>(name, strGuides.size() - 1));
}
double GetValue(CString str)
{
long numGuide = mapGuides.FindKey(str);
long numAdj = mapAdjustments.FindKey(str);
if(numGuide >= 0)
std::map<CString, long>::iterator numGuide = mapGuides.find(str);
std::map<CString, long>::iterator numAdj = mapAdjustments.find(str);
if(numGuide != mapGuides.end())
{
double res = (*Guides)[mapGuides.GetValueAt(numGuide)];
double res = (*Guides)[numGuide->second];
if(res < dNonDefResult)
return res;
TParser parser;
parser.Compile(strGuides[mapGuides.GetValueAt(numGuide)], *this);
parser.Compile(strGuides[numGuide->second], *this);
parser.Evaluate();
parser.Decompile();
(*Guides)[mapGuides.GetValueAt(numGuide)] = parser.GetResult();
(*Guides)[numGuide->second] = parser.GetResult();
return parser.GetResult();
}
if(numAdj >= 0)
if(numAdj != mapAdjustments.end())
{
return (*Adjustments)[mapAdjustments.GetValueAt(numAdj)];
return (*Adjustments)[numAdj->second];
}
return XmlUtils::GetInteger(CString(str));
}
......
......@@ -382,7 +382,7 @@ public:
if(viewBox != _T(""))
{
CSimpleArray<CString> borders;
std::vector<CString> borders;
// CString left, top, right, bottom;
NSStringUtils::ParseString(_T(" "), viewBox, &borders);
......@@ -397,7 +397,7 @@ public:
FManager.AddGuide(_T("bottom"), borders[3]);
FManager.Clear();
for(int i = 0; i < m_oPath.m_arParts.GetSize(); i++)
for(int i = 0; i < m_oPath.m_arParts.size(); i++)
{
m_oPath.m_arParts[i].height = (long)FManager.GetValue(_T("height"));
m_oPath.m_arParts[i].width = (long)FManager.GetValue(_T("width"));
......@@ -414,11 +414,12 @@ public:
{
if(xml != _T(""))
{
CSimpleArray<CString> adjusts;
std::vector<CString> adjusts;
NSStringUtils::ParseString(_T(" "), xml, &adjusts);
m_arAdjustments.RemoveAll();
m_arAdjustments.clear();
CString buffer;
for(int i = 0; i < adjusts.GetSize(); i++)
for(int i = 0; i < adjusts.size(); i++)
{
buffer.Format(_T("%i"), i);
FManager.AddAdjustment(CString(_T("$")) + buffer, XmlUtils::GetInteger(adjusts[i]));
......@@ -447,7 +448,7 @@ public:
{
if(xml != _T(""))
{
CSimpleArray<CString> borders;
std::vector<CString> borders;
NSStringUtils::ParseString(_T(" "), xml, &borders);
RECT TextRect;
......@@ -455,9 +456,10 @@ public:
TextRect.top = (long)FManager.GetValue(borders[1]);
TextRect.right = (long)FManager.GetValue(borders[2]);
TextRect.bottom = (long)FManager.GetValue(borders[3]);
if(m_arTextRects.GetSize() > 0)
if(m_arTextRects.size() > 0)
m_arTextRects[0] = TextRect;
else m_arTextRects.Add(TextRect);
else m_arTextRects.push_back(TextRect);
// return true;
}
......@@ -470,7 +472,7 @@ public:
{
m_oPath.FromXML(xml, FManager);
for(int i = 0; i < m_oPath.m_arParts.GetSize(); i++)
for(int i = 0; i < m_oPath.m_arParts.size(); i++)
{
m_oPath.m_arParts[i].height = (long)FManager.GetValue(_T("height"));
m_oPath.m_arParts[i].width = (long)FManager.GetValue(_T("width"));
......
......@@ -1762,7 +1762,7 @@ namespace NSPresentationEditor
void FromXML(CString strPath , NSGuidesOdp::CFormulaManager& pManager)
{
NSStringUtils::CheckPathOn_Fill_Stroke(strPath, m_bFill, m_bStroke);
CSimpleArray<CString> oArray;
std::vector<CString> oArray;
//NSStringUtils::ParsePath(strPath, &oArray);
NSStringUtils::ParseString(_T(" "), strPath, &oArray);
......@@ -1770,7 +1770,7 @@ namespace NSPresentationEditor
LONG lValue;
bool bRes = true;
for (int nIndex = 0; nIndex < oArray.GetSize(); ++nIndex)
for (int nIndex = 0; nIndex < oArray.size(); ++nIndex)
{
eRuler = GetRuler(oArray[nIndex], bRes);
if (bRes)
......@@ -1792,9 +1792,9 @@ namespace NSPresentationEditor
else
{
lValue = (long)pManager.GetValue(oArray[nIndex]);
if (0 != m_arSlices.GetSize())
if (0 != m_arSlices.size())
{
m_arSlices[m_arSlices.GetSize() - 1].AddParam(lValue);
m_arSlices[m_arSlices.size() - 1].AddParam(lValue);
}
}
}
......@@ -1924,15 +1924,15 @@ namespace NSPresentationEditor
#if defined(ODP_DEF)
void FromXML(CString strPath, NSGuidesOdp::CFormulaManager& pManager)
{
m_arParts.RemoveAll();
CSimpleArray<CString> oArray;
m_arParts.clear();
std::vector<CString> oArray;
NSStringUtils::ParseString(_T("N"), strPath, &oArray);
for (int nIndex = 0; nIndex < oArray.GetSize(); ++nIndex)
for (int nIndex = 0; nIndex < oArray.size(); ++nIndex)
{
CPartPath oPath;
m_arParts.push_back(oPath);
m_arParts[m_arParts.GetSize() - 1].FromXML(oArray[nIndex], pManager);
m_arParts[m_arParts.size() - 1].FromXML(oArray[nIndex], pManager);
}
}
#endif
......
#pragma once
#include "ap_AggPlusEnums.h"
#include "ap_AggPlusTypes.h"
#include "agg_trans_affine.h"
namespace NSPresentationEditor
{
class CMatrix
{
public:
CMatrix(double m11, double m12, double m21, double m22, double dx, double dy) : m_agg_mtx(m11, m12, m21, m22, dx, dy)
{
}
CMatrix() : m_agg_mtx()
{
}
~CMatrix()
{
}
void Translate(double offsetX, double offsetY, Aggplus::MatrixOrder order = Aggplus::MatrixOrderPrepend)
{
if (order == Aggplus::MatrixOrderPrepend)
{
m_agg_mtx.premultiply(agg::trans_affine_translation(offsetX, offsetY));
}
else
{
m_agg_mtx.multiply(agg::trans_affine_translation(offsetX, offsetY));
}
}
void Scale(double scaleX, double scaleY, Aggplus::MatrixOrder order = Aggplus::MatrixOrderPrepend)
{
if (order == Aggplus::MatrixOrderPrepend)
{
m_agg_mtx.premultiply(agg::trans_affine_scaling(scaleX, scaleY));
}
else
{
m_agg_mtx.multiply(agg::trans_affine_scaling(scaleX, scaleY));
}
}
void Shear(double shearX, double shearY, Aggplus::MatrixOrder order = Aggplus::MatrixOrderPrepend)
{
if (order == Aggplus::MatrixOrderPrepend)
{
m_agg_mtx.premultiply(agg::trans_affine_skewing(shearX, shearY));
}
else
{
m_agg_mtx.multiply(agg::trans_affine_skewing(shearX, shearY));
}
}
void TransformPoint(double& x, double& y)
{
m_agg_mtx.transform(&x, &y);
}
void Rotate(double angle, Aggplus::MatrixOrder order = Aggplus::MatrixOrderPrepend)
{
if (order == Aggplus::MatrixOrderPrepend)
{
m_agg_mtx.premultiply(agg::trans_affine_rotation(agg::deg2rad(angle)));
}
else
{
m_agg_mtx.multiply(agg::trans_affine_rotation(agg::deg2rad(angle)));
}
}
void RotateAt(double angle, double x, double y, Aggplus::MatrixOrder order = Aggplus::MatrixOrderPrepend)
{
Translate(-x, -y, order);
if (order == Aggplus::MatrixOrderPrepend)
{
m_agg_mtx.premultiply(agg::trans_affine_rotation(agg::deg2rad(angle)));
}
else
{
m_agg_mtx.multiply(agg::trans_affine_rotation(agg::deg2rad(angle)));
}
Translate(x, y, order);
}
void Multiply(const CMatrix* matrix, Aggplus::MatrixOrder order = Aggplus::MatrixOrderPrepend)
{
if (order == Aggplus::MatrixOrderPrepend)
{
m_agg_mtx.premultiply(matrix->m_agg_mtx);
}
else
{
m_agg_mtx.multiply(matrix->m_agg_mtx);
}
}
double OffsetX() const
{
double M[6]; m_agg_mtx.store_to(M);
return (M[4]);
}
double OffsetY() const
{
double M[6]; m_agg_mtx.store_to(M);
return (M[5]);
}
bool GetElements(float* m) const
{
double M[6]; m_agg_mtx.store_to(M);
m[0]=(float)M[0];
m[1]=(float)M[1];
m[2]=(float)M[2];
m[3]=(float)M[3];
m[4]=(float)M[4];
m[5]=(float)M[5];
return true;
}
bool GetElements(double* m) const
{
m_agg_mtx.store_to(m);
return true;
}
void Reset()
{
m_agg_mtx.reset();
}
const CMatrix& operator=(const CMatrix& Src)
{
m_agg_mtx = Src.m_agg_mtx;
return *this;
}
bool Invert()
{
double d = m_agg_mtx.determinant();
if (0.0001 >= abs(d))
return false;
m_agg_mtx.invert();
return true;
}
//Temp
//Used in X_BrushLinearGradient constructor
double z_Rotation() const
{
return agg::rad2deg(m_agg_mtx.rotation());
}
public:
agg::trans_affine m_agg_mtx;
};
}
\ No newline at end of file
//
// Affine transformations
//
//----------------------------------------------------------------------------
#include "stdafx.h"
#include "agg_trans_affine.h"
namespace agg
{
//------------------------------------------------------------------------
const trans_affine& trans_affine::parl_to_parl(const double* src,
const double* dst)
{
sx = src[2] - src[0];
shy = src[3] - src[1];
shx = src[4] - src[0];
sy = src[5] - src[1];
tx = src[0];
ty = src[1];
invert();
multiply(trans_affine(dst[2] - dst[0], dst[3] - dst[1],
dst[4] - dst[0], dst[5] - dst[1],
dst[0], dst[1]));
return *this;
}
//------------------------------------------------------------------------
const trans_affine& trans_affine::rect_to_parl(double x1, double y1,
double x2, double y2,
const double* parl)
{
double src[6];
src[0] = x1; src[1] = y1;
src[2] = x2; src[3] = y1;
src[4] = x2; src[5] = y2;
parl_to_parl(src, parl);
return *this;
}
//------------------------------------------------------------------------
const trans_affine& trans_affine::parl_to_rect(const double* parl,
double x1, double y1,
double x2, double y2)
{
double dst[6];
dst[0] = x1; dst[1] = y1;
dst[2] = x2; dst[3] = y1;
dst[4] = x2; dst[5] = y2;
parl_to_parl(parl, dst);
return *this;
}
//------------------------------------------------------------------------
const trans_affine& trans_affine::multiply(const trans_affine& m)
{
double t0 = sx * m.sx + shy * m.shx;
double t2 = shx * m.sx + sy * m.shx;
double t4 = tx * m.sx + ty * m.shx + m.tx;
shy = sx * m.shy + shy * m.sy;
sy = shx * m.shy + sy * m.sy;
ty = tx * m.shy + ty * m.sy + m.ty;
sx = t0;
shx = t2;
tx = t4;
return *this;
}
//------------------------------------------------------------------------
const trans_affine& trans_affine::invert()
{
double d = determinant_reciprocal();
double t0 = sy * d;
sy = sx * d;
shy = -shy * d;
shx = -shx * d;
double t4 = -tx * t0 - ty * shx;
ty = -tx * shy - ty * sy;
sx = t0;
tx = t4;
return *this;
}
//------------------------------------------------------------------------
const trans_affine& trans_affine::flip_x()
{
sx = -sx;
shy = -shy;
tx = -tx;
return *this;
}
//------------------------------------------------------------------------
const trans_affine& trans_affine::flip_y()
{
shx = -shx;
sy = -sy;
ty = -ty;
return *this;
}
//------------------------------------------------------------------------
const trans_affine& trans_affine::reset()
{
sx = sy = 1.0;
shy = shx = tx = ty = 0.0;
return *this;
}
//------------------------------------------------------------------------
bool trans_affine::is_identity(double epsilon) const
{
return is_equal_eps(sx, 1.0, epsilon) &&
is_equal_eps(shy, 0.0, epsilon) &&
is_equal_eps(shx, 0.0, epsilon) &&
is_equal_eps(sy, 1.0, epsilon) &&
is_equal_eps(tx, 0.0, epsilon) &&
is_equal_eps(ty, 0.0, epsilon);
}
//------------------------------------------------------------------------
bool trans_affine::is_valid(double epsilon) const
{
return fabs(sx) > epsilon && fabs(sy) > epsilon;
}
//------------------------------------------------------------------------
bool trans_affine::is_equal(const trans_affine& m, double epsilon) const
{
return is_equal_eps(sx, m.sx, epsilon) &&
is_equal_eps(shy, m.shy, epsilon) &&
is_equal_eps(shx, m.shx, epsilon) &&
is_equal_eps(sy, m.sy, epsilon) &&
is_equal_eps(tx, m.tx, epsilon) &&
is_equal_eps(ty, m.ty, epsilon);
}
//------------------------------------------------------------------------
double trans_affine::rotation() const
{
double x1 = 0.0;
double y1 = 0.0;
double x2 = 1.0;
double y2 = 0.0;
transform(&x1, &y1);
transform(&x2, &y2);
return atan2(y2-y1, x2-x1);
}
//------------------------------------------------------------------------
void trans_affine::translation(double* dx, double* dy) const
{
*dx = tx;
*dy = ty;
}
//------------------------------------------------------------------------
void trans_affine::scaling(double* x, double* y) const
{
double x1 = 0.0;
double y1 = 0.0;
double x2 = 1.0;
double y2 = 1.0;
trans_affine t(*this);
t *= trans_affine_rotation(-rotation());
t.transform(&x1, &y1);
t.transform(&x2, &y2);
*x = x2 - x1;
*y = y2 - y1;
}
}
#pragma once
#ifndef _USE_MATH_DEFINES
#define _USE_MATH_DEFINES
#endif
#include <math.h>
namespace agg
{
const double affine_epsilon = 1e-14;
//------------------------------------------------------------is_equal_eps
template<class T> inline bool is_equal_eps(T v1, T v2, T epsilon)
{
return fabs(v1 - v2) <= double(epsilon);
}
//------------------------------------------------------------------deg2rad
inline double deg2rad(double deg)
{
return deg * M_PI / 180.0;
}
//------------------------------------------------------------------rad2deg
inline double rad2deg(double rad)
{
return rad * 180.0 / M_PI;
}
//============================================================trans_affine
//
// See Implementation agg_trans_affine.cpp
//
// Affine transformation are linear transformations in Cartesian coordinates
// (strictly speaking not only in Cartesian, but for the beginning we will
// think so). They are rotation, scaling, translation and skewing.
// After any affine transformation a line segment remains a line segment
// and it will never become a curve.
//
// There will be no math about matrix calculations, since it has been
// described many times. Ask yourself a very simple question:
// "why do we need to understand and use some matrix stuff instead of just
// rotating, scaling and so on". The answers are:
//
// 1. Any combination of transformations can be done by only 4 multiplications
// and 4 additions in floating point.
// 2. One matrix transformation is equivalent to the number of consecutive
// discrete transformations, i.e. the matrix "accumulates" all transformations
// in the order of their settings. Suppose we have 4 transformations:
// * rotate by 30 degrees,
// * scale X to 2.0,
// * scale Y to 1.5,
// * move to (100, 100).
// The result will depend on the order of these transformations,
// and the advantage of matrix is that the sequence of discret calls:
// rotate(30), scaleX(2.0), scaleY(1.5), move(100,100)
// will have exactly the same result as the following matrix transformations:
//
// affine_matrix m;
// m *= rotate_matrix(30);
// m *= scaleX_matrix(2.0);
// m *= scaleY_matrix(1.5);
// m *= move_matrix(100,100);
//
// m.transform_my_point_at_last(x, y);
//
// What is the good of it? In real life we will set-up the matrix only once
// and then transform many points, let alone the convenience to set any
// combination of transformations.
//
// So, how to use it? Very easy - literally as it's shown above. Not quite,
// let us write a correct example:
//
// agg::trans_affine m;
// m *= agg::trans_affine_rotation(30.0 * 3.1415926 / 180.0);
// m *= agg::trans_affine_scaling(2.0, 1.5);
// m *= agg::trans_affine_translation(100.0, 100.0);
// m.transform(&x, &y);
//
// The affine matrix is all you need to perform any linear transformation,
// but all transformations have origin point (0,0). It means that we need to
// use 2 translations if we want to rotate someting around (100,100):
//
// m *= agg::trans_affine_translation(-100.0, -100.0); // move to (0,0)
// m *= agg::trans_affine_rotation(30.0 * 3.1415926 / 180.0); // rotate
// m *= agg::trans_affine_translation(100.0, 100.0); // move back to (100,100)
//----------------------------------------------------------------------
struct trans_affine
{
double sx, shy, shx, sy, tx, ty;
//------------------------------------------ Construction
// Identity matrix
trans_affine() :
sx(1.0), shy(0.0), shx(0.0), sy(1.0), tx(0.0), ty(0.0)
{}
// Custom matrix. Usually used in derived classes
trans_affine(double v0, double v1, double v2,
double v3, double v4, double v5) :
sx(v0), shy(v1), shx(v2), sy(v3), tx(v4), ty(v5)
{}
// Custom matrix from m[6]
explicit trans_affine(const double* m) :
sx(m[0]), shy(m[1]), shx(m[2]), sy(m[3]), tx(m[4]), ty(m[5])
{}
// Rectangle to a parallelogram.
trans_affine(double x1, double y1, double x2, double y2,
const double* parl)
{
rect_to_parl(x1, y1, x2, y2, parl);
}
// Parallelogram to a rectangle.
trans_affine(const double* parl,
double x1, double y1, double x2, double y2)
{
parl_to_rect(parl, x1, y1, x2, y2);
}
// Arbitrary parallelogram transformation.
trans_affine(const double* src, const double* dst)
{
parl_to_parl(src, dst);
}
//---------------------------------- Parellelogram transformations
// transform a parallelogram to another one. Src and dst are
// pointers to arrays of three points (double[6], x1,y1,...) that
// identify three corners of the parallelograms assuming implicit
// fourth point. The arguments are arrays of double[6] mapped
// to x1,y1, x2,y2, x3,y3 where the coordinates are:
// *-----------------*
// / (x3,y3)/
// / /
// /(x1,y1) (x2,y2)/
// *-----------------*
const trans_affine& parl_to_parl(const double* src,
const double* dst);
const trans_affine& rect_to_parl(double x1, double y1,
double x2, double y2,
const double* parl);
const trans_affine& parl_to_rect(const double* parl,
double x1, double y1,
double x2, double y2);
//------------------------------------------ Operations
// Reset - load an identity matrix
const trans_affine& reset();
// Direct transformations operations
const trans_affine& translate(double x, double y);
const trans_affine& rotate(double a);
const trans_affine& scale(double s);
const trans_affine& scale(double x, double y);
// Multiply matrix to another one
const trans_affine& multiply(const trans_affine& m);
// Multiply "m" to "this" and assign the result to "this"
const trans_affine& premultiply(const trans_affine& m);
// Multiply matrix to inverse of another one
const trans_affine& multiply_inv(const trans_affine& m);
// Multiply inverse of "m" to "this" and assign the result to "this"
const trans_affine& premultiply_inv(const trans_affine& m);
// Invert matrix. Do not try to invert degenerate matrices,
// there's no check for validity. If you set scale to 0 and
// then try to invert matrix, expect unpredictable result.
const trans_affine& invert();
// Mirroring around X
const trans_affine& flip_x();
// Mirroring around Y
const trans_affine& flip_y();
//------------------------------------------- Load/Store
// Store matrix to an array [6] of double
void store_to(double* m) const
{
*m++ = sx; *m++ = shy; *m++ = shx; *m++ = sy; *m++ = tx; *m++ = ty;
}
// Load matrix from an array [6] of double
const trans_affine& load_from(const double* m)
{
sx = *m++; shy = *m++; shx = *m++; sy = *m++; tx = *m++; ty = *m++;
return *this;
}
//------------------------------------------- Operators
// Multiply the matrix by another one
const trans_affine& operator *= (const trans_affine& m)
{
return multiply(m);
}
// Multiply the matrix by inverse of another one
const trans_affine& operator /= (const trans_affine& m)
{
return multiply_inv(m);
}
// Multiply the matrix by another one and return
// the result in a separete matrix.
trans_affine operator * (const trans_affine& m)
{
return trans_affine(*this).multiply(m);
}
// Multiply the matrix by inverse of another one
// and return the result in a separete matrix.
trans_affine operator / (const trans_affine& m)
{
return trans_affine(*this).multiply_inv(m);
}
// Calculate and return the inverse matrix
trans_affine operator ~ () const
{
trans_affine ret = *this;
return ret.invert();
}
// Equal operator with default epsilon
bool operator == (const trans_affine& m) const
{
return is_equal(m, affine_epsilon);
}
// Not Equal operator with default epsilon
bool operator != (const trans_affine& m) const
{
return !is_equal(m, affine_epsilon);
}
//-------------------------------------------- Transformations
// Direct transformation of x and y
void transform(double* x, double* y) const;
// Direct transformation of x and y, 2x2 matrix only, no translation
void transform_2x2(double* x, double* y) const;
// Inverse transformation of x and y. It works slower than the
// direct transformation. For massive operations it's better to
// invert() the matrix and then use direct transformations.
void inverse_transform(double* x, double* y) const;
//-------------------------------------------- Auxiliary
// Calculate the determinant of matrix
double determinant() const
{
return sx * sy - shy * shx;
}
// Calculate the reciprocal of the determinant
double determinant_reciprocal() const
{
return 1.0 / (sx * sy - shy * shx);
}
// Get the average scale (by X and Y).
// Basically used to calculate the approximation_scale when
// decomposinting curves into line segments.
double scale() const;
// Check to see if the matrix is not degenerate
bool is_valid(double epsilon = affine_epsilon) const;
// Check to see if it's an identity matrix
bool is_identity(double epsilon = affine_epsilon) const;
// Check to see if two matrices are equal
bool is_equal(const trans_affine& m, double epsilon = affine_epsilon) const;
// Determine the major parameters. Use with caution considering
// possible degenerate cases.
double rotation() const;
void translation(double* dx, double* dy) const;
void scaling(double* x, double* y) const;
void scaling_abs(double* x, double* y) const;
};
//------------------------------------------------------------------------
inline void trans_affine::transform(double* x, double* y) const
{
register double tmp = *x;
*x = tmp * sx + *y * shx + tx;
*y = tmp * shy + *y * sy + ty;
}
//------------------------------------------------------------------------
inline void trans_affine::transform_2x2(double* x, double* y) const
{
register double tmp = *x;
*x = tmp * sx + *y * shx;
*y = tmp * shy + *y * sy;
}
//------------------------------------------------------------------------
inline void trans_affine::inverse_transform(double* x, double* y) const
{
register double d = determinant_reciprocal();
register double a = (*x - tx) * d;
register double b = (*y - ty) * d;
*x = a * sy - b * shx;
*y = b * sx - a * shy;
}
//------------------------------------------------------------------------
inline double trans_affine::scale() const
{
double x = 0.707106781 * sx + 0.707106781 * shx;
double y = 0.707106781 * shy + 0.707106781 * sy;
return sqrt(x*x + y*y);
}
//------------------------------------------------------------------------
inline const trans_affine& trans_affine::translate(double x, double y)
{
tx += x;
ty += y;
return *this;
}
//------------------------------------------------------------------------
inline const trans_affine& trans_affine::rotate(double a)
{
double ca = cos(a);
double sa = sin(a);
double t0 = sx * ca - shy * sa;
double t2 = shx * ca - sy * sa;
double t4 = tx * ca - ty * sa;
shy = sx * sa + shy * ca;
sy = shx * sa + sy * ca;
ty = tx * sa + ty * ca;
sx = t0;
shx = t2;
tx = t4;
return *this;
}
//------------------------------------------------------------------------
inline const trans_affine& trans_affine::scale(double x, double y)
{
double mm0 = x; // Possible hint for the optimizer
double mm3 = y;
sx *= mm0;
shx *= mm0;
tx *= mm0;
shy *= mm3;
sy *= mm3;
ty *= mm3;
return *this;
}
//------------------------------------------------------------------------
inline const trans_affine& trans_affine::scale(double s)
{
double m = s; // Possible hint for the optimizer
sx *= m;
shx *= m;
tx *= m;
shy *= m;
sy *= m;
ty *= m;
return *this;
}
//------------------------------------------------------------------------
inline const trans_affine& trans_affine::premultiply(const trans_affine& m)
{
trans_affine t = m;
return *this = t.multiply(*this);
}
//------------------------------------------------------------------------
inline const trans_affine& trans_affine::multiply_inv(const trans_affine& m)
{
trans_affine t = m;
t.invert();
return multiply(t);
}
//------------------------------------------------------------------------
inline const trans_affine& trans_affine::premultiply_inv(const trans_affine& m)
{
trans_affine t = m;
t.invert();
return *this = t.multiply(*this);
}
//------------------------------------------------------------------------
inline void trans_affine::scaling_abs(double* x, double* y) const
{
// Used to calculate scaling coefficients in image resampling.
// When there is considerable shear this method gives us much
// better estimation than just sx, sy.
*x = sqrt(sx * sx + shx * shx);
*y = sqrt(shy * shy + sy * sy);
}
//====================================================trans_affine_rotation
// Rotation matrix. sin() and cos() are calculated twice for the same angle.
// There's no harm because the performance of sin()/cos() is very good on all
// modern processors. Besides, this operation is not going to be invoked too
// often.
class trans_affine_rotation : public trans_affine
{
public:
trans_affine_rotation(double a) :
trans_affine(cos(a), sin(a), -sin(a), cos(a), 0.0, 0.0)
{}
};
//====================================================trans_affine_scaling
// Scaling matrix. x, y - scale coefficients by X and Y respectively
class trans_affine_scaling : public trans_affine
{
public:
trans_affine_scaling(double x, double y) :
trans_affine(x, 0.0, 0.0, y, 0.0, 0.0)
{}
trans_affine_scaling(double s) :
trans_affine(s, 0.0, 0.0, s, 0.0, 0.0)
{}
};
//================================================trans_affine_translation
// Translation matrix
class trans_affine_translation : public trans_affine
{
public:
trans_affine_translation(double x, double y) :
trans_affine(1.0, 0.0, 0.0, 1.0, x, y)
{}
};
//====================================================trans_affine_skewing
// Sckewing (shear) matrix
class trans_affine_skewing : public trans_affine
{
public:
trans_affine_skewing(double x, double y) :
trans_affine(1.0, tan(y), tan(x), 1.0, 0.0, 0.0)
{}
};
//===============================================trans_affine_line_segment
// Rotate, Scale and Translate, associating 0...dist with line segment
// x1,y1,x2,y2
class trans_affine_line_segment : public trans_affine
{
public:
trans_affine_line_segment(double x1, double y1, double x2, double y2,
double dist)
{
double dx = x2 - x1;
double dy = y2 - y1;
if(dist > 0.0)
{
multiply(trans_affine_scaling(sqrt(dx * dx + dy * dy) / dist));
}
multiply(trans_affine_rotation(atan2(dy, dx)));
multiply(trans_affine_translation(x1, y1));
}
};
//============================================trans_affine_reflection_unit
// Reflection matrix. Reflect coordinates across the line through
// the origin containing the unit vector (ux, uy).
// Contributed by John Horigan
class trans_affine_reflection_unit : public trans_affine
{
public:
trans_affine_reflection_unit(double ux, double uy) :
trans_affine(2.0 * ux * ux - 1.0,
2.0 * ux * uy,
2.0 * ux * uy,
2.0 * uy * uy - 1.0,
0.0, 0.0)
{}
};
//=================================================trans_affine_reflection
// Reflection matrix. Reflect coordinates across the line through
// the origin at the angle a or containing the non-unit vector (x, y).
// Contributed by John Horigan
class trans_affine_reflection : public trans_affine_reflection_unit
{
public:
trans_affine_reflection(double a) :
trans_affine_reflection_unit(cos(a), sin(a))
{}
trans_affine_reflection(double x, double y) :
trans_affine_reflection_unit(x / sqrt(x * x + y * y), y / sqrt(x * x + y * y))
{}
};
}
\ No newline at end of file
//
//
//////////////////////////////////////////////////////////////////////
#ifndef _AGGPLUSENUMS_H
#define _AGGPLUSENUMS_H
#include "ap_AggPlusTypes.h"
//#define __cplusplus
namespace Aggplus
{
#define PixelFormatIndexed 0x00010000 // Indexes into a palette
#define PixelFormatGDI 0x00020000 // Is a GDI-supported format
#define PixelFormatAlpha 0x00040000 // Has an alpha component
#define PixelFormatPAlpha 0x00080000 // Pre-multiplied alpha
#define PixelFormatExtended 0x00100000 // Extended color 16 bits/channel
#define PixelFormatCanonical 0x00200000
#define PixelFormatUndefined 0
#define PixelFormatDontCare 0
#define PixelFormat1bppIndexed (1 | ( 1 << 8) | PixelFormatIndexed | PixelFormatGDI)
#define PixelFormat4bppIndexed (2 | ( 4 << 8) | PixelFormatIndexed | PixelFormatGDI)
#define PixelFormat8bppIndexed (3 | ( 8 << 8) | PixelFormatIndexed | PixelFormatGDI)
#define PixelFormat16bppGrayScale (4 | (16 << 8) | PixelFormatExtended)
#define PixelFormat16bppRGB555 (5 | (16 << 8) | PixelFormatGDI)
#define PixelFormat16bppRGB565 (6 | (16 << 8) | PixelFormatGDI)
#define PixelFormat16bppARGB1555 (7 | (16 << 8) | PixelFormatAlpha | PixelFormatGDI)
#define PixelFormat24bppRGB (8 | (24 << 8) | PixelFormatGDI)
#define PixelFormat32bppRGB (9 | (32 << 8) | PixelFormatGDI)
#define PixelFormat32bppARGB (10 | (32 << 8) | PixelFormatAlpha | PixelFormatGDI | PixelFormatCanonical)
#define PixelFormat32bppPARGB (11 | (32 << 8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatGDI)
#define PixelFormat48bppRGB (12 | (48 << 8) | PixelFormatExtended)
#define PixelFormat64bppARGB (13 | (64 << 8) | PixelFormatAlpha | PixelFormatCanonical | PixelFormatExtended)
#define PixelFormat64bppPARGB (14 | (64 << 8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatExtended)
#ifndef PixelFormatMax
#define PixelFormatMax 15
#endif
//--------------------------------------------------------------------------
// Matrix Order
//--------------------------------------------------------------------------
enum MatrixOrder
{
MatrixOrderPrepend = 0,
MatrixOrderAppend = 1
};
//--------------------------------------------------------------------------
// Dash style constants
//--------------------------------------------------------------------------
enum DashStyle
{
DashStyleSolid, // 0
DashStyleDash, // 1
DashStyleDot, // 2
DashStyleDashDot, // 3
DashStyleDashDotDot, // 4
DashStyleCustom // 5
};
//--------------------------------------------------------------------------
// Line join constants
//--------------------------------------------------------------------------
enum LineJoin
{
LineJoinMiter = 0,
LineJoinBevel = 1,
LineJoinRound = 2,
LineJoinMiterClipped = 3
};
//--------------------------------------------------------------------------
// Line cap constants
//--------------------------------------------------------------------------
enum LineCap
{
LineCapFlat = 0,
LineCapSquare = 1,
LineCapRound = 2,
LineCapTriangle = 3,
LineCapNoAnchor = 0x10, // corresponds to flat cap
LineCapSquareAnchor = 0x11, // corresponds to square cap
LineCapRoundAnchor = 0x12, // corresponds to round cap
LineCapDiamondAnchor = 0x13, // corresponds to triangle cap
LineCapArrowAnchor = 0x14, // no correspondence
LineCapCustom = 0xff, // custom cap
LineCapAnchorMask = 0xf0 // mask to check for anchor or not.
};
//--------------------------------------------------------------------------
// Brush types
//--------------------------------------------------------------------------
enum BrushType
{
BrushTypeSolidColor = 0,
BrushTypeHatchFill = 1,
BrushTypeTextureFill = 2,
BrushTypePathGradient = 3,
BrushTypeLinearGradient = 4
};
//--------------------------------------------------------------------------
// Various wrap modes for brushes
//--------------------------------------------------------------------------
enum WrapMode
{
WrapModeTile, // 0
WrapModeTileFlipX, // 1
WrapModeTileFlipY, // 2
WrapModeTileFlipXY, // 3
WrapModeClamp // 4
};
//--------------------------------------------------------------------------
// FontStyle: face types and common styles
//--------------------------------------------------------------------------
enum FontStyle
{
FontStyleRegular = 0,
FontStyleBold = 1,
FontStyleItalic = 2,
FontStyleBoldItalic = 3,
FontStyleUnderline = 4,
FontStyleStrikeout = 8
};
//---------------------------------------------------------------------------
// String alignment flags
//---------------------------------------------------------------------------
enum StringAlignment
{
// Left edge for left-to-right text,
// right for right-to-left text,
// and top for vertical
StringAlignmentNear = 0,
StringAlignmentCenter = 1,
StringAlignmentFar = 2
};
//############## Not implemented-Used
//--------------------------------------------------------------------------
// Unit constants
//--------------------------------------------------------------------------
enum Unit
{
UnitWorld, // 0 -- World coordinate (non-physical unit)
UnitDisplay, // 1 -- Variable -- for PageTransform only
UnitPixel, // 2 -- Each unit is one device pixel.
UnitPoint, // 3 -- Each unit is a printer's point, or 1/72 inch.
UnitInch, // 4 -- Each unit is 1 inch.
UnitDocument, // 5 -- Each unit is 1/300 inch.
UnitMillimeter // 6 -- Each unit is 1 millimeter.
};
//---------------------------------------------------------------------------
// Text Rendering Hint
//---------------------------------------------------------------------------
enum TextRenderingHint
{
TextRenderingHintSystemDefault = 0, // Glyph with system default rendering hint
TextRenderingHintSingleBitPerPixelGridFit, // Glyph bitmap with hinting
TextRenderingHintSingleBitPerPixel, // Glyph bitmap without hinting
TextRenderingHintAntiAliasGridFit, // Glyph anti-alias bitmap with hinting
TextRenderingHintAntiAlias, // Glyph anti-alias bitmap without hinting
TextRenderingHintClearTypeGridFit // Glyph CT bitmap with hinting
};
//--------------------------------------------------------------------------
// Quality mode constants
//--------------------------------------------------------------------------
enum QualityMode
{
QualityModeInvalid = -1,
QualityModeDefault = 0,
QualityModeLow = 1, // Best performance
QualityModeHigh = 2 // Best rendering quality
};
//--------------------------------------------------------------------------
// Alpha Compositing mode constants
//--------------------------------------------------------------------------
enum CompositingMode
{
CompositingModeSourceOver, // 0
CompositingModeSourceCopy // 1
};
//--------------------------------------------------------------------------
// Alpha Compositing quality constants
//--------------------------------------------------------------------------
enum CompositingQuality
{
CompositingQualityInvalid = QualityModeInvalid,
CompositingQualityDefault = QualityModeDefault,
CompositingQualityHighSpeed = QualityModeLow,
CompositingQualityHighQuality = QualityModeHigh,
CompositingQualityGammaCorrected,
CompositingQualityAssumeLinear
};
//---------------------------------------------------------------------------
// Smoothing Mode
//---------------------------------------------------------------------------
enum SmoothingMode
{
SmoothingModeInvalid = QualityModeInvalid,
SmoothingModeDefault = QualityModeDefault,
SmoothingModeHighSpeed = QualityModeLow,
SmoothingModeHighQuality = QualityModeHigh,
SmoothingModeNone,
SmoothingModeAntiAlias
};
//--------------------------------------------------------------------------
// Interpolation modes
//--------------------------------------------------------------------------
enum InterpolationMode
{
InterpolationModeInvalid = QualityModeInvalid,
InterpolationModeDefault = QualityModeDefault,
InterpolationModeLowQuality = QualityModeLow,
InterpolationModeHighQuality = QualityModeHigh,
InterpolationModeBilinear,
InterpolationModeBicubic,
InterpolationModeNearestNeighbor,
InterpolationModeHighQualityBilinear,
InterpolationModeHighQualityBicubic
};
enum StringFormatFlags
{
//not supp StringFormatFlagsDirectionRightToLeft = 0x00000001,
//not supp StringFormatFlagsDirectionVertical = 0x00000002,
//not supp StringFormatFlagsNoFitBlackBox = 0x00000004,
//not supp StringFormatFlagsDisplayFormatControl = 0x00000020,
//not supp StringFormatFlagsNoFontFallback = 0x00000400,
//not supp StringFormatFlagsMeasureTrailingSpaces = 0x00000800,
//not supp StringFormatFlagsNoWrap = 0x00001000,
StringFormatFlagsLineLimit = 0x00002000
//not supp StringFormatFlagsNoClip = 0x00004000
};
} //namespace Aggplus
#endif // !defined(_AGGPLUSENUMS_H)
#ifndef _AGGPLUSTYPES_H
#define _AGGPLUSTYPES_H
#include "windows.h"
namespace Aggplus
{
typedef float REAL;
typedef int INT;
typedef unsigned int *PUINT;
typedef unsigned long ARGB;
typedef INT PixelFormat;
#define REAL_MAX FLT_MAX
#define REAL_MIN FLT_MIN
#define REAL_TOLERANCE (FLT_MIN * 100)
#define REAL_EPSILON 1.192092896e-07F /* FLT_EPSILON */
//--------------------------------------------------------------------------
// Status return values from AGG+ methods
//--------------------------------------------------------------------------
enum Status
{
Ok = 0,
GenericError = 1,
InvalidParameter = 2,
OutOfMemory = 3,
ObjectBusy = 4,
InsufficientBuffer = 5,
NotImplemented = 6,
Win32Error = 7,
WrongState = 8,
Aborted = 9,
FileNotFound = 10,
ValueOverflow = 11,
AccessDenied = 12,
UnknownImageFormat = 13,
FontFamilyNotFound = 14,
FontStyleNotFound = 15,
NotTrueTypeFont = 16,
UnsupportedGdiplusVersion = 17,
AggplusNotInitialized = 18,
PropertyNotFound = 19,
PropertyNotSupported = 20
};
class SizeF
{
public:
SizeF() : Width(0.0f), Height(0.0f) { }
SizeF(const SizeF& size) : Width(size.Width), Height(size.Height) { }
SizeF(REAL width, REAL height) : Width(width), Height(height) { }
SizeF operator+(const SizeF& sz) const { return SizeF(Width+sz.Width, Height+sz.Height); }
SizeF operator-(const SizeF& sz) const { return SizeF(Width-sz.Width, Height-sz.Height); }
BOOL Equals(const SizeF& sz) const { return((Width == sz.Width) && (Height == sz.Height)); }
BOOL Empty() const { return(Width == 0.0f && Height == 0.0f); }
public:
REAL Width, Height;
};
class PointF
{
public:
PointF() : X(0.0f), Y(0.0f) { }
PointF(const PointF &point) : X(point.X), Y(point.Y) { }
PointF(const SizeF &size) : X(size.Width), Y(size.Height) { }
PointF(REAL x, REAL y) : X(x), Y(y) { }
//~PointF() { }
BOOL Equals(const PointF& point) const { return(X==point.X && Y==point.Y); }
PointF operator+(const PointF& point) const { return PointF(X + point.X, Y + point.Y); }
PointF operator-(const PointF& point) const { return PointF(X - point.X, Y - point.Y); }
public:
REAL X, Y;
};
class RectF
{
public:
RectF() : X(0.0f), Y(0.0f), Width(0.0f), Height(0.0f) { }
RectF(REAL x, REAL y, REAL width, REAL height) : X(x), Y(y), Width(width), Height(height) { }
RectF(RECT rct)
{ X = REAL(rct.left); Y = REAL(rct.top); Width = REAL(rct.right-rct.left); Height=REAL(rct.bottom-rct.top);}
RectF(const PointF& location, const SizeF& size) : X(location.X), Y(location.Y), Width(size.Width), Height(size.Height) { }
RectF* Clone() const { return new RectF(X, Y, Width, Height); }
void GetLocation(PointF* point) const { point->X = X; point->Y = Y; }
void GetSize(SizeF* size) const { size->Width = Width; size->Height = Height; }
void GetBounds(RectF* rect) const { rect->X = X; rect->Y = Y; rect->Width = Width; rect->Height = Height; }
REAL GetLeft() const { return X; }
REAL GetTop() const { return Y; }
REAL GetRight() const { return X+Width; }
REAL GetBottom() const { return Y+Height; }
BOOL IsEmptyArea() const { return (Width <= REAL_EPSILON) || (Height <= REAL_EPSILON); }
BOOL Equals(const RectF & rect) const
{
return X == rect.X && Y == rect.Y &&
Width == rect.Width && Height == rect.Height;
}
BOOL Contains(REAL x, REAL y) const
{
return x >= X && x < X+Width &&
y >= Y && y < Y+Height;
}
BOOL Contains(const PointF& pt) const { return Contains(pt.X, pt.Y); }
BOOL Contains(const RectF& rect) const
{
return (X <= rect.X) && (rect.GetRight() <= GetRight()) &&
(Y <= rect.Y) && (rect.GetBottom() <= GetBottom());
}
void Inflate(REAL dx, REAL dy) { X -= dx; Y -= dy; Width += 2*dx; Height += 2*dy; }
void Inflate(const PointF& point) { Inflate(point.X, point.Y); }
BOOL Intersect(const RectF& rect) { return Intersect(*this, *this, rect); }
static BOOL Intersect(RectF& c, const RectF& a, const RectF& b)
{
REAL right = min(a.GetRight(), b.GetRight());
REAL bottom = min(a.GetBottom(), b.GetBottom());
REAL left = max(a.GetLeft(), b.GetLeft());
REAL top = max(a.GetTop(), b.GetTop());
c.X = left;
c.Y = top;
c.Width = right - left;
c.Height = bottom - top;
return !c.IsEmptyArea();
}
BOOL IntersectsWith(const RectF& rect) const
{
return (GetLeft() < rect.GetRight() &&
GetTop() < rect.GetBottom() &&
GetRight() > rect.GetLeft() &&
GetBottom() > rect.GetTop());
}
static BOOL Union(RectF& c, const RectF& a, const RectF& b)
{
REAL right = max(a.GetRight(), b.GetRight());
REAL bottom = max(a.GetBottom(), b.GetBottom());
REAL left = min(a.GetLeft(), b.GetLeft());
REAL top = min(a.GetTop(), b.GetTop());
c.X = left;
c.Y = top;
c.Width = right - left;
c.Height = bottom - top;
return !c.IsEmptyArea();
}
void Offset(const PointF& point) { Offset(point.X, point.Y); }
void Offset(REAL dx, REAL dy) { X += dx; Y += dy; }
public:
REAL X, Y, Width, Height;
};
} //namespace Aggplus
#endif // _AGGPLUSTYPES_H
\ No newline at end of file
......@@ -216,7 +216,7 @@ public:
#ifdef ODP_DEF
if (!bIsFound)
{
if (0 < m_pShape->m_arTextRects.GetSize())
if (0 < m_pShape->m_arTextRects.size())
{
double koefX = oInfo.m_dWidth / ShapeSizeVML;
double koefY = oInfo.m_dHeight / ShapeSizeVML;
......@@ -305,7 +305,7 @@ public:
#if defined(ODP_DEF)
if (!bIsFound)
{
if (0 < m_pShape->m_arTextRects.GetSize())
if (0 < m_pShape->m_arTextRects.size())
{
double koefX = dWidth / ShapeSizeVML;
double koefY = dHeight / ShapeSizeVML;
......
......@@ -215,7 +215,7 @@ namespace NSPresentationEditor
#ifdef _PRESENTATION_WRITER_
m_bUseLayoutColorScheme = true;
//colors
m_arColorScheme.RemoveAll();
m_arColorScheme.clear();
XmlUtils::CXmlNode oNodeColors;
if (oNode.GetNode(_T("Colors"), oNodeColors))
{
......@@ -228,7 +228,8 @@ namespace NSPresentationEditor
LONG lColor = 0;
for (size_t i = 0; i < nCount; i += 3)
{
m_arColorScheme.push_back();
CColor elem;
m_arColorScheme.push_back(elem);
oStyles.m_arStyles[i].LoadColor(m_arColorScheme[lColor]);
++lColor;
}
......@@ -286,16 +287,16 @@ namespace NSPresentationEditor
CStylesCSS oCSS;
oCSS.LoadStyles(oNodeFontRefs.GetText());
size_t nCountS = oCSS.m_arStyles.GetCount();
size_t nCountS = oCSS.m_arStyles.size();
for (size_t i = 0; i < nCountS; ++i)
{
oCSS.m_arStyles[i].m_strClassName.Delete(0, 6);
LONG lElementID = XmlUtils::GetInteger(oCSS.m_arStyles[i].m_strClassName);
CAtlMap<CString, CString>::CPair* pPair = oCSS.m_arStyles[i].m_mapSettings.Lookup(_T("font-index"));
if (NULL != pPair)
std::map<CString, CString>::iterator pPair = oCSS.m_arStyles[i].m_mapSettings.find(_T("font-index"));
if (oCSS.m_arStyles[i].m_mapSettings.end() != pPair)
{
LONG lFontRef = XmlUtils::GetInteger(pPair->m_value);
LONG lFontRef = XmlUtils::GetInteger(pPair->second);
size_t nCountEl = m_arElements.size();
for (size_t j = 0; j < nCountEl; ++j)
......
......@@ -12,7 +12,7 @@ namespace NSPresentationEditor
// colors ----
oWriter.WriteString(_T("<Colors>"));
size_t nCountColors = m_arColorScheme.GetCount();
size_t nCountColors = m_arColorScheme.size();
for (size_t i = 0; i < nCountColors; ++i)
{
CString strFormat = _T("");
......@@ -28,7 +28,7 @@ namespace NSPresentationEditor
// fonts -----
oWriter.WriteString(_T("<Fonts>"));
size_t nCountFonts = m_arFonts.GetCount();
size_t nCountFonts = m_arFonts.size();
//if (nCountFonts > 1)
// nCountFonts = 1;
for (size_t i = 0; i < nCountFonts; ++i)
......@@ -109,7 +109,7 @@ namespace NSPresentationEditor
// elements
oWriter.WriteString(_T("<Elements>"));
size_t nCountElems = m_arElements.GetCount();
size_t nCountElems = m_arElements.size();
for (size_t i = 0; i < nCountElems; ++i)
{
m_arElements[i]->m_bIsBackground = false;
......@@ -123,7 +123,7 @@ namespace NSPresentationEditor
// layouts
oWriter.WriteString(_T("<Layouts>"));
size_t nCountLayouts = m_arLayouts.GetCount();
size_t nCountLayouts = m_arLayouts.size();
for (size_t i = 0; i < nCountLayouts; ++i)
{
oWriter.WriteString(m_arLayouts[i].ToXmlEditor(this, oInfo));
......@@ -140,18 +140,19 @@ namespace NSPresentationEditor
{
#ifdef _PRESENTATION_WRITER_
//colors
m_arColorScheme.RemoveAll();
m_arColorScheme.clear();
XmlUtils::CXmlNode oNodeColors;
if (oNode.GetNode(_T("Colors"), oNodeColors))
{
CStylesCSS oStyles;
oStyles.LoadStyles(oNodeColors.GetText());
size_t nCount = oStyles.m_arStyles.GetCount();
size_t nCount = oStyles.m_arStyles.size();
LONG lColor = 0;
for (size_t i = 0; i < nCount; i += 3)
{
m_arColorScheme.Add();
CColor elem;
m_arColorScheme.push_back(elem);
oStyles.m_arStyles[i].LoadColor(m_arColorScheme[lColor]);
++lColor;
}
......@@ -163,10 +164,11 @@ namespace NSPresentationEditor
CStylesCSS oStyles;
oStyles.LoadStyles(oNodeFonts.GetText());
size_t nCount = oStyles.m_arStyles.GetCount();
size_t nCount = oStyles.m_arStyles.size();
for (size_t i = 0; i < nCount; ++i)
{
m_arFonts.Add();
CFont elem;
m_arFonts.push_back(elem);
oStyles.m_arStyles[i].LoadFont(m_arFonts[i]);
}
}
......@@ -191,7 +193,7 @@ namespace NSPresentationEditor
CStylesCSS oCSS;
oCSS.LoadStyles(oNodeStyle.GetText());
if (20 != oCSS.m_arStyles.GetCount())
if (20 != oCSS.m_arStyles.size())
continue;
for (int nIndexStyle = 0; nIndexStyle < 10; ++nIndexStyle)
......@@ -242,7 +244,7 @@ namespace NSPresentationEditor
pShapeEl->m_pTheme = this;
m_arElements.Add(pShapeEl);
m_arElements.push_back(pShapeEl);
}
}
}
......@@ -258,10 +260,12 @@ namespace NSPresentationEditor
{
XmlUtils::CXmlNode oNodeL;
oLayouts.GetAt(nL, oNodeL);
m_arLayouts.Add();
m_arLayouts[m_arLayouts.GetCount() - 1].SetMetricInfo(m_oInfo);
m_arLayouts[m_arLayouts.GetCount() - 1].ReadFromXml(oNodeL);
CLayout elem;
m_arLayouts.push_back(elem);
m_arLayouts.back().SetMetricInfo(m_oInfo);
m_arLayouts.back().ReadFromXml(oNodeL);
}
}
}
......
......@@ -153,7 +153,7 @@ namespace NSPresentationEditor
<Override PartName=\"/docProps/core.xml\" ContentType=\"application/vnd.openxmlformats-package.core-properties+xml\" />\
<Override PartName=\"/docProps/app.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.extended-properties+xml\" />");
int nThemes = (int)m_pDocument->m_arThemes.GetCount();
int nThemes = (int)m_pDocument->m_arThemes.size();
int nIndexLayout = 0;
for (int nT = 0; nT < nThemes; ++nT)
{
......@@ -164,7 +164,7 @@ namespace NSPresentationEditor
strContentTypes += strTheme;
int nCountL = (int)m_pDocument->m_arThemes[nT].m_arLayouts.GetCount();
int nCountL = (int)m_pDocument->m_arThemes[nT].m_arLayouts.size();
for (int nL = 0; nL < nCountL; ++nL, ++nIndexLayout)
{
CString strL = _T("");
......@@ -178,7 +178,7 @@ namespace NSPresentationEditor
strContentTypes += _T("<Override PartName=\"/ppt/notesMasters/notesMaster1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml\"/>");
int nCountS = (int)m_pDocument->m_arSlides.GetCount();
int nCountS = (int)m_pDocument->m_arSlides.size();
for (int nS = 0; nS < nCountS; ++nS)
{
CString strS = _T("");
......@@ -212,7 +212,7 @@ namespace NSPresentationEditor
oFile.WriteStringUTF8(str1);
CString str2 = _T("");
str2.Format(_T("<Slides>%d</Slides>"), (int)m_pDocument->m_arSlides.GetCount());
str2.Format(_T("<Slides>%d</Slides>"), (int)m_pDocument->m_arSlides.size());
oFile.WriteStringUTF8(str2);
CString str3 = _T("<Notes>0</Notes>\
......@@ -223,8 +223,8 @@ namespace NSPresentationEditor
<vt:vector size=\"4\" baseType=\"variant\">");
oFile.WriteStringUTF8(str3);
int nCountThemes = (int)m_pDocument->m_arThemes.GetCount();
int nCountSlides = (int)m_pDocument->m_arSlides.GetCount();
int nCountThemes = (int)m_pDocument->m_arThemes.size();
int nCountSlides = (int)m_pDocument->m_arSlides.size();
CString strThemes = _T("");
strThemes.Format(_T("<vt:variant><vt:lpstr>Theme</vt:lpstr></vt:variant><vt:variant><vt:i4>%d</vt:i4></vt:variant>"), nCountThemes);
......@@ -307,7 +307,7 @@ namespace NSPresentationEditor
CString strPresSlides = _T("");
size_t nCountLayouts = 0;
size_t nCountThemes = m_pDocument->m_arThemes.GetCount();
size_t nCountThemes = m_pDocument->m_arThemes.size();
for (size_t nIndexTheme = 0; nIndexTheme < nCountThemes; ++nIndexTheme)
{
CString strRels = _T("");
......@@ -320,14 +320,14 @@ namespace NSPresentationEditor
strRels = _T("");
strRels.Format(_T("<p:sldMasterId id=\"%u\" r:id=\"rId%d\" />"), 0x80000000 + nCountLayouts, 2 * nIndexTheme + 1);
nCountLayouts += m_pDocument->m_arThemes[nIndexTheme].m_arLayouts.GetCount();
nCountLayouts += m_pDocument->m_arThemes[nIndexTheme].m_arLayouts.size();
nCountLayouts += 1;
strPresMasters += strRels;
}
int nCurrentRels = (int)(2 * nCountThemes + 1);
size_t nCountSlides = m_pDocument->m_arSlides.GetCount();
size_t nCountSlides = m_pDocument->m_arSlides.size();
for (size_t nIndexSlide = 0; nIndexSlide < nCountSlides; ++nIndexSlide, ++nCurrentRels)
{
CString strRels = _T("");
......@@ -394,14 +394,14 @@ namespace NSPresentationEditor
HINSTANCE hInst = _AtlBaseModule.GetModuleInstance();
CString strThemeNotes = _T("");
strThemeNotes.Format(_T("\\ppt\\theme\\theme%d.xml"), (int)m_pDocument->m_arThemes.GetCount() + 1);
strThemeNotes.Format(_T("\\ppt\\theme\\theme%d.xml"), (int)m_pDocument->m_arThemes.size() + 1);
LoadResourceFile(hInst, MAKEINTRESOURCE(IDB_XML_NOTESTHEME), _T("PPTXW"), m_strTempDirectory + strThemeNotes);
LoadResourceFile(hInst, MAKEINTRESOURCE(IDB_XML_NOTESMASTER), _T("PPTXW"), m_strTempDirectory + _T("\\ppt\\notesMasters\\notesMaster1.xml"));
// - notesMasterRels -----------------------------------
CDirectory::CreateDirectory(m_strTempDirectory + _T("\\ppt\\notesMasters\\_rels"));
CString strThemeNotesNum = _T("");
strThemeNotesNum.Format(_T("%d"), (int)m_pDocument->m_arThemes.GetCount() + 1);
strThemeNotesNum.Format(_T("%d"), (int)m_pDocument->m_arThemes.size() + 1);
CString strVal = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\
<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\
<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\" Target=\"../theme/theme") + strThemeNotesNum + _T(".xml\"/></Relationships>");
......@@ -411,7 +411,7 @@ namespace NSPresentationEditor
oFileRels.CloseFile();
// -----------------------------------------------------
int nCount = (int)m_pDocument->m_arThemes.GetCount();
int nCount = (int)m_pDocument->m_arThemes.size();
int nStartLayout = 0;
for (int nIndexTheme = 0; nIndexTheme < nCount; ++nIndexTheme)
{
......@@ -453,10 +453,10 @@ namespace NSPresentationEditor
CString strFonts = _T("");
CString sFont1 = _T("");
if (0 < pTheme->m_arFonts.GetCount())
if (0 < pTheme->m_arFonts.size())
sFont1 = pTheme->m_arFonts[0].Name;
CString sFont2 = _T("");
if (1 < pTheme->m_arFonts.GetCount())
if (1 < pTheme->m_arFonts.size())
sFont2 = pTheme->m_arFonts[1].Name;
strFonts.Format(_T("<a:fontScheme name=\"default\"><a:majorFont><a:latin typeface=\"%d\"/><a:ea typeface=\"\"/><a:cs typeface=\"\"/>\
......@@ -503,7 +503,7 @@ namespace NSPresentationEditor
// masterslide
CRelsGenerator oRels(&m_oManager);
int nCountLayouts = (int)pTheme->m_arLayouts.GetCount();
int nCountLayouts = (int)pTheme->m_arLayouts.size();
oRels.StartMaster(nIndexTheme, nStartLayout, nCountLayouts);
CStringWriter oWriter;
......@@ -520,7 +520,7 @@ namespace NSPresentationEditor
<a:xfrm><a:off x=\"0\" y=\"0\"/><a:ext cx=\"0\" cy=\"0\"/><a:chOff x=\"0\" y=\"0\"/><a:chExt cx=\"0\" cy=\"0\"/></a:xfrm></p:grpSpPr>");
oWriter.WriteString(strElems);
size_t nElements = pTheme->m_arElements.GetCount();
size_t nElements = pTheme->m_arElements.size();
for (size_t nEl = 0; nEl < nElements; ++nEl)
WriteElement(oWriter, oRels, pTheme->m_arElements[nEl]);
......@@ -574,7 +574,7 @@ namespace NSPresentationEditor
nStartLayout += nCountLayouts;
}
size_t nCountSlides = m_pDocument->m_arSlides.GetCount();
size_t nCountSlides = m_pDocument->m_arSlides.size();
for (size_t nIndexS = 0; nIndexS < nCountSlides; ++nIndexS)
{
CRelsGenerator::StartNotes((int)nIndexS, m_strTempDirectory, m_pDocument->m_arSlides[nIndexS].m_strComment);
......@@ -623,7 +623,7 @@ namespace NSPresentationEditor
{
if (-1 != pElement->m_lPlaceholderType)
{
size_t nCountElements = pLayout->m_arElements.GetCount();
size_t nCountElements = pLayout->m_arElements.size();
for (size_t nIndex = 0; nIndex < nCountElements; ++nIndex)
{
if ((pElement->m_lPlaceholderType == pLayout->m_arElements[nIndex]->m_lPlaceholderType) &&
......@@ -668,7 +668,7 @@ namespace NSPresentationEditor
<a:xfrm><a:off x=\"0\" y=\"0\"/><a:ext cx=\"0\" cy=\"0\"/><a:chOff x=\"0\" y=\"0\"/><a:chExt cx=\"0\" cy=\"0\"/></a:xfrm></p:grpSpPr>");
oWriter.WriteString(strElems);
size_t nElements = oLayout.m_arElements.GetCount();
size_t nElements = oLayout.m_arElements.size();
for (size_t nEl = 0; nEl < nElements; ++nEl)
WriteElement(oWriter, oRels, oLayout.m_arElements[nEl]);
......@@ -704,7 +704,7 @@ namespace NSPresentationEditor
{
int nLayout = oSlide.m_lLayoutID;
for (int i = 0; i < oSlide.m_lThemeID; ++i)
nLayout += (int)m_pDocument->m_arThemes[i].m_arLayouts.GetCount();
nLayout += (int)m_pDocument->m_arThemes[i].m_arLayouts.size();
oRels.StartSlide(nLayout, nIndexSlide);
}
......@@ -721,7 +721,7 @@ namespace NSPresentationEditor
<a:xfrm><a:off x=\"0\" y=\"0\"/><a:ext cx=\"0\" cy=\"0\"/><a:chOff x=\"0\" y=\"0\"/><a:chExt cx=\"0\" cy=\"0\"/></a:xfrm></p:grpSpPr>");
oWriter.WriteString(strElems);
size_t nElements = oSlide.m_arElements.GetCount();
size_t nElements = oSlide.m_arElements.size();
for (size_t nEl = 0; nEl < nElements; ++nEl)
WriteElement(oWriter, oRels, oSlide.m_arElements[nEl], &m_pDocument->m_arThemes[oSlide.m_lThemeID].m_arLayouts[oSlide.m_lLayoutID]);
......
......@@ -731,7 +731,7 @@ STDMETHODIMP NSPresentationEditor::CShapeWriter::SetCommandParams(double dAngle,
double m11 = bFlipX ? -1.0 : 1.0;
double m22 = bFlipY ? -1.0 : 1.0;
CMatrix oMatrix(1, 0, 0, 1, 0, 0);
Aggplus::CMatrix oMatrix(1, 0, 0, 1, 0, 0);
if ((0 != dAngle) || (0 != lFlags))
{
......@@ -753,7 +753,7 @@ STDMETHODIMP NSPresentationEditor::CShapeWriter::SetCommandParams(double dAngle,
}
STDMETHODIMP NSPresentationEditor::CShapeWriter::SetTransform(double dA, double dB, double dC, double dD, double dE, double dF)
{
CMatrix oTrans(dA, dB, dC, dD, dE, dF);
Aggplus::CMatrix oTrans(dA, dB, dC, dD, dE, dF);
m_oTransform = oTrans;
CalculateFullTransform();
......
......@@ -134,7 +134,7 @@ namespace NSPresentationEditor
if (m_pShapeElement->m_oShape.m_lDrawType & c_ShapeDrawType_Graphic)
{
m_pShapeElement->m_oShape.ToRenderer(this, oInfo, m_oMetricInfo, 0.0, 1.0);
m_pShapeElement->m_oShape.ToRenderer(dynamic_cast<IRenderer*>(this), oInfo, m_oMetricInfo, 0.0, 1.0);
}
if (m_oWriterVML.GetCurSize() >= 10)
......@@ -151,7 +151,7 @@ namespace NSPresentationEditor
int __r = (int)((m_oTextRect.right - m_oBounds.left) * 100000 / dW);
int __b = (int)((m_oTextRect.bottom - m_oBounds.top) * 100000 / dH);
size_t __nCount = m_pShapeElement->m_oShape.m_oText.m_arParagraphs.GetCount();
size_t __nCount = m_pShapeElement->m_oShape.m_oText.m_arParagraphs.size();
if (0 == __nCount || (0x00 == (m_pShapeElement->m_oShape.m_lDrawType & c_ShapeDrawType_Text)))
{
m_oWriter.WriteString(_T("<a:rect l=\"l\" t=\"t\" r=\"r\" b=\"b\"/>"));
......@@ -443,9 +443,9 @@ namespace NSPresentationEditor
ASCGraphics::IASCGraphicSimpleComverter* m_pSimpleGraphicsConverter; //
ASCGraphics::IASCFontManager* m_pFontManager; //
CMatrix m_oBaseTransform; // (: -> )
CMatrix m_oTransform; //
CMatrix m_oFullTransform; // (m_oBaseTransform * m_oTransform)
Aggplus::CMatrix m_oBaseTransform; // (: -> )
Aggplus::CMatrix m_oTransform; //
Aggplus::CMatrix m_oFullTransform; // (m_oBaseTransform * m_oTransform)
double m_dTransformAngle;
......@@ -565,7 +565,7 @@ namespace NSPresentationEditor
void WriteTextInfo()
{
size_t nCount = m_pShapeElement->m_oShape.m_oText.m_arParagraphs.GetCount();
size_t nCount = m_pShapeElement->m_oShape.m_oText.m_arParagraphs.size();
if (/*0 == nCount || */(0x00 == (m_pShapeElement->m_oShape.m_lDrawType & c_ShapeDrawType_Text)))
return;
......@@ -695,7 +695,7 @@ namespace NSPresentationEditor
m_oWriter.WriteString(_T("</a:pPr>"));
size_t nCountSpans = pParagraph->m_arSpans.GetCount();
size_t nCountSpans = pParagraph->m_arSpans.size();
for (size_t nSpan = 0; nSpan < nCountSpans; ++nSpan)
{
if (TRUE)
......
......@@ -39,19 +39,13 @@
#include <atlctl.h>
#include <atlhost.h>
#include <atlcoll.h>
#define _USE_MATH_DEFINES
#include <math.h>
#include <gdiplus.h>
using namespace ATL;
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")
#define PPT_DEF
#define PPTX_DEF
#define ODP_DEF
#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
#define _PRESENTATION_WRITER_
#include <math.h>
#include "../Common/OfficeFileTemplate.h"
#include "../ASCImageStudio3/ASCGraphics/Interfaces/ASCRenderer.h"
......@@ -62,15 +56,9 @@ using namespace Gdiplus;
#import "../Redist/ASCHTMLRenderer.dll" named_guids rename_namespace("HTMLRenderer"), raw_interfaces_only, exclude("IASCRenderer")
#import "../Redist/ASCOfficePPTFile.dll" named_guids rename_namespace("PPTFile"), raw_interfaces_only, exclude("IAVSOfficeFileTemplate", "_IAVSOfficeFileTemplateEvents", "_IAVSOfficeFileTemplateEvents2", "IAVSOfficeFile")
//#import "../Redist/ASCOfficePPTXFile.dll" named_guids rename_namespace("PPTXFile"), raw_interfaces_only, exclude("IAVSOfficeFileTemplate", "_IAVSOfficeFileTemplateEvents", "_IAVSOfficeFileTemplateEvents2", "IAVSOfficeFile")
#import "../Redist/ASCOfficeDocxFile2.dll" named_guids rename_namespace("PPTXFile"), raw_interfaces_only, exclude("IAVSOfficeFileTemplate", "_IAVSOfficeFileTemplateEvents", "_IAVSOfficeFileTemplateEvents2", "IAVSOfficeFile")
//#import "../Redist/ASCOfficeOdpFile.dll" named_guids rename_namespace("ODPFile"), raw_interfaces_only, exclude("IAVSOfficeFileTemplate", "_IAVSOfficeFileTemplateEvents", "_IAVSOfficeFileTemplateEvents2", "IAVSOfficeFile")
#import "../Redist/ASCOfficePDFWriter.dll" named_guids rename_namespace("PDFFile"), raw_interfaces_only, exclude("IASCRenderer")
#define USE_ODF_FILE
#ifdef USE_ODF_FILE
#import "../Redist/ASCOfficeOdfFile.dll" named_guids raw_interfaces_only rename_namespace("ODFFile"), exclude("IAVSOfficeFileTemplate", "_IAVSOfficeFileTemplateEvents", "_IAVSOfficeFileTemplateEvents2", "IAVSOfficeFile")
#endif
typedef float REAL;
\ No newline at end of file
# import "../Redist/ASCOfficeOdfFile.dll" named_guids raw_interfaces_only rename_namespace("ODFFile"), exclude("IAVSOfficeFileTemplate", "_IAVSOfficeFileTemplateEvents", "_IAVSOfficeFileTemplateEvents2", "IAVSOfficeFile")
#endif
\ No newline at end of file
......@@ -2,6 +2,6 @@
//1
//0
//0
//45
#define INTVER 1,0,0,45
#define STRVER "1,0,0,45\0"
//109
#define INTVER 1,0,0,109
#define STRVER "1,0,0,109\0"
......@@ -166,11 +166,11 @@ protected:
Unit m_ePageUnits;
CMatrix m_oCoordTransform;
CMatrix m_oBaseTransform;
CMatrix m_oTransform;
Aggplus::CMatrix m_oCoordTransform;
Aggplus::CMatrix m_oBaseTransform;
Aggplus::CMatrix m_oTransform;
CMatrix m_oFullTransform;
Aggplus::CMatrix m_oFullTransform;
double m_dClipLeft;
double m_dClipTop;
......@@ -226,9 +226,9 @@ public:
Unit GetPageUnit();
Status SetPageUnit(Unit lUnits);
CMatrix* GetTransform();
Aggplus::CMatrix* GetTransform();
Status SetTransform(CMatrix* pTransform);
CMatrix* GetBaseTransform();
Aggplus::CMatrix* GetBaseTransform();
Status SetBaseTransform(CMatrix* pTransform);
Status TranslateTransform(double x, double y, MatrixOrder order = MatrixOrderPrepend);
Status RotateTransform(double dAngle, MatrixOrder order = MatrixOrderPrepend);
......
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