port from perforce
This commit is contained in:
22
hgplus/4kpaint/4kpaint.sln
Normal file
22
hgplus/4kpaint/4kpaint.sln
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.21005.1
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "4kpaint", "4kpaint\4kpaint.vcxproj", "{1935A1E9-ED7E-4D03-B4DE-21551A5AF466}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{1935A1E9-ED7E-4D03-B4DE-21551A5AF466}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{1935A1E9-ED7E-4D03-B4DE-21551A5AF466}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{1935A1E9-ED7E-4D03-B4DE-21551A5AF466}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{1935A1E9-ED7E-4D03-B4DE-21551A5AF466}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
hgplus/4kpaint/4kpaint.v12.suo
Normal file
BIN
hgplus/4kpaint/4kpaint.v12.suo
Normal file
Binary file not shown.
652
hgplus/4kpaint/4kpaint/4kpaint.cpp
Normal file
652
hgplus/4kpaint/4kpaint/4kpaint.cpp
Normal file
@@ -0,0 +1,652 @@
|
||||
// 4kpaint.cpp : Defines the entry point for the console application.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
typedef LONG long2[2];
|
||||
|
||||
static long2 topleft = { 5, 144 };
|
||||
static long2 color1 = { 700, 80 };
|
||||
static long2 color2 = { 740, 80 };
|
||||
static long2 editColors = { 1000, 96 };
|
||||
static long2 lineTool = { 384, 64 };
|
||||
static long2 rectangleTool = { 440, 64 };
|
||||
static long2 polygonTool = { 480, 64 };
|
||||
static long2 colors[] =
|
||||
{
|
||||
{ 768, 100 },
|
||||
{ 790, 100 },
|
||||
{ 812, 100 },
|
||||
{ 834, 100 },
|
||||
{ 856, 100 },
|
||||
{ 878, 100 },
|
||||
{ 900, 100 },
|
||||
{ 922, 100 },
|
||||
{ 944, 100 },
|
||||
{ 966, 100 }
|
||||
};
|
||||
|
||||
struct Pen
|
||||
{
|
||||
enum Enumeration
|
||||
{
|
||||
NoFill,
|
||||
SolidColor,
|
||||
Crayon,
|
||||
Marker,
|
||||
Oil,
|
||||
NaturalPencil,
|
||||
Watercolor
|
||||
};
|
||||
};
|
||||
|
||||
void SendMouse(DWORD dwFlags)
|
||||
{
|
||||
INPUT input = { 0 };
|
||||
input.type = INPUT_MOUSE;
|
||||
input.mi.dwFlags = dwFlags;
|
||||
::SendInput(1, &input, sizeof(INPUT));
|
||||
}
|
||||
|
||||
void Click(LONG pos[2])
|
||||
{
|
||||
SetCursorPos(pos[0], pos[1]);
|
||||
SendMouse(MOUSEEVENTF_LEFTDOWN);
|
||||
SendMouse(MOUSEEVENTF_LEFTUP);
|
||||
}
|
||||
|
||||
void SendKeyboard(WORD wVk, WORD wScan, DWORD dwFlags)
|
||||
{
|
||||
INPUT input = { 0 };
|
||||
input.type = INPUT_KEYBOARD;
|
||||
input.ki.wVk = wVk;
|
||||
input.ki.wScan = wScan;
|
||||
input.ki.dwFlags = dwFlags;
|
||||
::SendInput(1, &input, sizeof(INPUT));
|
||||
}
|
||||
|
||||
void PressKey(WORD wChar)
|
||||
{
|
||||
SendKeyboard(0, wChar, KEYEVENTF_UNICODE);
|
||||
SendKeyboard(0, wChar, KEYEVENTF_UNICODE | KEYEVENTF_KEYUP);
|
||||
}
|
||||
|
||||
void PressVKey(WORD wVk)
|
||||
{
|
||||
SendKeyboard(wVk, 0, 0);
|
||||
SendKeyboard(wVk, 0, KEYEVENTF_KEYUP);
|
||||
}
|
||||
|
||||
void AltPressKey(WORD wChar)
|
||||
{
|
||||
SendKeyboard(VK_MENU, 0, 0);
|
||||
PressKey(wChar);
|
||||
SendKeyboard(VK_MENU, 0, KEYEVENTF_KEYUP);
|
||||
}
|
||||
|
||||
void CtrlPressKey(WORD wChar)
|
||||
{
|
||||
SendKeyboard(VK_RCONTROL, 0, 0);
|
||||
PressVKey(wChar);
|
||||
SendKeyboard(VK_RCONTROL, 0, KEYEVENTF_KEYUP);
|
||||
}
|
||||
|
||||
static SHELLEXECUTEINFOA mspaint =
|
||||
{
|
||||
sizeof(SHELLEXECUTEINFOA),
|
||||
SEE_MASK_NOCLOSEPROCESS,
|
||||
0,
|
||||
0,
|
||||
"mspaint",
|
||||
0,
|
||||
0,
|
||||
SW_MAXIMIZE,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
};
|
||||
|
||||
void StartPaint()
|
||||
{
|
||||
::ShellExecuteExA(&mspaint);
|
||||
::Sleep(1000);
|
||||
AltPressKey(L'f');
|
||||
PressKey(L'e');
|
||||
AltPressKey(L'p');
|
||||
AltPressKey(L'l');
|
||||
AltPressKey(L'w');
|
||||
PressKey(L'1');
|
||||
PressKey(L'2');
|
||||
PressKey(L'8');
|
||||
PressKey(L'0');
|
||||
PressVKey(VK_TAB);
|
||||
PressKey(L'7');
|
||||
PressKey(L'2');
|
||||
PressKey(L'0');
|
||||
PressVKey(VK_RETURN);
|
||||
}
|
||||
|
||||
void WriteString(const wchar_t* string)
|
||||
{
|
||||
for (int i = 0; i < _tcslen(string); ++i)
|
||||
PressKey(string[i]);
|
||||
}
|
||||
|
||||
void WriteByte(unsigned char b)
|
||||
{
|
||||
int r1 = b / 100;
|
||||
int r2 = (b - r1 * 100) / 10;
|
||||
int r3 = (b - r1 * 100 - r2 * 10);
|
||||
PressKey(L'0' + r1);
|
||||
PressKey(L'0' + r2);
|
||||
PressKey(L'0' + r3);
|
||||
}
|
||||
|
||||
void AddColor(unsigned char red, unsigned char green, unsigned char blue)
|
||||
{
|
||||
Click(editColors);
|
||||
AltPressKey(L'r');
|
||||
WriteByte(red);
|
||||
PressVKey(VK_TAB);
|
||||
WriteByte(green);
|
||||
PressVKey(VK_TAB);
|
||||
WriteByte(blue);
|
||||
PressVKey(VK_RETURN);
|
||||
::Sleep(50);
|
||||
}
|
||||
|
||||
int TransformX(float x)
|
||||
{
|
||||
return (x + 1) * 359 + 1 + 280 + 5;
|
||||
}
|
||||
|
||||
int TransformY(float y)
|
||||
{
|
||||
return (-y + 1) * 359 + 1 + 144;
|
||||
}
|
||||
|
||||
void Drag(float fromX, float fromY, float toX, float toY)
|
||||
{
|
||||
SetCursorPos(TransformX(fromX), TransformY(fromY));
|
||||
SendMouse(MOUSEEVENTF_LEFTDOWN);
|
||||
SetCursorPos(TransformX(toX), TransformY(toY));
|
||||
SendMouse(MOUSEEVENTF_LEFTUP);
|
||||
}
|
||||
|
||||
void InitPen(Pen::Enumeration outline, Pen::Enumeration fill)
|
||||
{
|
||||
::Sleep(100);
|
||||
AltPressKey(L'h');
|
||||
PressKey(L'o');
|
||||
::Sleep(100);
|
||||
for (int i = 0; i < outline; ++i)
|
||||
PressVKey(VK_DOWN);
|
||||
PressVKey(VK_RETURN);
|
||||
::Sleep(100);
|
||||
AltPressKey(L'h');
|
||||
PressKey(L'i');
|
||||
::Sleep(100);
|
||||
for (int i = 0; i < fill; ++i)
|
||||
PressVKey(VK_DOWN);
|
||||
PressVKey(VK_RETURN);
|
||||
::Sleep(100);
|
||||
}
|
||||
|
||||
void PickColor(int index)
|
||||
{
|
||||
Click(colors[index]);
|
||||
}
|
||||
|
||||
void Click(float x, float y)
|
||||
{
|
||||
long2 pos;
|
||||
pos[0] = TransformX(x);
|
||||
pos[1] = TransformY(y);
|
||||
Click(pos);
|
||||
}
|
||||
|
||||
struct vec4
|
||||
{
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
float w;
|
||||
|
||||
void homogenize()
|
||||
{
|
||||
x /= w;
|
||||
y /= w;
|
||||
z /= w;
|
||||
w = 1.0f;
|
||||
}
|
||||
|
||||
void normalize()
|
||||
{
|
||||
float l = 1.0f / sqrtf(x*x + y*y + z*z);
|
||||
x *= l;
|
||||
y *= l;
|
||||
z *= l;
|
||||
}
|
||||
};
|
||||
|
||||
struct mat4
|
||||
{
|
||||
union
|
||||
{
|
||||
float v[16];
|
||||
struct
|
||||
{
|
||||
vec4 column1;
|
||||
vec4 column2;
|
||||
vec4 column3;
|
||||
vec4 column4;
|
||||
};
|
||||
struct
|
||||
{
|
||||
float a, e, i, m;
|
||||
float b, f, j, n;
|
||||
float c, g, k, o;
|
||||
float d, h, l, p;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
vec4 cross(vec4 a, vec4 b)
|
||||
{
|
||||
vec4 r;
|
||||
r.x = a.y*b.z - a.z*b.y;
|
||||
r.y = a.z*b.x - a.x*b.z;
|
||||
r.z = a.x*b.y - a.y*b.x;
|
||||
return r;
|
||||
}
|
||||
|
||||
struct face
|
||||
{
|
||||
vec4 v1;
|
||||
vec4 v2;
|
||||
vec4 v3;
|
||||
vec4 v4;
|
||||
vec4 c;
|
||||
|
||||
void calculateCenter()
|
||||
{
|
||||
c.x = (v1.x + v2.x + v3.x + v4.x) * 0.25f;
|
||||
c.y = (v1.y + v2.y + v3.y + v4.y) * 0.25f;
|
||||
c.z = (v1.z + v2.z + v3.z + v4.z) * 0.25f;
|
||||
c.w = 1.0f;
|
||||
}
|
||||
};
|
||||
|
||||
vec4 mul(vec4 v, mat4 m)
|
||||
{
|
||||
vec4 r;
|
||||
r.x = m.a*v.x + m.b*v.y + m.c*v.z + m.d*v.w;
|
||||
r.y = m.e*v.x + m.f*v.y + m.g*v.z + m.h*v.w;
|
||||
r.z = m.i*v.x + m.j*v.y + m.k*v.z + m.l*v.w;
|
||||
r.w = m.m*v.x + m.n*v.y + m.o*v.z + m.p*v.w;
|
||||
r.homogenize();
|
||||
return r;
|
||||
}
|
||||
|
||||
struct cube
|
||||
{
|
||||
public:
|
||||
cube()
|
||||
{
|
||||
f1.v1.x = -1;
|
||||
f1.v1.y = 1;
|
||||
f1.v1.z = -1;
|
||||
f1.v1.w = 1;
|
||||
|
||||
f1.v2.x = -1;
|
||||
f1.v2.y = 1;
|
||||
f1.v2.z = 1;
|
||||
f1.v2.w = 1;
|
||||
|
||||
f1.v3.x = 1;
|
||||
f1.v3.y = 1;
|
||||
f1.v3.z = 1;
|
||||
f1.v3.w = 1;
|
||||
|
||||
f1.v4.x = 1;
|
||||
f1.v4.y = 1;
|
||||
f1.v4.z = -1;
|
||||
f1.v4.w = 1;
|
||||
|
||||
f2.v1.x = -1;
|
||||
f2.v1.y = -1;
|
||||
f2.v1.z = -1;
|
||||
f2.v1.w = 1;
|
||||
|
||||
f2.v2.x = -1;
|
||||
f2.v2.y = -1;
|
||||
f2.v2.z = 1;
|
||||
f2.v2.w = 1;
|
||||
|
||||
f2.v3.x = 1;
|
||||
f2.v3.y = -1;
|
||||
f2.v3.z = 1;
|
||||
f2.v3.w = 1;
|
||||
|
||||
f2.v4.x = 1;
|
||||
f2.v4.y = -1;
|
||||
f2.v4.z = -1;
|
||||
f2.v4.w = 1;
|
||||
|
||||
f3.v1.x = 1;
|
||||
f3.v1.y = -1;
|
||||
f3.v1.z = -1;
|
||||
f3.v1.w = 1;
|
||||
|
||||
f3.v2.x = 1;
|
||||
f3.v2.y = -1;
|
||||
f3.v2.z = 1;
|
||||
f3.v2.w = 1;
|
||||
|
||||
f3.v3.x = 1;
|
||||
f3.v3.y = 1;
|
||||
f3.v3.z = 1;
|
||||
f3.v3.w = 1;
|
||||
|
||||
f3.v4.x = 1;
|
||||
f3.v4.y = 1;
|
||||
f3.v4.z = -1;
|
||||
f3.v4.w = 1;
|
||||
|
||||
f4.v1.x = -1;
|
||||
f4.v1.y = -1;
|
||||
f4.v1.z = -1;
|
||||
f4.v1.w = 1;
|
||||
|
||||
f4.v2.x = -1;
|
||||
f4.v2.y = -1;
|
||||
f4.v2.z = 1;
|
||||
f4.v2.w = 1;
|
||||
|
||||
f4.v3.x = -1;
|
||||
f4.v3.y = 1;
|
||||
f4.v3.z = 1;
|
||||
f4.v3.w = 1;
|
||||
|
||||
f4.v4.x = -1;
|
||||
f4.v4.y = 1;
|
||||
f4.v4.z = -1;
|
||||
f4.v4.w = 1;
|
||||
|
||||
f5.v1.x = -1;
|
||||
f5.v1.y = -1;
|
||||
f5.v1.z = 1;
|
||||
f5.v1.w = 1;
|
||||
|
||||
f5.v2.x = -1;
|
||||
f5.v2.y = 1;
|
||||
f5.v2.z = 1;
|
||||
f5.v2.w = 1;
|
||||
|
||||
f5.v3.x = 1;
|
||||
f5.v3.y = 1;
|
||||
f5.v3.z = 1;
|
||||
f5.v3.w = 1;
|
||||
|
||||
f5.v4.x = 1;
|
||||
f5.v4.y = -1;
|
||||
f5.v4.z = 1;
|
||||
f5.v4.w = 1;
|
||||
|
||||
f6.v1.x = -1;
|
||||
f6.v1.y = -1;
|
||||
f6.v1.z = -1;
|
||||
f6.v1.w = 1;
|
||||
|
||||
f6.v2.x = -1;
|
||||
f6.v2.y = 1;
|
||||
f6.v2.z = -1;
|
||||
f6.v2.w = 1;
|
||||
|
||||
f6.v3.x = 1;
|
||||
f6.v3.y = 1;
|
||||
f6.v3.z = -1;
|
||||
f6.v3.w = 1;
|
||||
|
||||
f6.v4.x = 1;
|
||||
f6.v4.y = -1;
|
||||
f6.v4.z = -1;
|
||||
f6.v4.w = 1;
|
||||
}
|
||||
|
||||
void transform(mat4 m)
|
||||
{
|
||||
f1.v1 = mul(f1.v1, m);
|
||||
f1.v2 = mul(f1.v2, m);
|
||||
f1.v3 = mul(f1.v3, m);
|
||||
f1.v4 = mul(f1.v4, m);
|
||||
|
||||
f2.v1 = mul(f2.v1, m);
|
||||
f2.v2 = mul(f2.v2, m);
|
||||
f2.v3 = mul(f2.v3, m);
|
||||
f2.v4 = mul(f2.v4, m);
|
||||
|
||||
f3.v1 = mul(f3.v1, m);
|
||||
f3.v2 = mul(f3.v2, m);
|
||||
f3.v3 = mul(f3.v3, m);
|
||||
f3.v4 = mul(f3.v4, m);
|
||||
|
||||
f4.v1 = mul(f4.v1, m);
|
||||
f4.v2 = mul(f4.v2, m);
|
||||
f4.v3 = mul(f4.v3, m);
|
||||
f4.v4 = mul(f4.v4, m);
|
||||
|
||||
f5.v1 = mul(f5.v1, m);
|
||||
f5.v2 = mul(f5.v2, m);
|
||||
f5.v3 = mul(f5.v3, m);
|
||||
f5.v4 = mul(f5.v4, m);
|
||||
|
||||
f6.v1 = mul(f6.v1, m);
|
||||
f6.v2 = mul(f6.v2, m);
|
||||
f6.v3 = mul(f6.v3, m);
|
||||
f6.v4 = mul(f6.v4, m);
|
||||
}
|
||||
|
||||
void calculateCenters()
|
||||
{
|
||||
f1.calculateCenter();
|
||||
f2.calculateCenter();
|
||||
f3.calculateCenter();
|
||||
f4.calculateCenter();
|
||||
f5.calculateCenter();
|
||||
f6.calculateCenter();
|
||||
}
|
||||
|
||||
face f1;
|
||||
face f2;
|
||||
face f3;
|
||||
face f4;
|
||||
face f5;
|
||||
face f6;
|
||||
};
|
||||
|
||||
void DrawFace(face f)
|
||||
{
|
||||
Click(polygonTool);
|
||||
//::Sleep(2);
|
||||
Drag(f.v1.x, f.v1.y, f.v2.x, f.v2.y);
|
||||
Click(f.v3.x, f.v3.y);
|
||||
Click(f.v4.x, f.v4.y);
|
||||
Click(f.v1.x, f.v1.y);
|
||||
Click(topleft);
|
||||
}
|
||||
|
||||
int _tmain(int argc, _TCHAR* argv[])
|
||||
{
|
||||
StartPaint();
|
||||
for (int g = 0; g < 255; g += 26)
|
||||
{
|
||||
AddColor(255, g, 0);
|
||||
}
|
||||
|
||||
Click(rectangleTool);
|
||||
InitPen(Pen::NoFill, Pen::SolidColor);
|
||||
Click(color2);
|
||||
|
||||
::Sleep(500);
|
||||
float y = 1.0f;
|
||||
for (int i = 0; i < 10; ++i, y -= 0.2f)
|
||||
{
|
||||
PickColor(i);
|
||||
::Sleep(50);
|
||||
Drag(-1.6, y, 1.6, y - 0.2f);
|
||||
::Sleep(10);
|
||||
Click(topleft);
|
||||
::Sleep(10);
|
||||
}
|
||||
|
||||
Click(lineTool);
|
||||
::Sleep(10);
|
||||
Click(color1);
|
||||
::Sleep(10);
|
||||
AltPressKey(L'h');
|
||||
::Sleep(10);
|
||||
WriteString(L"b");
|
||||
::Sleep(10);
|
||||
PressVKey(VK_RIGHT);
|
||||
::Sleep(10);
|
||||
PressVKey(VK_RIGHT);
|
||||
::Sleep(10);
|
||||
PressVKey(VK_RIGHT);
|
||||
::Sleep(10);
|
||||
PressVKey(VK_RETURN);
|
||||
::Sleep(10);
|
||||
AltPressKey(L'h');
|
||||
::Sleep(10);
|
||||
WriteString(L"sz");
|
||||
::Sleep(10);
|
||||
PressVKey(VK_DOWN);
|
||||
::Sleep(10);
|
||||
PressVKey(VK_DOWN);
|
||||
::Sleep(10);
|
||||
PressVKey(VK_DOWN);
|
||||
::Sleep(10);
|
||||
PressVKey(VK_RETURN);
|
||||
::Sleep(10);
|
||||
|
||||
y = 0.8325f;
|
||||
for (int i = 0; i < 9; ++i, y -= 0.2f)
|
||||
{
|
||||
PickColor(i);
|
||||
::Sleep(10);
|
||||
y -= 0.03f;
|
||||
for (float x = -1.6; x < 1.6; x += 0.01f)
|
||||
{
|
||||
Drag(x, y, x + 0.01f, y - 0.02f);
|
||||
::Sleep(1);
|
||||
Drag(x, y - 0.02f, x + 0.01f, y);
|
||||
::Sleep(1);
|
||||
}
|
||||
PickColor(i + 1);
|
||||
::Sleep(10);
|
||||
y += 0.03f;
|
||||
for (float x = -1.6; x < 1.6; x += 0.01f)
|
||||
{
|
||||
Drag(x, y, x + 0.01f, y - 0.02f);
|
||||
::Sleep(1);
|
||||
Drag(x, y - 0.02f, x + 0.01f, y);
|
||||
::Sleep(1);
|
||||
}
|
||||
}
|
||||
|
||||
/*Click(color1);
|
||||
PickColor(0);
|
||||
Click(color2);
|
||||
PickColor(1);
|
||||
float angle = 0.0f;
|
||||
|
||||
mat4 perspective =
|
||||
{
|
||||
1, 0, 0, 0,
|
||||
0, 1, 0, 0,
|
||||
0, 0, 1, 1,
|
||||
0, 0, -1, 0
|
||||
};
|
||||
|
||||
mat4 translation =
|
||||
{
|
||||
1, 0, 0, 0,
|
||||
0, 1, 0, 0,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 5, 1
|
||||
};
|
||||
|
||||
InitPolygon(Pen::SolidColor, Pen::SolidColor);
|
||||
bool firstRun = true;
|
||||
while (!GetAsyncKeyState(VK_ESCAPE))
|
||||
{
|
||||
mat4 rotationY =
|
||||
{
|
||||
cosf(angle), 0, sinf(angle), 0,
|
||||
0, 1, 0, 0,
|
||||
-sinf(angle), 0, cosf(angle), 0,
|
||||
0, 0, 0, 1
|
||||
};
|
||||
|
||||
mat4 rotationX =
|
||||
{
|
||||
1, 0, 0, 0,
|
||||
0, cosf(angle*0.2f), -sinf(angle*0.2f), 0,
|
||||
0, sinf(angle*0.2f), cosf(angle*0.2f), 0,
|
||||
0, 0, 0, 1
|
||||
};
|
||||
|
||||
cube c;
|
||||
c.transform(rotationY);
|
||||
c.transform(rotationX);
|
||||
c.transform(translation);
|
||||
c.calculateCenters();
|
||||
c.transform(perspective);
|
||||
|
||||
std::map<float, std::vector<face>> faces;
|
||||
faces[c.f1.c.z] = std::vector<face>();
|
||||
faces[c.f2.c.z] = std::vector<face>();
|
||||
faces[c.f3.c.z] = std::vector<face>();
|
||||
faces[c.f4.c.z] = std::vector<face>();
|
||||
faces[c.f5.c.z] = std::vector<face>();
|
||||
faces[c.f6.c.z] = std::vector<face>();
|
||||
faces[c.f1.c.z].push_back(c.f1);
|
||||
faces[c.f2.c.z].push_back(c.f2);
|
||||
faces[c.f3.c.z].push_back(c.f3);
|
||||
faces[c.f4.c.z].push_back(c.f4);
|
||||
faces[c.f5.c.z].push_back(c.f5);
|
||||
faces[c.f6.c.z].push_back(c.f6);
|
||||
|
||||
std::vector<face> drawFaces;
|
||||
int count = 0;
|
||||
for (auto dist = faces.begin(); dist != faces.end(); ++dist)
|
||||
{
|
||||
for (auto face = dist->second.begin(); face != dist->second.end(); ++face, ++count)
|
||||
{
|
||||
drawFaces.push_back(*face);
|
||||
if (count >= 3)
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
end:
|
||||
|
||||
for (auto face = drawFaces.rbegin(); face != drawFaces.rend(); ++face)
|
||||
{
|
||||
DrawFace(*face);
|
||||
::Sleep(1);
|
||||
}
|
||||
|
||||
::Sleep(50);
|
||||
angle += 0.2f;
|
||||
}*/
|
||||
|
||||
//::Sleep(100);
|
||||
//TerminateProcess(mspaint.hProcess, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
93
hgplus/4kpaint/4kpaint/4kpaint.vcxproj
Normal file
93
hgplus/4kpaint/4kpaint/4kpaint.vcxproj
Normal file
@@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{1935A1E9-ED7E-4D03-B4DE-21551A5AF466}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>My4kpaint</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="ReadMe.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="stdafx.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="4kpaint.cpp" />
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
36
hgplus/4kpaint/4kpaint/4kpaint.vcxproj.filters
Normal file
36
hgplus/4kpaint/4kpaint/4kpaint.vcxproj.filters
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="ReadMe.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="stdafx.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="targetver.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="4kpaint.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
20
hgplus/4kpaint/4kpaint/Debug/4kpaint.log
Normal file
20
hgplus/4kpaint/4kpaint/Debug/4kpaint.log
Normal file
@@ -0,0 +1,20 @@
|
||||
Build started 30.04.2014 20:12:12.
|
||||
1>Project "E:\blu-flame.org\hgplus\4kpaint\4kpaint\4kpaint.vcxproj" on node 2 (Build target(s)).
|
||||
1>ClCompile:
|
||||
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _LIB /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yu"stdafx.h" /Fp"Debug\4kpaint.pch" /Fo"Debug\\" /Fd"Debug\vc120.pdb" /Gd /TP /analyze- /errorReport:prompt 4kpaint.cpp
|
||||
4kpaint.cpp
|
||||
1>e:\blu-flame.org\hgplus\4kpaint\4kpaint\4kpaint.cpp(135): warning C4018: '<' : signed/unsigned mismatch
|
||||
1>e:\blu-flame.org\hgplus\4kpaint\4kpaint\4kpaint.cpp(164): warning C4244: 'return' : conversion from 'float' to 'int', possible loss of data
|
||||
1>e:\blu-flame.org\hgplus\4kpaint\4kpaint\4kpaint.cpp(169): warning C4244: 'return' : conversion from 'float' to 'int', possible loss of data
|
||||
1>e:\blu-flame.org\hgplus\4kpaint\4kpaint\4kpaint.cpp(501): warning C4305: 'argument' : truncation from 'double' to 'float'
|
||||
1>e:\blu-flame.org\hgplus\4kpaint\4kpaint\4kpaint.cpp(542): warning C4305: 'initializing' : truncation from 'double' to 'float'
|
||||
1>e:\blu-flame.org\hgplus\4kpaint\4kpaint\4kpaint.cpp(552): warning C4305: 'initializing' : truncation from 'double' to 'float'
|
||||
Link:
|
||||
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"E:\blu-flame.org\hgplus\4kpaint\Debug\4kpaint.exe" /INCREMENTAL /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"E:\blu-flame.org\hgplus\4kpaint\Debug\4kpaint.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"E:\blu-flame.org\hgplus\4kpaint\Debug\4kpaint.lib" /MACHINE:X86 Debug\4kpaint.obj
|
||||
Debug\stdafx.obj
|
||||
4kpaint.vcxproj -> E:\blu-flame.org\hgplus\4kpaint\Debug\4kpaint.exe
|
||||
1>Done Building Project "E:\blu-flame.org\hgplus\4kpaint\4kpaint\4kpaint.vcxproj" (Build target(s)).
|
||||
|
||||
Build succeeded.
|
||||
|
||||
Time Elapsed 00:00:00.24
|
||||
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.obj
Normal file
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.obj
Normal file
Binary file not shown.
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.pch
Normal file
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.pch
Normal file
Binary file not shown.
@@ -0,0 +1,2 @@
|
||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v120:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
|
||||
Debug|Win32|E:\blu-flame.org\hgplus\4kpaint\|
|
||||
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.tlog/CL.read.1.tlog
Normal file
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.tlog/CL.read.1.tlog
Normal file
Binary file not shown.
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.tlog/CL.write.1.tlog
Normal file
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.tlog/CL.write.1.tlog
Normal file
Binary file not shown.
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.tlog/cl.command.1.tlog
Normal file
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.tlog/cl.command.1.tlog
Normal file
Binary file not shown.
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.tlog/link.command.1.tlog
Normal file
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.tlog/link.command.1.tlog
Normal file
Binary file not shown.
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.tlog/link.read.1.tlog
Normal file
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.tlog/link.read.1.tlog
Normal file
Binary file not shown.
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.tlog/link.write.1.tlog
Normal file
BIN
hgplus/4kpaint/4kpaint/Debug/4kpaint.tlog/link.write.1.tlog
Normal file
Binary file not shown.
BIN
hgplus/4kpaint/4kpaint/Debug/stdafx.obj
Normal file
BIN
hgplus/4kpaint/4kpaint/Debug/stdafx.obj
Normal file
Binary file not shown.
BIN
hgplus/4kpaint/4kpaint/Debug/vc120.idb
Normal file
BIN
hgplus/4kpaint/4kpaint/Debug/vc120.idb
Normal file
Binary file not shown.
BIN
hgplus/4kpaint/4kpaint/Debug/vc120.pdb
Normal file
BIN
hgplus/4kpaint/4kpaint/Debug/vc120.pdb
Normal file
Binary file not shown.
40
hgplus/4kpaint/4kpaint/ReadMe.txt
Normal file
40
hgplus/4kpaint/4kpaint/ReadMe.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
========================================================================
|
||||
CONSOLE APPLICATION : 4kpaint Project Overview
|
||||
========================================================================
|
||||
|
||||
AppWizard has created this 4kpaint application for you.
|
||||
|
||||
This file contains a summary of what you will find in each of the files that
|
||||
make up your 4kpaint application.
|
||||
|
||||
|
||||
4kpaint.vcxproj
|
||||
This is the main project file for VC++ projects generated using an Application Wizard.
|
||||
It contains information about the version of Visual C++ that generated the file, and
|
||||
information about the platforms, configurations, and project features selected with the
|
||||
Application Wizard.
|
||||
|
||||
4kpaint.vcxproj.filters
|
||||
This is the filters file for VC++ projects generated using an Application Wizard.
|
||||
It contains information about the association between the files in your project
|
||||
and the filters. This association is used in the IDE to show grouping of files with
|
||||
similar extensions under a specific node (for e.g. ".cpp" files are associated with the
|
||||
"Source Files" filter).
|
||||
|
||||
4kpaint.cpp
|
||||
This is the main application source file.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
Other standard files:
|
||||
|
||||
StdAfx.h, StdAfx.cpp
|
||||
These files are used to build a precompiled header (PCH) file
|
||||
named 4kpaint.pch and a precompiled types file named StdAfx.obj.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
Other notes:
|
||||
|
||||
AppWizard uses "TODO:" comments to indicate parts of the source code you
|
||||
should add to or customize.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
8
hgplus/4kpaint/4kpaint/stdafx.cpp
Normal file
8
hgplus/4kpaint/4kpaint/stdafx.cpp
Normal file
@@ -0,0 +1,8 @@
|
||||
// stdafx.cpp : source file that includes just the standard includes
|
||||
// 4kpaint.pch will be the pre-compiled header
|
||||
// stdafx.obj will contain the pre-compiled type information
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: reference any additional headers you need in STDAFX.H
|
||||
// and not in this file
|
||||
20
hgplus/4kpaint/4kpaint/stdafx.h
Normal file
20
hgplus/4kpaint/4kpaint/stdafx.h
Normal file
@@ -0,0 +1,20 @@
|
||||
// stdafx.h : include file for standard system include files,
|
||||
// or project specific include files that are used frequently, but
|
||||
// are changed infrequently
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "targetver.h"
|
||||
|
||||
#include <cmath>
|
||||
#include <map>
|
||||
#include <algorithm>
|
||||
#include <vector>
|
||||
#include <stdio.h>
|
||||
#include <tchar.h>
|
||||
#include <Windows.h>
|
||||
|
||||
|
||||
|
||||
// TODO: reference additional headers your program requires here
|
||||
8
hgplus/4kpaint/4kpaint/targetver.h
Normal file
8
hgplus/4kpaint/4kpaint/targetver.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
// Including SDKDDKVer.h defines the highest available Windows platform.
|
||||
|
||||
// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
|
||||
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
|
||||
|
||||
#include <SDKDDKVer.h>
|
||||
Reference in New Issue
Block a user