Import Hexapod-App (2012) with full history

This commit is contained in:
mangavalk committed 2026-10-25 17:23:48 +01:00
commit a22ce93ab2
73 files changed
+1731

No files matched your search

+282
View File
@@ -0,0 +1,282 @@
# Created by https://www.gitignore.io/api/visualstudio
### VisualStudio ###
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
*.vcxproj.filters
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
project.fragment.lock.json
artifacts/
Properties/launchSettings.json
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/
### VisualStudio Patch ###
build/
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,97 @@
<?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>{7B99C6A5-E418-4C29-AB89-66A3FEE46034}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>CatmullRomapp</RootNamespace>
<ProjectName>Hexapod app</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<UseOfAtl>Static</UseOfAtl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</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>false</LinkIncremental>
<LibraryPath>C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64;$(LibraryPath)</LibraryPath>
<IncludePath>C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;$(IncludePath)</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>d3dx11d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="DataLine.h" />
<ClCompile Include="InverseKinemetics.cpp" />
<ClCompile Include="Leg.cpp" />
<ClCompile Include="Main.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="InverseKinemetics.h" />
<ClInclude Include="Leg.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,39 @@
<?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;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>
<ClCompile Include="Main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="InverseKinemetics.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Leg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DataLine.h">
<Filter>Header Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="InverseKinemetics.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Leg.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>
@@ -0,0 +1,38 @@
#ifndef DATA
#define DATA
#include <D3DX9.h>
struct Data
{
float X;
float Y;
float Z;
float l3;
float s;
int O1;
int O2;
int O3;
float X2;
float Y2;
float Z2;
void Input( float x, float y, float z )
{
X = x;
Y = y;
Z = z;
}
void Input( D3DXVECTOR3 i )
{
X = i.x;
Y = i.y;
Z = i.z;
}
};
#endif
@@ -0,0 +1,9 @@
Build started 14-1-2013 10:08:44.
1>Project "C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Catmull-Rom app.vcxproj" on node 2 (Build target(s)).
1>Link:
Catmull-Rom app.vcxproj -> C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Debug\Hexapod app.exe
1>Done Building Project "C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Catmull-Rom app.vcxproj" (Build target(s)).
Build succeeded.
Time Elapsed 00:00:01.54
@@ -0,0 +1,31 @@
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\MAIN.OBJ
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\VC110.PDB
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\DATALINE.OBJ
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\INVERSEKINEMETICS.OBJ
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\MAIN.OBJ
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\VC110.PDB
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\DEBUG\CATMULL-ROM APP.ILK
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\DEBUG\CATMULL-ROM APP.EXE
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\DEBUG\CATMULL-ROM APP.PDB
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\DataLine.obj
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\InverseKinemetics.obj
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\Main.obj
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\cl.command.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\CL.read.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\CL.write.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link-cvtres.read.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link-cvtres.write.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link-rc.read.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link-rc.write.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link.12748-cvtres.read.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link.12748-cvtres.write.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link.12748-rc.read.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link.12748-rc.write.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link.12748.read.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link.12748.write.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link.command.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link.read.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link.write.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\vc110.idb
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\vc110.pdb
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Debug\Catmull-Rom app.pdb
@@ -0,0 +1,2 @@
#v4.0:v110:false
Debug|Win32|D:\dropbox\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\|
@@ -0,0 +1,66 @@
Build started 25-11-2013 13:59:35.
1>Project "C:\Users\patrick\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Catmull-Rom app.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 _WINDOWS /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc120.pdb" /Gd /TP /analyze- /errorReport:prompt DataLine.h InverseKinemetics.cpp Leg.cpp Main.cpp
Main.cpp
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.h(24): warning C4244: 'return' : conversion from 'double' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.h(18): warning C4099: 'std::vector<D3DXVECTOR3,std::allocator<_Ty>>' : type name first seen using 'class' now seen using 'struct'
with
[
_Ty=D3DXVECTOR3
]
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\main.cpp(25): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files (x86)\microsoft visual studio 12.0\vc\include\stdio.h(356) : see declaration of 'sprintf'
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\main.cpp(26): warning C4172: returning address of local variable or temporary
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\main.cpp(303): warning C4244: 'argument' : conversion from 'float' to 'const int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\main.cpp(304): warning C4244: 'argument' : conversion from 'float' to 'const int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\main.cpp(305): warning C4244: 'argument' : conversion from 'float' to 'const int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\main.cpp(226): warning C4101: 'ps' : unreferenced local variable
Leg.cpp
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.h(24): warning C4244: 'return' : conversion from 'double' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.h(18): warning C4099: 'std::vector<D3DXVECTOR3,std::allocator<_Ty>>' : type name first seen using 'class' now seen using 'struct'
with
[
_Ty=D3DXVECTOR3
]
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(36): warning C4305: '+=' : truncation from 'double' to 'float'
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(38): warning C4305: '+=' : truncation from 'double' to 'float'
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(129): warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(131): warning C4018: '<' : signed/unsigned mismatch
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(133): warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(134): warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(153): warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(156): warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(159): warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(172): warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(173): warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(181): warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\leg.cpp(182): warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
InverseKinemetics.cpp
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.h(24): warning C4244: 'return' : conversion from 'double' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.cpp(27): warning C4244: 'return' : conversion from 'double' to 'float', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.cpp(30): warning C4244: 'return' : conversion from 'double' to 'float', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.cpp(23): warning C4101: 'r' : unreferenced local variable
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.cpp(81): warning C4244: 'initializing' : conversion from 'int' to 'float', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.cpp(87): warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.cpp(88): warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.cpp(89): warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.cpp(91): warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.cpp(97): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\inversekinemetics.cpp(103): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
DataLine.h
Generating Code...
1>c:\users\patrick\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\main.cpp(404): warning C4715: 'WndProc' : not all control paths return a value
1>cl : Command line warning D9028: minimal rebuild failure, reverting to normal build
Link:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\patrick\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Debug\Hexapod app.exe" /INCREMENTAL:NO /NOLOGO d3dx11d.lib 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:"C:\Users\patrick\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Debug\Hexapod app.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\patrick\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Debug\Hexapod app.lib" /MACHINE:X86 Debug\DataLine.obj
Debug\InverseKinemetics.obj
Debug\Leg.obj
Debug\Main.obj
1>DataLine.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:LBR' specification
Catmull-Rom app.vcxproj -> C:\Users\patrick\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Debug\Hexapod app.exe
1>Done Building Project "C:\Users\patrick\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Catmull-Rom app.vcxproj" (Build target(s)).
Build succeeded.
Time Elapsed 00:00:05.64
@@ -0,0 +1,40 @@
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\VC100.PDB
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\DATALINE.OBJ
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\INVERSEKINEMETICS.OBJ
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\LEG.OBJ
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\MAIN.OBJ
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\VC100.PDB
C:\USERS\MANGAVALK\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\DATALINE.OBJ
C:\USERS\MANGAVALK\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\INVERSEKINEMETICS.OBJ
C:\USERS\MANGAVALK\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\LEG.OBJ
C:\USERS\MANGAVALK\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\MAIN.OBJ
C:\USERS\MANGAVALK\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\VC110.PDB
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\DEBUG\HEXAPOD APP.EXE
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\HEXAPOD APP.EXE.INTERMEDIATE.MANIFEST
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\DEBUG\HEXAPOD APP.PDB
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\DEBUG\HEXAPOD APP.EXE
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\DEBUG\HEXAPOD APP.EXE.INTERMEDIATE.MANIFEST
D:\DROPBOX\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\DEBUG\HEXAPOD APP.PDB
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\DataLine.obj
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\InverseKinemetics.obj
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\Leg.obj
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\Main.obj
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\cl.command.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\CL.read.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\CL.write.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link-cvtres.read.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link-cvtres.write.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link-rc.read.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link-rc.write.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link.command.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link.read.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\link.write.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\mt.command.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\mt.read.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\mt.write.1.tlog
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\Hexapod app.exe.intermediate.manifest
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\vc100.idb
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\vc110.idb
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\vc100.pdb
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Debug\vc110.pdb
C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Debug\Hexapod app.pdb
@@ -0,0 +1,2 @@
#v4.0:v110:false
Debug|Win32|C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\|
@@ -0,0 +1,2 @@
#TargetFrameworkVersion=v4.0:PlatformToolSet=v120:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
Debug|Win32|C:\Users\patrick\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\|
Binary file not shown.
@@ -0,0 +1,134 @@
#include "InverseKinemetics.h"
#pragma region Core
void InverseKinemetics::RL3 (Data *DataLine)
{
float x = DataLine->X;
float z = DataLine->Z;
if ((x == 0) && (z == 0))
DataLine->l3 = 0;
else DataLine->l3 = hypot(z, x);
if (x < 0)
DataLine->l3 = DataLine->l3 * -1;
}
float InverseKinemetics::O1 (Data *DataLine)
{
RL3(DataLine);
float x = DataLine->X;
float z = DataLine->Z;
float r;
if ((x != 0) & (z != 0)){
double a = (z / x);
return atan(a);
}
else
return atan(0.0); // Math Error Protection.
}
float InverseKinemetics::T1 (Data *DataLine)
{
float x = DataLine->X;
float y = DataLine->Y;
float z = DataLine->Z;
float x2 = x * x;
float y2 = y * y;
float z2 = z * z;
float l32 = DataLine->l3 * DataLine->l3;
DataLine->s = sqrt(x2 + y2 + z2);
float t1 = 0;
float s2 = DataLine->s * DataLine->s;
if ((y == 0) && (DataLine->l3 == 0))
t1 = 0; // Math Error Protection.
else
t1 = (atan2(float(DataLine->l3), float(y)));
float a = (l1 * l1) - (l2*l2) + s2;
float b = 2 * l1 * DataLine->s;
float t2 = acos(a / b);
float ret = 0;
ret = t1 + abs( (long long) t2);
return ret;
}
float InverseKinemetics::T3 (Data *DataLine)
{
return (acos((float)((l1*l1) + (l2*l2) - (DataLine->s*DataLine->s)) / (2 * l1 * l2)));
}
#pragma endregion Core
#define PI 3.14159265
void InverseKinemetics::setleg (bool Side, Data *DataLine)
{
error = false;
if (Side == 0)
{
float a = ((float)90 - degrees(O1(DataLine)));
float b = ((float)180 - degrees(T1(DataLine)));
float c = degrees(T3(DataLine));
if ((a >= 0) & (a <= 180)
& (b >= 0) & (b <= 180)
& (c >= 0) & (c <= 180))
{
DataLine->O1 = a;
DataLine->O2 = b;
DataLine->O3 = c;
float d = sin( (float)b*(PI/180) );
if( d != 0 )
DataLine->X2 = d * l1;
else
DataLine->X2 = 0;
d = cos( (float)b*(PI/180) );
if( d != 0 )
DataLine->Y2 = d * l1;
else
DataLine->Y2 = 0;
d = sin( (float)(a-90)*(PI/180) );
if( d != 0 )
DataLine->Z2 = d * abs( (long long) DataLine->X2 );
else
DataLine->Z2 = 0;
}
else
{
error = true;
}
}
//else
//{
// float a = ((float)90 + degrees(O1(DataLine)));
// float b = degrees(T1(DataLine));
// float c = ((float)180 - degrees(T3(DataLine)));
//
// /*if ((a >= 0) & (a <= 180)
// & (b >= 0) & (b <= 180)
// & (c >= 0) & (c <= 180))
// {*/
// DataLine->O1 = a;
// DataLine->O2 = b;
// DataLine->O3 = c;
// /*}
// else
// {
// error = true;
// }*/
//}
}
@@ -0,0 +1,39 @@
#ifndef INVERSEKINEMETICS
#define INVERSEKINEMETICS
#include <math.h>
#include <D3DX9.h>
#include "DataLine.h"
class InverseKinemetics
{
public:
bool error;
int l1;
int l2;
InverseKinemetics()
{
error = 0;
l1 = 10;
l2 = 15;
}
int degrees( float I )
{
return I * ( 180 / 3.14 );
}
void RL3 (Data *DataLine);
float O1 (Data *DataLine);
float T1 (Data *DataLine);
float T3 (Data *DataLine);
void setleg (bool Side, Data *DataLine);
};
#endif
@@ -0,0 +1,187 @@
//Leg.cpp
#include "Leg.h"
//Initial
Leg::Leg()
{
Coordinate = D3DXVECTOR3( 0, 0, 0 );
Error = 1;
}
Leg::~Leg()
{
}
void Leg::GetHDC( HDC hdc )
{
HDCBuffer = hdc;
}
void Leg::GetHDCSecondBuffer( HDC hdc )
{
HDCSecondBuffer = hdc;
}
void Leg::GetPossibleMoveSpace( )
{
if( MoveSpaceRenderd != 1 )
{
InverseKinemetics IK;
Data *D = new Data;
MoveSpace.clear();
for (float y = -25; y < 26; y += 0.05)
{
for (float x = -25; x < 26; x += 0.05)
{
/*for (int z = -25; z < 26; z++)
{*/
D->Input( D3DXVECTOR3( x, y, Coordinate.z ) );
IK.setleg( 0, D );
if( IK.error == 0 )
{
MoveSpace.push_back( struct D3DXVECTOR3( x, y, 0 ));
}
/*}*/
}
}
MoveSpaceRenderd = 1;
}
}
//Overload
D3DXVECTOR3 operator*(const D3DXVECTOR3& a, const D3DXVECTOR3& b)
{
return D3DXVECTOR3(a.x * b.x, a.y * b.y, a.z * b.z);
}
//Input
void Leg::Coordinates( float ix, float iy, float iz )
{
Coordinate.x = ix;
Coordinate.y = iy;
Coordinate.z = iz;
}
void Leg::Coordinates( D3DXVECTOR3 i )
{
Coordinate = i;
}
void Leg::Offset( float ix, float iy, float iz )
{
OffsetVector = D3DXVECTOR3( ix, iy, iz );
}
void Leg::Offset( D3DXVECTOR3 i )
{
OffsetVector = i;
}
void Leg::Size( float ix, float iy, float iz )
{
SizeVector = D3DXVECTOR3( ix, iy, iz );
}
void Leg::Size( D3DXVECTOR3 i )
{
SizeVector = i;
}
//Functions
void Leg::CalculateLegRight( )
{
Data *D = new Data;
InverseKinemetics IK;
D->Input( Coordinate );
IK.setleg( 0, D );
Error = IK.error;
ModelSpaceHip = D3DXVECTOR3( 0, 0, 0 );
ModelSpaceKnee = D3DXVECTOR3( D->X2, D->Y2*-1, D->Z2 );
ModelSpaceFeet = Coordinate;
}
void Leg::CalculateWorldSpaceLineModel( )
{
WorldSpaceLineModel.clear();
WorldSpaceLineModel.push_back( ModelSpaceHip + OffsetVector );
WorldSpaceLineModel.push_back( ( ModelSpaceKnee * SizeVector ) + OffsetVector );
WorldSpaceLineModel.push_back( ( ModelSpaceFeet * SizeVector ) + OffsetVector );
}
void Leg::PrintMoveSpaceOnWorldSpace( )
{
if( MoveSpaceRenderd )
{
HPEN pen, oldPen;
pen = CreatePen(PS_SOLID, 2, RGB(0, 32, 20));
oldPen = (HPEN)SelectObject(HDCSecondBuffer, pen);
MoveToEx( HDCSecondBuffer, OffsetVector.x, OffsetVector.y, 0 );
for (int i=0; i<MoveSpace.size(); i++)
{
int X = OffsetVector.x+(MoveSpace[i].x*SizeVector.x);
int Y = OffsetVector.y+(MoveSpace[i].y*SizeVector.y);
SetPixel( HDCSecondBuffer, X, Y, RGB(0, 32, 20) );
}
SelectObject(HDCSecondBuffer, oldPen);
DeleteObject(pen);
}
}
void Leg::PrintWorldSpaceLineModel( )
{
HPEN pen, oldPen;
int Size = 15;
pen = CreatePen(PS_SOLID, 2, RGB(150, 150, 150));
oldPen = (HPEN)SelectObject(HDCBuffer, pen);
MoveToEx( HDCBuffer, WorldSpaceLineModel[0].x,
WorldSpaceLineModel[0].y, 0 );
LineTo( HDCBuffer, WorldSpaceLineModel[1].x,
WorldSpaceLineModel[1].y);
LineTo( HDCBuffer, WorldSpaceLineModel[2].x,
WorldSpaceLineModel[2].y );
SelectObject(HDCBuffer, oldPen);
DeleteObject(pen);
}
void Leg::Print3DLinesOnWorldSpace( )
{
HPEN pen, oldPen;
pen = CreatePen(PS_SOLID, 2, RGB(255, 0, 0));
oldPen = (HPEN)SelectObject(HDCBuffer, pen);
MoveToEx( HDCBuffer, OffsetVector.x, 0, 0 );
LineTo( HDCBuffer, OffsetVector.x, 800 );
SelectObject(HDCBuffer, oldPen);
DeleteObject(pen);
pen = CreatePen(PS_SOLID, 2, RGB(0, 0, 255));
oldPen = (HPEN)SelectObject(HDCBuffer, pen);
MoveToEx( HDCBuffer, 0, OffsetVector.y, 0 );
LineTo( HDCBuffer, 800, OffsetVector.y );
SelectObject(HDCBuffer, oldPen);
DeleteObject(pen);
}
@@ -0,0 +1,70 @@
//Leg.h
#ifndef LEG_H
#define LEG_H
#include <Windows.h>
#include "InverseKinemetics.h"
#include <vector>
#include <D3DX9.h>
using namespace std;
class Leg
{
public:
//Variable
D3DXVECTOR3 OffsetVector, SizeVector, Coordinate;
struct vector<D3DXVECTOR3> MoveSpace;
bool MoveSpaceRenderd;
D3DXVECTOR3 ModelSpaceHip, ModelSpaceKnee, ModelSpaceFeet;
vector<struct D3DXVECTOR3> WorldSpaceLineModel;
bool Error;
HDC HDCBuffer, HDCSecondBuffer;
//Initial
Leg();
~Leg();
void GetHDC( HDC hdc );
void GetHDCSecondBuffer( HDC hdc );
//Input
void Coordinates( float ix, float iy, float iz );
void Coordinates( D3DXVECTOR3 i );
void Offset( float ix, float iy, float iz );
void Offset( D3DXVECTOR3 i );
void Size( float ix, float iy, float iz );
void Size( D3DXVECTOR3 i );
//Functions
void GetPossibleMoveSpace( );
void CalculateLegRight( );
void CalculateWorldSpaceLineModel( );
void PrintMoveSpaceOnWorldSpace( );
void PrintWorldSpaceLineModel( );
void Print3DLinesOnWorldSpace( );
};
#endif
/*
Z-Axis Rotation
x' = x*cos q - y*sin q
y' = x*sin q + y*cos q
z' = z
X-Axis Rotation
y' = y*cos q - z*sin q
z' = y*sin q + z*cos q
x' = x
Y-Axis Rotation
z' = z*cos q - x*sin q
x' = z*sin q + x*cos q
y' = y
*/
@@ -0,0 +1,475 @@
#include <Windows.h>
//#include <vector>
#include <math.h>
#include <time.h>
#include "string"
#include <stdlib.h>
#include <stdio.h>
#include <sstream>
#include "Leg.h"
#include <D3DX9.h>
using namespace std;
#define DRAW WM_USER + 1
#pragma region ConverToInt
#ifdef UNICODE
typedef std::wostringstream tstringstream;
#else
typedef std::ostringstream tstringstream;
#endif
LPCTSTR convertInt(const int number)
{
char str[512];
sprintf(str,"%d",number);
return str;
}
#pragma endregion ConverToInt
#pragma region Global
HWND ghMainWnd = 0;
HINSTANCE ghAppInst = 0;
bool gMouseDown = 0;
HDC backDC;
HDC BackDC2;
HBITMAP backBufferBMP;
HBITMAP backBufferBMP2;
int backBufferCX;
int backBufferCY;
Leg *La;
D3DXVECTOR3 Coordinates( 10, 15, 0);
D3DXVECTOR3 SuccessfulCoordinate;
D3DXVECTOR3 Offset( 250, 400, 0);
D3DXVECTOR3 Size( 15, 15, 15 );
#pragma endregion Global
#pragma region OtherFunctions
clock_t Fpres;
bool DD ( )
{
clock_t t = clock();
if ((t - Fpres) <= 200)
return 1;
else
{
Fpres = t;
return 0;
}
}
inline void draw()
{
HDC winhdc = GetDC( ghMainWnd ) ;
// Now copy the back buffer to the front buffer.
BitBlt(
winhdc, // destination buffer
0, 0, // x, y to start writing to in the destination buffer
// counted from top left corner of dest HDC (window)
// Width, height to copy for
backBufferCX, backBufferCY,
backDC, // SOURCE buffer. We're taking from that back canvas
0, 0, // x pt, y pt to START copying from
// SOURCE. counted from top left again
// And we just want a straight copy.
SRCCOPY );
ReleaseDC( ghMainWnd, winhdc ) ;
}
inline void copybtf( HDC back, HDC front )
{
// copy the back buffer to the front buffer.
BitBlt(
front, // destination buffer
0, 0, // x, y to start writing to in the destination buffer
// counted from top left corner of dest HDC (window)
// Width, height to copy for
backBufferCX, backBufferCY,
back, // SOURCE buffer. We're taking from that back canvas
0, 0, // x pt, y pt to START copying from
// SOURCE. counted from top left again
// And we just want a straight copy.
SRCCOPY );
}
void InitBackBuffer()
{
backBufferCX = 700;
backBufferCY = 850;
HDC winhdc = GetDC( ghMainWnd );
/*
Imagine you have 2 things:
- a canvas on which to draw (call this your HBITMAP)
- set of brushes you will use to draw (call this your HDC)
1. HBITMAP. Canvas
___________________
| * |
| * |
| HBITMAP |
| draw here |
|_________________|
2. HDC. Set of brushes.
<-*
[]-*
()-*
*/
// Create the HBITMAP "canvas", or surface on which we will draw.
backBufferBMP = CreateCompatibleBitmap( winhdc, backBufferCX, backBufferCY );
if(backBufferBMP == NULL)
printf( "failed to create backBufferBMP" );
// Create the HDC "device context", or collection of tools
// and brushes that we can use to draw on our canvas
backDC = CreateCompatibleDC( winhdc );
if(backDC == NULL)
printf( "failed to create the backDC" );
// Permanently associate the surface on which to draw
// ("canvas") (HBITMAP), with the "set of brushes" (HDC)
// "select in" the backBufferBMP into the backDC
HBITMAP oldbmp = (HBITMAP)SelectObject( backDC, backBufferBMP );
// Delete the "canvas" that the backDC was
// going to draw to. We don't care about it.
DeleteObject( oldbmp );
/// Release the dc of the main window itself
ReleaseDC( ghMainWnd, winhdc );
}
void InitBackBuffer2()
{
backBufferCX = 700;
backBufferCY = 850;
HDC winhdc = GetDC( ghMainWnd );
// Create the HBITMAP "canvas", or surface on which we will draw.
backBufferBMP2 = CreateCompatibleBitmap( winhdc, backBufferCX, backBufferCY );
if(backBufferBMP2 == NULL)
printf( "failed to create backBufferBMP" );
// Create the HDC "device context", or collection of tools
// and brushes that we can use to draw on our canvas
BackDC2 = CreateCompatibleDC( winhdc );
if(BackDC2 == NULL)
printf( "failed to create the backDC" );
// Permanently associate the surface on which to draw
// ("canvas") (HBITMAP), with the "set of brushes" (HDC)
// "select in" the backBufferBMP into the backDC
HBITMAP oldbmp = (HBITMAP)SelectObject( BackDC2, backBufferBMP2 );
// Delete the "canvas" that the backDC was
// going to draw to. We don't care about it.
DeleteObject( oldbmp );
/// Release the dc of the main window itself
ReleaseDC( ghMainWnd, winhdc );
}
inline void ClearBackDC()
{
// clear by filling out the back buffer with black rectangle
HBRUSH oldBrush = (HBRUSH)SelectObject( backDC, GetStockObject( BLACK_BRUSH ) ) ;
Rectangle( backDC, 0, 0, backBufferCX, backBufferCY );
SelectObject( backDC, oldBrush ) ; // put the old brush back, not bothering
// to catch the system BLACK_BRUSH
}
inline void ClearBackDC2()
{
// clear by filling out the back buffer with black rectangle
HBRUSH oldBrush = (HBRUSH)SelectObject( BackDC2, GetStockObject( BLACK_BRUSH ) ) ;
Rectangle( BackDC2, 0, 0, backBufferCX, backBufferCY );
SelectObject( BackDC2, oldBrush ) ; // put the old brush back, not bothering
// to catch the system BLACK_BRUSH
}
#pragma endregion OtherFunctions
LRESULT CALLBACK
WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
HDC hdc = 0;
PAINTSTRUCT ps;
int mx = LOWORD(lParam);
int my = HIWORD(lParam);
D3DXVECTOR3 test;
switch( msg )
{
#pragma region CREATE
case WM_CREATE:
{
La = new Leg;
La->Offset( Offset );
La->Size( Size );
InitBackBuffer();
La->GetHDC( backDC );
InitBackBuffer2();
La->GetHDCSecondBuffer( BackDC2 );
La->GetPossibleMoveSpace();
La->PrintMoveSpaceOnWorldSpace();
PostMessage( hWnd, DRAW, wParam, lParam );
break;
}
#pragma endregion CREATE
case DRAW:
{
#pragma region DRAW
ClearBackDC();
copybtf( BackDC2, backDC );
La->Coordinates( Coordinates );
La->CalculateLegRight();
if( La->Error == true )
{
La->Coordinates( SuccessfulCoordinate );
La->CalculateLegRight();
La->CalculateWorldSpaceLineModel();
La->Print3DLinesOnWorldSpace();
La->PrintWorldSpaceLineModel();
}
else
{
La->CalculateWorldSpaceLineModel();
La->Print3DLinesOnWorldSpace();
La->PrintWorldSpaceLineModel();
SuccessfulCoordinate = La->Coordinate;
}
#pragma region Status
RECT rcWind;
POINT ptDiff;
GetWindowRect(hWnd, &rcWind);
ptDiff.x = (rcWind.right - rcWind.left);
ptDiff.y = (rcWind.bottom - rcWind.top);
//TextOut( backDC, ptDiff.x - 44, 0, convertInt( D->O1 ), ( sizeof( convertInt( D->O1 ) ) / sizeof( char ) - 1) );
//TextOut( backDC, ptDiff.x - 44, 20, convertInt( D->O2 ), ( sizeof( convertInt( D->O2 ) ) / sizeof( char ) - 1) );
//TextOut( backDC, ptDiff.x - 44, 40, convertInt( D->O3 ), ( sizeof( convertInt( D->O3 ) ) / sizeof( char ) - 1) );
TextOut( backDC, ptDiff.x - 44, 70, convertInt( Coordinates.x ), ( sizeof( convertInt( Coordinates.x ) ) / sizeof( char ) - 1) );
TextOut( backDC, ptDiff.x - 44, 90, convertInt( Coordinates.y ), ( sizeof( convertInt( Coordinates.y ) ) / sizeof( char ) - 1) );
TextOut( backDC, ptDiff.x - 44, 110, convertInt( Coordinates.z ), ( sizeof( convertInt( Coordinates.z ) ) / sizeof( char ) - 1) );
//TextOut( backDC, ptDiff.x - 44, 140, convertInt( D->X2 ), ( sizeof( convertInt( D->X2 ) ) / sizeof( char ) - 1) );
//TextOut( backDC, ptDiff.x - 44, 160, convertInt( D->Y2 ), ( sizeof( convertInt( D->Y2 ) ) / sizeof( char ) - 1) );
//TextOut( backDC, ptDiff.x - 44, 180, convertInt( D->Z2 ), ( sizeof( convertInt( D->Z2 ) ) / sizeof( char ) - 1) );
#pragma endregion Status
#pragma endregion DRAW
break;
}
case WM_KEYUP:
#pragma region KeyMove
if( GetAsyncKeyState( VK_UP ) == 1 )
Coordinates.y--;
if( GetAsyncKeyState( VK_DOWN ) == 1 )
Coordinates.y++;
if( GetAsyncKeyState( VK_LEFT ) == 1 )
Coordinates.x--;
if( GetAsyncKeyState( VK_RIGHT ) == 1 )
Coordinates.x++;
if( GetAsyncKeyState( VK_SUBTRACT ) == 1 )
{
Coordinates.z--;
ClearBackDC2();
La->MoveSpaceRenderd = 0;
La->GetPossibleMoveSpace();
La->PrintMoveSpaceOnWorldSpace();
}
if( GetAsyncKeyState( VK_ADD ) == 1 )
{
Coordinates.z++;
ClearBackDC2();
La->MoveSpaceRenderd = 0;
La->GetPossibleMoveSpace();
La->PrintMoveSpaceOnWorldSpace();
}
#pragma endregion KeyMove
PostMessage( hWnd, DRAW, wParam, lParam );
return 0;
case WM_LBUTTONDOWN:
SetCapture(hWnd);
gMouseDown = true;
break;
case WM_RBUTTONDOWN:
return 0;
case WM_MOUSEMOVE:
if( gMouseDown )
{
Coordinates.x = ((float) mx - Offset.x ) / Size.x;
Coordinates.y = ((float) my - Offset.y) / Size.y;
PostMessage( hWnd, DRAW, wParam, lParam );
}
break;
case WM_LBUTTONUP:
ReleaseCapture();
gMouseDown = false;
break;
case WM_RBUTTONUP:
ReleaseCapture();
gMouseDown = false;
UpdateWindow (hWnd);
break;
#pragma region PAINT
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC winhdc = BeginPaint(hWnd, &ps);
// Do nothing here. All drawing happens in draw(),
// and you draw to the backbuffer, NOT the
// front buffer.
EndPaint(hWnd, &ps);
break;
}
#pragma endregion PAINT
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
}
#pragma region Functions
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR cmdLine,
int showCmd)
{
ghAppInst = hInstance;
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = ghAppInst;
wc.hIcon = ::LoadIcon(0, IDI_APPLICATION);
wc.hCursor = ::LoadCursor(0, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW)+1;
wc.lpszMenuName = 0;
wc.lpszClassName = "Hexapod";
RegisterClass( &wc );
ghMainWnd = ::CreateWindow("Hexapod", "Hexapod FrontView",
WS_OVERLAPPEDWINDOW, 50, 50, 700, 850, 0, 0, ghAppInst, 0);
if(ghMainWnd == 0)
{
::MessageBox(0, "CreateWindow - Failed", 0, 0);
return false;
}
ShowWindow(ghMainWnd, showCmd);
UpdateWindow(ghMainWnd);
MSG msg;
/*ZeroMemory(&msg, sizeof(MSG));
while( GetMessage(&msg, 0, 0, 0) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}*/
while(1)
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if(msg.message == WM_QUIT)
{
PostQuitMessage(0);
break;
}
TranslateMessage(&msg); // translates 'character' keyboard messages
DispatchMessage(&msg); // send off to WndProc for processing
}
else
{
// could put more update code in here
// before drawing.
draw();
}
}
//return (int)msg.wParam;
return 0;
}
@@ -0,0 +1,18 @@
Build started 28-2-2013 10:06:26.
1>Project "C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Catmull-Rom app.vcxproj" on node 2 (Build target(s)).
1>ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /D WIN32 /D NDEBUG /D _WINDOWS /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc110.pdb" /Gd /TP /analyze- /errorReport:prompt DataLine.h InverseKinemetics.cpp Leg.cpp Main.cpp
DataLine.h
1>DataLine.h(4): fatal error C1083: Cannot open include file: 'D3DX9.h': No such file or directory
InverseKinemetics.cpp
1>c:\users\mangavalk\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\InverseKinemetics.h(5): fatal error C1083: Cannot open include file: 'D3DX9.h': No such file or directory
Leg.cpp
1>c:\users\mangavalk\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\InverseKinemetics.h(5): fatal error C1083: Cannot open include file: 'D3DX9.h': No such file or directory
Main.cpp
1>c:\users\mangavalk\dropbox\projecten\visual-studio\projecten\hexapod\hexapod app\InverseKinemetics.h(5): fatal error C1083: Cannot open include file: 'D3DX9.h': No such file or directory
Generating Code...
1>Done Building Project "C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Catmull-Rom app.vcxproj" (Build target(s)) -- FAILED.
Build FAILED.
Time Elapsed 00:00:03.58
@@ -0,0 +1,25 @@
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\RELEASE\MAIN.OBJ
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\RELEASE\LEG.OBJ
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\RELEASE\INVERSEKINEMETICS.OBJ
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\RELEASE\DATALINE.OBJ
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\RELEASE\VC100.PDB
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\RELEASE\HEXAPOD APP.EXE
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\HEXAPOD APP\RELEASE\HEXAPOD APP.EXE.INTERMEDIATE.MANIFEST
C:\USERS\GEBRUIKER\DROPBOX\PROJECTEN\VISUAL-STUDIO\PROJECTEN\HEXAPOD\RELEASE\HEXAPOD APP.PDB
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\DataLine.obj
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\InverseKinemetics.obj
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\Leg.obj
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\Main.obj
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\cl.command.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\CL.read.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\CL.write.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\link.command.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\link.read.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\link.write.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\mt.command.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\mt.read.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\mt.write.1.tlog
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\Hexapod app.exe.intermediate.manifest
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Hexapod app\Release\vc100.pdb
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Release\Hexapod app.pdb
C:\Users\Gebruiker\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\Release\Hexapod app.exe
@@ -0,0 +1,10 @@
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
@@ -0,0 +1,2 @@
#v4.0:v110:false
Release|Win32|C:\Users\MangaValk\Dropbox\Projecten\Visual-Studio\Projecten\Hexapod\|
@@ -0,0 +1,60 @@
//VectorStructure.h
#ifndef VectorStructure_H
#define VectorStructure_H
#pragma region VectorStruct
/*struct Vector3D
{
float X;
float Y;
float Z;
Vector3D()
{
X = 0;
Y = 0;
Z = 0;
}
Vector3D( float x, float y, float z )
{
X = x;
Y = y;
Z = z;
}
Vector3D operator* ( Vector3D rhs )
{
Vector3D temp;
temp.X = X * rhs.X;
temp.Y = Y * rhs.Y;
temp.Z = Z * rhs.Z;
return temp;
}
Vector3D operator+ ( Vector3D rhs )
{
Vector3D temp;
temp.X = X + rhs.X;
temp.Y = Y + rhs.Y;
temp.Z = Z + rhs.Z;
return temp;
}
};*/
struct Vector2D
{
float X;
float Y;
Vector2D( float x, float y )
{
X = x;
Y = y;
}
};
#pragma endregion Struct
#endif
Binary file not shown.
@@ -0,0 +1,20 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Catmull-Rom app", "Hexapod app\Catmull-Rom app.vcxproj", "{7B99C6A5-E418-4C29-AB89-66A3FEE46034}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7B99C6A5-E418-4C29-AB89-66A3FEE46034}.Debug|Win32.ActiveCfg = Debug|Win32
{7B99C6A5-E418-4C29-AB89-66A3FEE46034}.Debug|Win32.Build.0 = Debug|Win32
{7B99C6A5-E418-4C29-AB89-66A3FEE46034}.Release|Win32.ActiveCfg = Release|Win32
{7B99C6A5-E418-4C29-AB89-66A3FEE46034}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,5 @@
# Visualisation of the leg movement.
connected with:
- http://gitlab.mangavalk.com/mangavalk/Hexapod-Archief
- http://gitlab.mangavalk.com/mangavalk/Hexapod
Binary file not shown.
Binary file not shown.