goat3d
changeset 41:da3f335e0069
revamped the visual studio project files
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sun, 01 Dec 2013 01:31:53 +0200 |
parents | a5c5cec3cb88 |
children | 6c8a6ee24448 |
files | goat3d-static.vcproj goat3d-vs2012.sln goat3d.sln goat3d.vcproj install.bat src/chunk.h src/goat3d.cc src/goat3d.h |
diffstat | 8 files changed, 1296 insertions(+), 228 deletions(-) [+] |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/goat3d-static.vcproj Sun Dec 01 01:31:53 2013 +0200 1.3 @@ -0,0 +1,514 @@ 1.4 +<?xml version="1.0" encoding="Windows-1252"?> 1.5 +<VisualStudioProject 1.6 + ProjectType="Visual C++" 1.7 + Version="9.00" 1.8 + Name="goat3d-static" 1.9 + ProjectGUID="{F4EB866F-D33F-4121-BEC9-CB811A98D057}" 1.10 + RootNamespace="goat3d-static" 1.11 + Keyword="Win32Proj" 1.12 + TargetFrameworkVersion="196613" 1.13 + > 1.14 + <Platforms> 1.15 + <Platform 1.16 + Name="Win32" 1.17 + /> 1.18 + </Platforms> 1.19 + <ToolFiles> 1.20 + </ToolFiles> 1.21 + <Configurations> 1.22 + <Configuration 1.23 + Name="Debug|Win32" 1.24 + OutputDirectory="$(SolutionDir)$(ConfigurationName)" 1.25 + IntermediateDirectory="$(ConfigurationName)-static" 1.26 + ConfigurationType="4" 1.27 + CharacterSet="1" 1.28 + > 1.29 + <Tool 1.30 + Name="VCPreBuildEventTool" 1.31 + /> 1.32 + <Tool 1.33 + Name="VCCustomBuildTool" 1.34 + /> 1.35 + <Tool 1.36 + Name="VCXMLDataGeneratorTool" 1.37 + /> 1.38 + <Tool 1.39 + Name="VCWebServiceProxyGeneratorTool" 1.40 + /> 1.41 + <Tool 1.42 + Name="VCMIDLTool" 1.43 + /> 1.44 + <Tool 1.45 + Name="VCCLCompilerTool" 1.46 + Optimization="0" 1.47 + AdditionalIncludeDirectories=""$(SolutionDir)\libs\vmath";"$(SolutionDir)\libs\anim";"$(SolutionDir)\libs\openctm";"$(SolutionDir)\libs\tinyxml2";"$(SolutionDir)\libs\openctm\liblzma"" 1.48 + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;GOAT3D_EXPORTS;OPENCTM_STATIC" 1.49 + MinimalRebuild="true" 1.50 + BasicRuntimeChecks="3" 1.51 + RuntimeLibrary="3" 1.52 + UsePrecompiledHeader="0" 1.53 + WarningLevel="3" 1.54 + DebugInformationFormat="4" 1.55 + DisableSpecificWarnings="4244;4996;4305" 1.56 + /> 1.57 + <Tool 1.58 + Name="VCManagedResourceCompilerTool" 1.59 + /> 1.60 + <Tool 1.61 + Name="VCResourceCompilerTool" 1.62 + /> 1.63 + <Tool 1.64 + Name="VCPreLinkEventTool" 1.65 + /> 1.66 + <Tool 1.67 + Name="VCLibrarianTool" 1.68 + /> 1.69 + <Tool 1.70 + Name="VCALinkTool" 1.71 + /> 1.72 + <Tool 1.73 + Name="VCXDCMakeTool" 1.74 + /> 1.75 + <Tool 1.76 + Name="VCBscMakeTool" 1.77 + /> 1.78 + <Tool 1.79 + Name="VCFxCopTool" 1.80 + /> 1.81 + <Tool 1.82 + Name="VCPostBuildEventTool" 1.83 + /> 1.84 + </Configuration> 1.85 + <Configuration 1.86 + Name="Release|Win32" 1.87 + OutputDirectory="$(SolutionDir)$(ConfigurationName)" 1.88 + IntermediateDirectory="$(ConfigurationName)-static" 1.89 + ConfigurationType="4" 1.90 + CharacterSet="1" 1.91 + WholeProgramOptimization="1" 1.92 + > 1.93 + <Tool 1.94 + Name="VCPreBuildEventTool" 1.95 + /> 1.96 + <Tool 1.97 + Name="VCCustomBuildTool" 1.98 + /> 1.99 + <Tool 1.100 + Name="VCXMLDataGeneratorTool" 1.101 + /> 1.102 + <Tool 1.103 + Name="VCWebServiceProxyGeneratorTool" 1.104 + /> 1.105 + <Tool 1.106 + Name="VCMIDLTool" 1.107 + /> 1.108 + <Tool 1.109 + Name="VCCLCompilerTool" 1.110 + Optimization="2" 1.111 + EnableIntrinsicFunctions="true" 1.112 + AdditionalIncludeDirectories=""$(SolutionDir)\libs\vmath";"$(SolutionDir)\libs\anim";"$(SolutionDir)\libs\openctm";"$(SolutionDir)\libs\tinyxml2";"$(SolutionDir)\libs\openctm\liblzma"" 1.113 + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;GOAT3D_EXPORTS;OPENCTM_STATIC" 1.114 + RuntimeLibrary="2" 1.115 + EnableFunctionLevelLinking="true" 1.116 + UsePrecompiledHeader="0" 1.117 + WarningLevel="3" 1.118 + DebugInformationFormat="3" 1.119 + DisableSpecificWarnings="4244;4996;4305" 1.120 + /> 1.121 + <Tool 1.122 + Name="VCManagedResourceCompilerTool" 1.123 + /> 1.124 + <Tool 1.125 + Name="VCResourceCompilerTool" 1.126 + /> 1.127 + <Tool 1.128 + Name="VCPreLinkEventTool" 1.129 + /> 1.130 + <Tool 1.131 + Name="VCLibrarianTool" 1.132 + /> 1.133 + <Tool 1.134 + Name="VCALinkTool" 1.135 + /> 1.136 + <Tool 1.137 + Name="VCXDCMakeTool" 1.138 + /> 1.139 + <Tool 1.140 + Name="VCBscMakeTool" 1.141 + /> 1.142 + <Tool 1.143 + Name="VCFxCopTool" 1.144 + /> 1.145 + <Tool 1.146 + Name="VCPostBuildEventTool" 1.147 + CommandLine="mkdir usr\include
mkdir usr\lib
copy /Y src\goat3d.h usr\include\goat3d.h
copy /Y $(TargetPath) usr\lib\" 1.148 + /> 1.149 + </Configuration> 1.150 + </Configurations> 1.151 + <References> 1.152 + </References> 1.153 + <Files> 1.154 + <Filter 1.155 + Name="src" 1.156 + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" 1.157 + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" 1.158 + > 1.159 + <File 1.160 + RelativePath=".\src\camera.cc" 1.161 + > 1.162 + </File> 1.163 + <File 1.164 + RelativePath=".\src\camera.h" 1.165 + > 1.166 + </File> 1.167 + <File 1.168 + RelativePath=".\src\chunk.cc" 1.169 + > 1.170 + </File> 1.171 + <File 1.172 + RelativePath=".\src\chunk.h" 1.173 + > 1.174 + </File> 1.175 + <File 1.176 + RelativePath=".\src\goat3d.cc" 1.177 + > 1.178 + </File> 1.179 + <File 1.180 + RelativePath=".\src\goat3d_impl.h" 1.181 + > 1.182 + </File> 1.183 + <File 1.184 + RelativePath=".\src\goat3d_readxml.cc" 1.185 + > 1.186 + </File> 1.187 + <File 1.188 + RelativePath=".\src\goat3d_write.cc" 1.189 + > 1.190 + </File> 1.191 + <File 1.192 + RelativePath=".\src\goat3d_writexml.cc" 1.193 + > 1.194 + </File> 1.195 + <File 1.196 + RelativePath=".\src\light.cc" 1.197 + > 1.198 + </File> 1.199 + <File 1.200 + RelativePath=".\src\light.h" 1.201 + > 1.202 + </File> 1.203 + <File 1.204 + RelativePath=".\src\log.cc" 1.205 + > 1.206 + </File> 1.207 + <File 1.208 + RelativePath=".\src\log.h" 1.209 + > 1.210 + </File> 1.211 + <File 1.212 + RelativePath=".\src\material.cc" 1.213 + > 1.214 + </File> 1.215 + <File 1.216 + RelativePath=".\src\material.h" 1.217 + > 1.218 + </File> 1.219 + <File 1.220 + RelativePath=".\src\mesh.cc" 1.221 + > 1.222 + </File> 1.223 + <File 1.224 + RelativePath=".\src\mesh.h" 1.225 + > 1.226 + </File> 1.227 + <File 1.228 + RelativePath=".\src\node.cc" 1.229 + > 1.230 + </File> 1.231 + <File 1.232 + RelativePath=".\src\node.h" 1.233 + > 1.234 + </File> 1.235 + <File 1.236 + RelativePath=".\src\object.h" 1.237 + > 1.238 + </File> 1.239 + <File 1.240 + RelativePath=".\src\scene.cc" 1.241 + > 1.242 + </File> 1.243 + <File 1.244 + RelativePath=".\src\xform_node.cc" 1.245 + > 1.246 + </File> 1.247 + <File 1.248 + RelativePath=".\src\xform_node.h" 1.249 + > 1.250 + </File> 1.251 + </Filter> 1.252 + <Filter 1.253 + Name="include" 1.254 + Filter="h;hpp;hxx;hm;inl;inc;xsd" 1.255 + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" 1.256 + > 1.257 + <File 1.258 + RelativePath=".\src\goat3d.h" 1.259 + > 1.260 + </File> 1.261 + </Filter> 1.262 + <Filter 1.263 + Name="libs" 1.264 + > 1.265 + <Filter 1.266 + Name="tinyxml2" 1.267 + > 1.268 + <File 1.269 + RelativePath=".\libs\tinyxml2\tinyxml2.cpp" 1.270 + > 1.271 + </File> 1.272 + <File 1.273 + RelativePath=".\libs\tinyxml2\tinyxml2.h" 1.274 + > 1.275 + </File> 1.276 + </Filter> 1.277 + <Filter 1.278 + Name="openctm" 1.279 + > 1.280 + <File 1.281 + RelativePath=".\libs\openctm\compressMG1.c" 1.282 + > 1.283 + </File> 1.284 + <File 1.285 + RelativePath=".\libs\openctm\compressMG2.c" 1.286 + > 1.287 + </File> 1.288 + <File 1.289 + RelativePath=".\libs\openctm\compressRAW.c" 1.290 + > 1.291 + </File> 1.292 + <File 1.293 + RelativePath=".\libs\openctm\internal.h" 1.294 + > 1.295 + </File> 1.296 + <File 1.297 + RelativePath=".\libs\openctm\openctm.c" 1.298 + > 1.299 + </File> 1.300 + <File 1.301 + RelativePath=".\libs\openctm\openctm.h" 1.302 + > 1.303 + </File> 1.304 + <File 1.305 + RelativePath=".\libs\openctm\openctmpp.h" 1.306 + > 1.307 + </File> 1.308 + <File 1.309 + RelativePath=".\libs\openctm\stream.c" 1.310 + > 1.311 + </File> 1.312 + <Filter 1.313 + Name="liblzma" 1.314 + > 1.315 + <File 1.316 + RelativePath=".\libs\openctm\liblzma\Alloc.c" 1.317 + > 1.318 + </File> 1.319 + <File 1.320 + RelativePath=".\libs\openctm\liblzma\Alloc.h" 1.321 + > 1.322 + </File> 1.323 + <File 1.324 + RelativePath=".\libs\openctm\liblzma\LzFind.c" 1.325 + > 1.326 + </File> 1.327 + <File 1.328 + RelativePath=".\libs\openctm\liblzma\LzFind.h" 1.329 + > 1.330 + </File> 1.331 + <File 1.332 + RelativePath=".\libs\openctm\liblzma\LzHash.h" 1.333 + > 1.334 + </File> 1.335 + <File 1.336 + RelativePath=".\libs\openctm\liblzma\LzmaDec.c" 1.337 + > 1.338 + </File> 1.339 + <File 1.340 + RelativePath=".\libs\openctm\liblzma\LzmaDec.h" 1.341 + > 1.342 + </File> 1.343 + <File 1.344 + RelativePath=".\libs\openctm\liblzma\LzmaEnc.c" 1.345 + > 1.346 + </File> 1.347 + <File 1.348 + RelativePath=".\libs\openctm\liblzma\LzmaEnc.h" 1.349 + > 1.350 + </File> 1.351 + <File 1.352 + RelativePath=".\libs\openctm\liblzma\LzmaLib.c" 1.353 + > 1.354 + </File> 1.355 + <File 1.356 + RelativePath=".\libs\openctm\liblzma\LzmaLib.h" 1.357 + > 1.358 + </File> 1.359 + <File 1.360 + RelativePath=".\libs\openctm\liblzma\NameMangle.h" 1.361 + > 1.362 + </File> 1.363 + <File 1.364 + RelativePath=".\libs\openctm\liblzma\Types.h" 1.365 + > 1.366 + </File> 1.367 + </Filter> 1.368 + </Filter> 1.369 + <Filter 1.370 + Name="vmath" 1.371 + > 1.372 + <File 1.373 + RelativePath=".\libs\vmath\basis.cc" 1.374 + > 1.375 + </File> 1.376 + <File 1.377 + RelativePath=".\libs\vmath\basis.h" 1.378 + > 1.379 + </File> 1.380 + <File 1.381 + RelativePath=".\libs\vmath\basis_c.c" 1.382 + > 1.383 + </File> 1.384 + <File 1.385 + RelativePath=".\libs\vmath\geom.c" 1.386 + > 1.387 + </File> 1.388 + <File 1.389 + RelativePath=".\libs\vmath\geom.h" 1.390 + > 1.391 + </File> 1.392 + <File 1.393 + RelativePath=".\libs\vmath\matrix.cc" 1.394 + > 1.395 + </File> 1.396 + <File 1.397 + RelativePath=".\libs\vmath\matrix.h" 1.398 + > 1.399 + </File> 1.400 + <File 1.401 + RelativePath=".\libs\vmath\matrix.inl" 1.402 + > 1.403 + </File> 1.404 + <File 1.405 + RelativePath=".\libs\vmath\matrix_c.c" 1.406 + > 1.407 + </File> 1.408 + <File 1.409 + RelativePath=".\libs\vmath\quat.cc" 1.410 + > 1.411 + </File> 1.412 + <File 1.413 + RelativePath=".\libs\vmath\quat.h" 1.414 + > 1.415 + </File> 1.416 + <File 1.417 + RelativePath=".\libs\vmath\quat.inl" 1.418 + > 1.419 + </File> 1.420 + <File 1.421 + RelativePath=".\libs\vmath\quat_c.c" 1.422 + > 1.423 + </File> 1.424 + <File 1.425 + RelativePath=".\libs\vmath\ray.cc" 1.426 + > 1.427 + </File> 1.428 + <File 1.429 + RelativePath=".\libs\vmath\ray.h" 1.430 + > 1.431 + </File> 1.432 + <File 1.433 + RelativePath=".\libs\vmath\ray.inl" 1.434 + > 1.435 + </File> 1.436 + <File 1.437 + RelativePath=".\libs\vmath\ray_c.c" 1.438 + > 1.439 + </File> 1.440 + <File 1.441 + RelativePath=".\libs\vmath\sphvec.cc" 1.442 + > 1.443 + </File> 1.444 + <File 1.445 + RelativePath=".\libs\vmath\sphvec.h" 1.446 + > 1.447 + </File> 1.448 + <File 1.449 + RelativePath=".\libs\vmath\vector.cc" 1.450 + > 1.451 + </File> 1.452 + <File 1.453 + RelativePath=".\libs\vmath\vector.h" 1.454 + > 1.455 + </File> 1.456 + <File 1.457 + RelativePath=".\libs\vmath\vector.inl" 1.458 + > 1.459 + </File> 1.460 + <File 1.461 + RelativePath=".\libs\vmath\vmath.c" 1.462 + > 1.463 + </File> 1.464 + <File 1.465 + RelativePath=".\libs\vmath\vmath.h" 1.466 + > 1.467 + </File> 1.468 + <File 1.469 + RelativePath=".\libs\vmath\vmath.inl" 1.470 + > 1.471 + </File> 1.472 + <File 1.473 + RelativePath=".\libs\vmath\vmath_config.h" 1.474 + > 1.475 + </File> 1.476 + <File 1.477 + RelativePath=".\libs\vmath\vmath_types.h" 1.478 + > 1.479 + </File> 1.480 + </Filter> 1.481 + <Filter 1.482 + Name="anim" 1.483 + > 1.484 + <File 1.485 + RelativePath=".\libs\anim\anim.c" 1.486 + > 1.487 + </File> 1.488 + <File 1.489 + RelativePath=".\libs\anim\anim.h" 1.490 + > 1.491 + </File> 1.492 + <File 1.493 + RelativePath=".\libs\anim\config.h" 1.494 + > 1.495 + </File> 1.496 + <File 1.497 + RelativePath=".\libs\anim\dynarr.c" 1.498 + > 1.499 + </File> 1.500 + <File 1.501 + RelativePath=".\libs\anim\dynarr.h" 1.502 + > 1.503 + </File> 1.504 + <File 1.505 + RelativePath=".\libs\anim\track.c" 1.506 + > 1.507 + </File> 1.508 + <File 1.509 + RelativePath=".\libs\anim\track.h" 1.510 + > 1.511 + </File> 1.512 + </Filter> 1.513 + </Filter> 1.514 + </Files> 1.515 + <Globals> 1.516 + </Globals> 1.517 +</VisualStudioProject>
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/goat3d-vs2012.sln Sun Dec 01 01:31:53 2013 +0200 2.3 @@ -0,0 +1,39 @@ 2.4 + 2.5 +Microsoft Visual Studio Solution File, Format Version 12.00 2.6 +# Visual Studio 2012 2.7 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "goat3d", "goat3d.vcxproj", "{86BF319B-9222-4805-918D-DC1B9F77BCEF}" 2.8 +EndProject 2.9 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "maxgoat", "exporters\maxgoat\maxgoat.vcxproj", "{5BDDFFC1-7900-45D2-92F5-525361057554}" 2.10 + ProjectSection(ProjectDependencies) = postProject 2.11 + {86BF319B-9222-4805-918D-DC1B9F77BCEF} = {86BF319B-9222-4805-918D-DC1B9F77BCEF} 2.12 + EndProjectSection 2.13 +EndProject 2.14 +Global 2.15 + GlobalSection(SolutionConfigurationPlatforms) = preSolution 2.16 + Debug|Win32 = Debug|Win32 2.17 + Debug|x64 = Debug|x64 2.18 + Release|Win32 = Release|Win32 2.19 + Release|x64 = Release|x64 2.20 + EndGlobalSection 2.21 + GlobalSection(ProjectConfigurationPlatforms) = postSolution 2.22 + {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Debug|Win32.ActiveCfg = Debug|Win32 2.23 + {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Debug|Win32.Build.0 = Debug|Win32 2.24 + {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Debug|x64.ActiveCfg = Debug|x64 2.25 + {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Debug|x64.Build.0 = Debug|x64 2.26 + {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Release|Win32.ActiveCfg = Release|Win32 2.27 + {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Release|Win32.Build.0 = Release|Win32 2.28 + {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Release|x64.ActiveCfg = Release|x64 2.29 + {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Release|x64.Build.0 = Release|x64 2.30 + {5BDDFFC1-7900-45D2-92F5-525361057554}.Debug|Win32.ActiveCfg = Debug|Win32 2.31 + {5BDDFFC1-7900-45D2-92F5-525361057554}.Debug|Win32.Build.0 = Debug|Win32 2.32 + {5BDDFFC1-7900-45D2-92F5-525361057554}.Debug|x64.ActiveCfg = Debug|x64 2.33 + {5BDDFFC1-7900-45D2-92F5-525361057554}.Debug|x64.Build.0 = Debug|x64 2.34 + {5BDDFFC1-7900-45D2-92F5-525361057554}.Release|Win32.ActiveCfg = Release|Win32 2.35 + {5BDDFFC1-7900-45D2-92F5-525361057554}.Release|Win32.Build.0 = Release|Win32 2.36 + {5BDDFFC1-7900-45D2-92F5-525361057554}.Release|x64.ActiveCfg = Release|x64 2.37 + {5BDDFFC1-7900-45D2-92F5-525361057554}.Release|x64.Build.0 = Release|x64 2.38 + EndGlobalSection 2.39 + GlobalSection(SolutionProperties) = preSolution 2.40 + HideSolutionNode = FALSE 2.41 + EndGlobalSection 2.42 +EndGlobal
3.1 --- a/goat3d.sln Sun Oct 13 10:14:19 2013 +0300 3.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 3.3 @@ -1,39 +0,0 @@ 3.4 - 3.5 -Microsoft Visual Studio Solution File, Format Version 12.00 3.6 -# Visual Studio 2012 3.7 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "goat3d", "goat3d.vcxproj", "{86BF319B-9222-4805-918D-DC1B9F77BCEF}" 3.8 -EndProject 3.9 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "maxgoat", "exporters\maxgoat\maxgoat.vcxproj", "{5BDDFFC1-7900-45D2-92F5-525361057554}" 3.10 - ProjectSection(ProjectDependencies) = postProject 3.11 - {86BF319B-9222-4805-918D-DC1B9F77BCEF} = {86BF319B-9222-4805-918D-DC1B9F77BCEF} 3.12 - EndProjectSection 3.13 -EndProject 3.14 -Global 3.15 - GlobalSection(SolutionConfigurationPlatforms) = preSolution 3.16 - Debug|Win32 = Debug|Win32 3.17 - Debug|x64 = Debug|x64 3.18 - Release|Win32 = Release|Win32 3.19 - Release|x64 = Release|x64 3.20 - EndGlobalSection 3.21 - GlobalSection(ProjectConfigurationPlatforms) = postSolution 3.22 - {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Debug|Win32.ActiveCfg = Debug|Win32 3.23 - {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Debug|Win32.Build.0 = Debug|Win32 3.24 - {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Debug|x64.ActiveCfg = Debug|x64 3.25 - {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Debug|x64.Build.0 = Debug|x64 3.26 - {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Release|Win32.ActiveCfg = Release|Win32 3.27 - {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Release|Win32.Build.0 = Release|Win32 3.28 - {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Release|x64.ActiveCfg = Release|x64 3.29 - {86BF319B-9222-4805-918D-DC1B9F77BCEF}.Release|x64.Build.0 = Release|x64 3.30 - {5BDDFFC1-7900-45D2-92F5-525361057554}.Debug|Win32.ActiveCfg = Debug|Win32 3.31 - {5BDDFFC1-7900-45D2-92F5-525361057554}.Debug|Win32.Build.0 = Debug|Win32 3.32 - {5BDDFFC1-7900-45D2-92F5-525361057554}.Debug|x64.ActiveCfg = Debug|x64 3.33 - {5BDDFFC1-7900-45D2-92F5-525361057554}.Debug|x64.Build.0 = Debug|x64 3.34 - {5BDDFFC1-7900-45D2-92F5-525361057554}.Release|Win32.ActiveCfg = Release|Win32 3.35 - {5BDDFFC1-7900-45D2-92F5-525361057554}.Release|Win32.Build.0 = Release|Win32 3.36 - {5BDDFFC1-7900-45D2-92F5-525361057554}.Release|x64.ActiveCfg = Release|x64 3.37 - {5BDDFFC1-7900-45D2-92F5-525361057554}.Release|x64.Build.0 = Release|x64 3.38 - EndGlobalSection 3.39 - GlobalSection(SolutionProperties) = preSolution 3.40 - HideSolutionNode = FALSE 3.41 - EndGlobalSection 3.42 -EndGlobal
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/goat3d.vcproj Sun Dec 01 01:31:53 2013 +0200 4.3 @@ -0,0 +1,537 @@ 4.4 +<?xml version="1.0" encoding="Windows-1252"?> 4.5 +<VisualStudioProject 4.6 + ProjectType="Visual C++" 4.7 + Version="9.00" 4.8 + Name="goat3d" 4.9 + ProjectGUID="{C1EEE224-5155-4B8D-91B6-138D4B27F1F5}" 4.10 + RootNamespace="goat3d" 4.11 + Keyword="Win32Proj" 4.12 + TargetFrameworkVersion="196613" 4.13 + > 4.14 + <Platforms> 4.15 + <Platform 4.16 + Name="Win32" 4.17 + /> 4.18 + </Platforms> 4.19 + <ToolFiles> 4.20 + </ToolFiles> 4.21 + <Configurations> 4.22 + <Configuration 4.23 + Name="Debug|Win32" 4.24 + OutputDirectory="$(SolutionDir)$(ConfigurationName)" 4.25 + IntermediateDirectory="$(ConfigurationName)" 4.26 + ConfigurationType="2" 4.27 + CharacterSet="1" 4.28 + > 4.29 + <Tool 4.30 + Name="VCPreBuildEventTool" 4.31 + /> 4.32 + <Tool 4.33 + Name="VCCustomBuildTool" 4.34 + /> 4.35 + <Tool 4.36 + Name="VCXMLDataGeneratorTool" 4.37 + /> 4.38 + <Tool 4.39 + Name="VCWebServiceProxyGeneratorTool" 4.40 + /> 4.41 + <Tool 4.42 + Name="VCMIDLTool" 4.43 + /> 4.44 + <Tool 4.45 + Name="VCCLCompilerTool" 4.46 + Optimization="0" 4.47 + AdditionalIncludeDirectories=""$(SolutionDir)\libs\vmath";"$(SolutionDir)\libs\anim";"$(SolutionDir)\libs\openctm";"$(SolutionDir)\libs\tinyxml2";"$(SolutionDir)\libs\openctm\liblzma"" 4.48 + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;GOAT3D_EXPORTS;OPENCTM_STATIC" 4.49 + MinimalRebuild="true" 4.50 + BasicRuntimeChecks="3" 4.51 + RuntimeLibrary="3" 4.52 + UsePrecompiledHeader="0" 4.53 + WarningLevel="3" 4.54 + DebugInformationFormat="4" 4.55 + DisableSpecificWarnings="4244;4996;4305" 4.56 + /> 4.57 + <Tool 4.58 + Name="VCManagedResourceCompilerTool" 4.59 + /> 4.60 + <Tool 4.61 + Name="VCResourceCompilerTool" 4.62 + /> 4.63 + <Tool 4.64 + Name="VCPreLinkEventTool" 4.65 + /> 4.66 + <Tool 4.67 + Name="VCLinkerTool" 4.68 + LinkIncremental="2" 4.69 + GenerateDebugInformation="true" 4.70 + SubSystem="2" 4.71 + TargetMachine="1" 4.72 + /> 4.73 + <Tool 4.74 + Name="VCALinkTool" 4.75 + /> 4.76 + <Tool 4.77 + Name="VCManifestTool" 4.78 + /> 4.79 + <Tool 4.80 + Name="VCXDCMakeTool" 4.81 + /> 4.82 + <Tool 4.83 + Name="VCBscMakeTool" 4.84 + /> 4.85 + <Tool 4.86 + Name="VCFxCopTool" 4.87 + /> 4.88 + <Tool 4.89 + Name="VCAppVerifierTool" 4.90 + /> 4.91 + <Tool 4.92 + Name="VCPostBuildEventTool" 4.93 + CommandLine="" 4.94 + /> 4.95 + </Configuration> 4.96 + <Configuration 4.97 + Name="Release|Win32" 4.98 + OutputDirectory="$(SolutionDir)$(ConfigurationName)" 4.99 + IntermediateDirectory="$(ConfigurationName)" 4.100 + ConfigurationType="2" 4.101 + CharacterSet="1" 4.102 + WholeProgramOptimization="1" 4.103 + > 4.104 + <Tool 4.105 + Name="VCPreBuildEventTool" 4.106 + /> 4.107 + <Tool 4.108 + Name="VCCustomBuildTool" 4.109 + /> 4.110 + <Tool 4.111 + Name="VCXMLDataGeneratorTool" 4.112 + /> 4.113 + <Tool 4.114 + Name="VCWebServiceProxyGeneratorTool" 4.115 + /> 4.116 + <Tool 4.117 + Name="VCMIDLTool" 4.118 + /> 4.119 + <Tool 4.120 + Name="VCCLCompilerTool" 4.121 + Optimization="2" 4.122 + EnableIntrinsicFunctions="true" 4.123 + AdditionalIncludeDirectories=""$(SolutionDir)\libs\vmath";"$(SolutionDir)\libs\anim";"$(SolutionDir)\libs\openctm";"$(SolutionDir)\libs\tinyxml2";"$(SolutionDir)\libs\openctm\liblzma"" 4.124 + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;GOAT3D_EXPORTS;OPENCTM_STATIC" 4.125 + RuntimeLibrary="2" 4.126 + EnableFunctionLevelLinking="true" 4.127 + UsePrecompiledHeader="0" 4.128 + WarningLevel="3" 4.129 + DebugInformationFormat="3" 4.130 + DisableSpecificWarnings="4244;4996;4305" 4.131 + /> 4.132 + <Tool 4.133 + Name="VCManagedResourceCompilerTool" 4.134 + /> 4.135 + <Tool 4.136 + Name="VCResourceCompilerTool" 4.137 + /> 4.138 + <Tool 4.139 + Name="VCPreLinkEventTool" 4.140 + /> 4.141 + <Tool 4.142 + Name="VCLinkerTool" 4.143 + LinkIncremental="1" 4.144 + GenerateDebugInformation="true" 4.145 + SubSystem="2" 4.146 + OptimizeReferences="2" 4.147 + EnableCOMDATFolding="2" 4.148 + TargetMachine="1" 4.149 + /> 4.150 + <Tool 4.151 + Name="VCALinkTool" 4.152 + /> 4.153 + <Tool 4.154 + Name="VCManifestTool" 4.155 + /> 4.156 + <Tool 4.157 + Name="VCXDCMakeTool" 4.158 + /> 4.159 + <Tool 4.160 + Name="VCBscMakeTool" 4.161 + /> 4.162 + <Tool 4.163 + Name="VCFxCopTool" 4.164 + /> 4.165 + <Tool 4.166 + Name="VCAppVerifierTool" 4.167 + /> 4.168 + <Tool 4.169 + Name="VCPostBuildEventTool" 4.170 + CommandLine="mkdir usr\include
mkdir usr\lib
mkdir usr\bin
copy /Y src\goat3d.h usr\include\goat3d.h
copy /Y $(TargetDir)$(TargetName).lib usr\lib\
copy /Y $(TargetDir)$(TargetName).dll usr\bin\" 4.171 + /> 4.172 + </Configuration> 4.173 + </Configurations> 4.174 + <References> 4.175 + </References> 4.176 + <Files> 4.177 + <Filter 4.178 + Name="src" 4.179 + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" 4.180 + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" 4.181 + > 4.182 + <File 4.183 + RelativePath=".\src\camera.cc" 4.184 + > 4.185 + </File> 4.186 + <File 4.187 + RelativePath=".\src\camera.h" 4.188 + > 4.189 + </File> 4.190 + <File 4.191 + RelativePath=".\src\chunk.cc" 4.192 + > 4.193 + </File> 4.194 + <File 4.195 + RelativePath=".\src\chunk.h" 4.196 + > 4.197 + </File> 4.198 + <File 4.199 + RelativePath=".\src\goat3d.cc" 4.200 + > 4.201 + </File> 4.202 + <File 4.203 + RelativePath=".\src\goat3d_impl.h" 4.204 + > 4.205 + </File> 4.206 + <File 4.207 + RelativePath=".\src\goat3d_readxml.cc" 4.208 + > 4.209 + </File> 4.210 + <File 4.211 + RelativePath=".\src\goat3d_write.cc" 4.212 + > 4.213 + </File> 4.214 + <File 4.215 + RelativePath=".\src\goat3d_writexml.cc" 4.216 + > 4.217 + </File> 4.218 + <File 4.219 + RelativePath=".\src\light.cc" 4.220 + > 4.221 + </File> 4.222 + <File 4.223 + RelativePath=".\src\light.h" 4.224 + > 4.225 + </File> 4.226 + <File 4.227 + RelativePath=".\src\log.cc" 4.228 + > 4.229 + </File> 4.230 + <File 4.231 + RelativePath=".\src\log.h" 4.232 + > 4.233 + </File> 4.234 + <File 4.235 + RelativePath=".\src\material.cc" 4.236 + > 4.237 + </File> 4.238 + <File 4.239 + RelativePath=".\src\material.h" 4.240 + > 4.241 + </File> 4.242 + <File 4.243 + RelativePath=".\src\mesh.cc" 4.244 + > 4.245 + </File> 4.246 + <File 4.247 + RelativePath=".\src\mesh.h" 4.248 + > 4.249 + </File> 4.250 + <File 4.251 + RelativePath=".\src\node.cc" 4.252 + > 4.253 + </File> 4.254 + <File 4.255 + RelativePath=".\src\node.h" 4.256 + > 4.257 + </File> 4.258 + <File 4.259 + RelativePath=".\src\object.h" 4.260 + > 4.261 + </File> 4.262 + <File 4.263 + RelativePath=".\src\scene.cc" 4.264 + > 4.265 + </File> 4.266 + <File 4.267 + RelativePath=".\src\xform_node.cc" 4.268 + > 4.269 + </File> 4.270 + <File 4.271 + RelativePath=".\src\xform_node.h" 4.272 + > 4.273 + </File> 4.274 + </Filter> 4.275 + <Filter 4.276 + Name="include" 4.277 + Filter="h;hpp;hxx;hm;inl;inc;xsd" 4.278 + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" 4.279 + > 4.280 + <File 4.281 + RelativePath=".\src\goat3d.h" 4.282 + > 4.283 + </File> 4.284 + </Filter> 4.285 + <Filter 4.286 + Name="libs" 4.287 + > 4.288 + <Filter 4.289 + Name="tinyxml2" 4.290 + > 4.291 + <File 4.292 + RelativePath=".\libs\tinyxml2\tinyxml2.cpp" 4.293 + > 4.294 + </File> 4.295 + <File 4.296 + RelativePath=".\libs\tinyxml2\tinyxml2.h" 4.297 + > 4.298 + </File> 4.299 + </Filter> 4.300 + <Filter 4.301 + Name="openctm" 4.302 + > 4.303 + <File 4.304 + RelativePath=".\libs\openctm\compressMG1.c" 4.305 + > 4.306 + </File> 4.307 + <File 4.308 + RelativePath=".\libs\openctm\compressMG2.c" 4.309 + > 4.310 + </File> 4.311 + <File 4.312 + RelativePath=".\libs\openctm\compressRAW.c" 4.313 + > 4.314 + </File> 4.315 + <File 4.316 + RelativePath=".\libs\openctm\internal.h" 4.317 + > 4.318 + </File> 4.319 + <File 4.320 + RelativePath=".\libs\openctm\openctm.c" 4.321 + > 4.322 + </File> 4.323 + <File 4.324 + RelativePath=".\libs\openctm\openctm.h" 4.325 + > 4.326 + </File> 4.327 + <File 4.328 + RelativePath=".\libs\openctm\openctmpp.h" 4.329 + > 4.330 + </File> 4.331 + <File 4.332 + RelativePath=".\libs\openctm\stream.c" 4.333 + > 4.334 + </File> 4.335 + <Filter 4.336 + Name="liblzma" 4.337 + > 4.338 + <File 4.339 + RelativePath=".\libs\openctm\liblzma\Alloc.c" 4.340 + > 4.341 + </File> 4.342 + <File 4.343 + RelativePath=".\libs\openctm\liblzma\Alloc.h" 4.344 + > 4.345 + </File> 4.346 + <File 4.347 + RelativePath=".\libs\openctm\liblzma\LzFind.c" 4.348 + > 4.349 + </File> 4.350 + <File 4.351 + RelativePath=".\libs\openctm\liblzma\LzFind.h" 4.352 + > 4.353 + </File> 4.354 + <File 4.355 + RelativePath=".\libs\openctm\liblzma\LzHash.h" 4.356 + > 4.357 + </File> 4.358 + <File 4.359 + RelativePath=".\libs\openctm\liblzma\LzmaDec.c" 4.360 + > 4.361 + </File> 4.362 + <File 4.363 + RelativePath=".\libs\openctm\liblzma\LzmaDec.h" 4.364 + > 4.365 + </File> 4.366 + <File 4.367 + RelativePath=".\libs\openctm\liblzma\LzmaEnc.c" 4.368 + > 4.369 + </File> 4.370 + <File 4.371 + RelativePath=".\libs\openctm\liblzma\LzmaEnc.h" 4.372 + > 4.373 + </File> 4.374 + <File 4.375 + RelativePath=".\libs\openctm\liblzma\LzmaLib.c" 4.376 + > 4.377 + </File> 4.378 + <File 4.379 + RelativePath=".\libs\openctm\liblzma\LzmaLib.h" 4.380 + > 4.381 + </File> 4.382 + <File 4.383 + RelativePath=".\libs\openctm\liblzma\NameMangle.h" 4.384 + > 4.385 + </File> 4.386 + <File 4.387 + RelativePath=".\libs\openctm\liblzma\Types.h" 4.388 + > 4.389 + </File> 4.390 + </Filter> 4.391 + </Filter> 4.392 + <Filter 4.393 + Name="vmath" 4.394 + > 4.395 + <File 4.396 + RelativePath=".\libs\vmath\basis.cc" 4.397 + > 4.398 + </File> 4.399 + <File 4.400 + RelativePath=".\libs\vmath\basis.h" 4.401 + > 4.402 + </File> 4.403 + <File 4.404 + RelativePath=".\libs\vmath\basis_c.c" 4.405 + > 4.406 + </File> 4.407 + <File 4.408 + RelativePath=".\libs\vmath\geom.c" 4.409 + > 4.410 + </File> 4.411 + <File 4.412 + RelativePath=".\libs\vmath\geom.h" 4.413 + > 4.414 + </File> 4.415 + <File 4.416 + RelativePath=".\libs\vmath\matrix.cc" 4.417 + > 4.418 + </File> 4.419 + <File 4.420 + RelativePath=".\libs\vmath\matrix.h" 4.421 + > 4.422 + </File> 4.423 + <File 4.424 + RelativePath=".\libs\vmath\matrix.inl" 4.425 + > 4.426 + </File> 4.427 + <File 4.428 + RelativePath=".\libs\vmath\matrix_c.c" 4.429 + > 4.430 + </File> 4.431 + <File 4.432 + RelativePath=".\libs\vmath\quat.cc" 4.433 + > 4.434 + </File> 4.435 + <File 4.436 + RelativePath=".\libs\vmath\quat.h" 4.437 + > 4.438 + </File> 4.439 + <File 4.440 + RelativePath=".\libs\vmath\quat.inl" 4.441 + > 4.442 + </File> 4.443 + <File 4.444 + RelativePath=".\libs\vmath\quat_c.c" 4.445 + > 4.446 + </File> 4.447 + <File 4.448 + RelativePath=".\libs\vmath\ray.cc" 4.449 + > 4.450 + </File> 4.451 + <File 4.452 + RelativePath=".\libs\vmath\ray.h" 4.453 + > 4.454 + </File> 4.455 + <File 4.456 + RelativePath=".\libs\vmath\ray.inl" 4.457 + > 4.458 + </File> 4.459 + <File 4.460 + RelativePath=".\libs\vmath\ray_c.c" 4.461 + > 4.462 + </File> 4.463 + <File 4.464 + RelativePath=".\libs\vmath\sphvec.cc" 4.465 + > 4.466 + </File> 4.467 + <File 4.468 + RelativePath=".\libs\vmath\sphvec.h" 4.469 + > 4.470 + </File> 4.471 + <File 4.472 + RelativePath=".\libs\vmath\vector.cc" 4.473 + > 4.474 + </File> 4.475 + <File 4.476 + RelativePath=".\libs\vmath\vector.h" 4.477 + > 4.478 + </File> 4.479 + <File 4.480 + RelativePath=".\libs\vmath\vector.inl" 4.481 + > 4.482 + </File> 4.483 + <File 4.484 + RelativePath=".\libs\vmath\vmath.c" 4.485 + > 4.486 + </File> 4.487 + <File 4.488 + RelativePath=".\libs\vmath\vmath.h" 4.489 + > 4.490 + </File> 4.491 + <File 4.492 + RelativePath=".\libs\vmath\vmath.inl" 4.493 + > 4.494 + </File> 4.495 + <File 4.496 + RelativePath=".\libs\vmath\vmath_config.h" 4.497 + > 4.498 + </File> 4.499 + <File 4.500 + RelativePath=".\libs\vmath\vmath_types.h" 4.501 + > 4.502 + </File> 4.503 + </Filter> 4.504 + <Filter 4.505 + Name="anim" 4.506 + > 4.507 + <File 4.508 + RelativePath=".\libs\anim\anim.c" 4.509 + > 4.510 + </File> 4.511 + <File 4.512 + RelativePath=".\libs\anim\anim.h" 4.513 + > 4.514 + </File> 4.515 + <File 4.516 + RelativePath=".\libs\anim\config.h" 4.517 + > 4.518 + </File> 4.519 + <File 4.520 + RelativePath=".\libs\anim\dynarr.c" 4.521 + > 4.522 + </File> 4.523 + <File 4.524 + RelativePath=".\libs\anim\dynarr.h" 4.525 + > 4.526 + </File> 4.527 + <File 4.528 + RelativePath=".\libs\anim\track.c" 4.529 + > 4.530 + </File> 4.531 + <File 4.532 + RelativePath=".\libs\anim\track.h" 4.533 + > 4.534 + </File> 4.535 + </Filter> 4.536 + </Filter> 4.537 + </Files> 4.538 + <Globals> 4.539 + </Globals> 4.540 +</VisualStudioProject>
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/install.bat Sun Dec 01 01:31:53 2013 +0200 5.3 @@ -0,0 +1,7 @@ 5.4 +mkdir c:\usr\include\ 5.5 +copy /Y usr\include\* c:\usr\include\ 5.6 +mkdir c:\usr\lib 5.7 +copy /Y usr\lib\* c:\usr\lib\ 5.8 +mkdir c:\usr\bin 5.9 +copy /Y usr\bin\* c:\usr\bin\ 5.10 +pause
6.1 --- a/src/chunk.h Sun Oct 13 10:14:19 2013 +0300 6.2 +++ b/src/chunk.h Sun Dec 01 01:31:53 2013 +0200 6.3 @@ -1,7 +1,11 @@ 6.4 #ifndef CHUNK_H_ 6.5 #define CHUNK_H_ 6.6 6.7 +#ifndef _MSC_VER 6.8 #include <stdint.h> 6.9 +#else 6.10 +typedef unsigned __int32 uint32_t; 6.11 +#endif 6.12 6.13 enum { 6.14 CNK_INVALID, // this shouldn't appear in files
7.1 --- a/src/goat3d.cc Sun Oct 13 10:14:19 2013 +0300 7.2 +++ b/src/goat3d.cc Sun Dec 01 01:31:53 2013 +0200 7.3 @@ -31,7 +31,7 @@ 7.4 7.5 extern "C" { 7.6 7.7 -struct goat3d *goat3d_create(void) 7.8 +GOAT3DAPI struct goat3d *goat3d_create(void) 7.9 { 7.10 goat3d *goat = new goat3d; 7.11 goat->flags = 0; 7.12 @@ -42,14 +42,14 @@ 7.13 return goat; 7.14 } 7.15 7.16 -void goat3d_free(struct goat3d *g) 7.17 +GOAT3DAPI void goat3d_free(struct goat3d *g) 7.18 { 7.19 delete g->search_path; 7.20 delete g->scn; 7.21 delete g; 7.22 } 7.23 7.24 -void goat3d_setopt(struct goat3d *g, enum goat3d_option opt, int val) 7.25 +GOAT3DAPI void goat3d_setopt(struct goat3d *g, enum goat3d_option opt, int val) 7.26 { 7.27 if(val) { 7.28 g->flags |= (1 << (int)opt); 7.29 @@ -58,12 +58,12 @@ 7.30 } 7.31 } 7.32 7.33 -int goat3d_getopt(const struct goat3d *g, enum goat3d_option opt) 7.34 +GOAT3DAPI int goat3d_getopt(const struct goat3d *g, enum goat3d_option opt) 7.35 { 7.36 return (g->flags >> (int)opt) & 1; 7.37 } 7.38 7.39 -int goat3d_load(struct goat3d *g, const char *fname) 7.40 +GOAT3DAPI int goat3d_load(struct goat3d *g, const char *fname) 7.41 { 7.42 FILE *fp = fopen(fname, "rb"); 7.43 if(!fp) { 7.44 @@ -94,7 +94,7 @@ 7.45 return res; 7.46 } 7.47 7.48 -int goat3d_save(const struct goat3d *g, const char *fname) 7.49 +GOAT3DAPI int goat3d_save(const struct goat3d *g, const char *fname) 7.50 { 7.51 FILE *fp = fopen(fname, "wb"); 7.52 if(!fp) { 7.53 @@ -107,7 +107,7 @@ 7.54 return res; 7.55 } 7.56 7.57 -int goat3d_load_file(struct goat3d *g, FILE *fp) 7.58 +GOAT3DAPI int goat3d_load_file(struct goat3d *g, FILE *fp) 7.59 { 7.60 goat3d_io io; 7.61 io.cls = fp; 7.62 @@ -118,7 +118,7 @@ 7.63 return goat3d_load_io(g, &io); 7.64 } 7.65 7.66 -int goat3d_save_file(const struct goat3d *g, FILE *fp) 7.67 +GOAT3DAPI int goat3d_save_file(const struct goat3d *g, FILE *fp) 7.68 { 7.69 goat3d_io io; 7.70 io.cls = fp; 7.71 @@ -129,7 +129,7 @@ 7.72 return goat3d_save_io(g, &io); 7.73 } 7.74 7.75 -int goat3d_load_io(struct goat3d *g, struct goat3d_io *io) 7.76 +GOAT3DAPI int goat3d_load_io(struct goat3d *g, struct goat3d_io *io) 7.77 { 7.78 if(!g->scn->load(io)) { 7.79 if(g->scn->loadxml(io)) { 7.80 @@ -139,7 +139,7 @@ 7.81 return 0; 7.82 } 7.83 7.84 -int goat3d_save_io(const struct goat3d *g, struct goat3d_io *io) 7.85 +GOAT3DAPI int goat3d_save_io(const struct goat3d *g, struct goat3d_io *io) 7.86 { 7.87 if(goat3d_getopt(g, GOAT3D_OPT_SAVEXML)) { 7.88 return g->scn->savexml(io) ? 0 : -1; 7.89 @@ -147,156 +147,156 @@ 7.90 return g->scn->save(io) ? 0 : -1; 7.91 } 7.92 7.93 -int goat3d_set_name(struct goat3d *g, const char *name) 7.94 +GOAT3DAPI int goat3d_set_name(struct goat3d *g, const char *name) 7.95 { 7.96 g->scn->set_name(name); 7.97 return 0; 7.98 } 7.99 7.100 -const char *goat3d_get_name(const struct goat3d *g) 7.101 +GOAT3DAPI const char *goat3d_get_name(const struct goat3d *g) 7.102 { 7.103 return g->scn->get_name(); 7.104 } 7.105 7.106 -void goat3d_set_ambient(struct goat3d *g, const float *amb) 7.107 +GOAT3DAPI void goat3d_set_ambient(struct goat3d *g, const float *amb) 7.108 { 7.109 g->scn->set_ambient(Vector3(amb[0], amb[1], amb[2])); 7.110 } 7.111 7.112 -void goat3d_set_ambient3f(struct goat3d *g, float ar, float ag, float ab) 7.113 +GOAT3DAPI void goat3d_set_ambient3f(struct goat3d *g, float ar, float ag, float ab) 7.114 { 7.115 g->scn->set_ambient(Vector3(ar, ag, ab)); 7.116 } 7.117 7.118 -const float *goat3d_get_ambient(const struct goat3d *g) 7.119 +GOAT3DAPI const float *goat3d_get_ambient(const struct goat3d *g) 7.120 { 7.121 return &g->scn->get_ambient().x; 7.122 } 7.123 7.124 // ---- materials ---- 7.125 -void goat3d_add_mtl(struct goat3d *g, struct goat3d_material *mtl) 7.126 +GOAT3DAPI void goat3d_add_mtl(struct goat3d *g, struct goat3d_material *mtl) 7.127 { 7.128 g->scn->add_material(mtl); 7.129 } 7.130 7.131 -struct goat3d_material *goat3d_create_mtl(void) 7.132 +GOAT3DAPI struct goat3d_material *goat3d_create_mtl(void) 7.133 { 7.134 return new goat3d_material; 7.135 } 7.136 7.137 -void goat3d_destroy_mtl(struct goat3d_material *mtl) 7.138 +GOAT3DAPI void goat3d_destroy_mtl(struct goat3d_material *mtl) 7.139 { 7.140 delete mtl; 7.141 } 7.142 7.143 -void goat3d_set_mtl_name(struct goat3d_material *mtl, const char *name) 7.144 +GOAT3DAPI void goat3d_set_mtl_name(struct goat3d_material *mtl, const char *name) 7.145 { 7.146 mtl->name = std::string(name); 7.147 } 7.148 7.149 -const char *goat3d_get_mtl_name(const struct goat3d_material *mtl) 7.150 +GOAT3DAPI const char *goat3d_get_mtl_name(const struct goat3d_material *mtl) 7.151 { 7.152 return mtl->name.c_str(); 7.153 } 7.154 7.155 -void goat3d_set_mtl_attrib(struct goat3d_material *mtl, const char *attrib, const float *val) 7.156 +GOAT3DAPI void goat3d_set_mtl_attrib(struct goat3d_material *mtl, const char *attrib, const float *val) 7.157 { 7.158 (*mtl)[attrib].value = Vector4(val[0], val[1], val[2], val[3]); 7.159 } 7.160 7.161 -void goat3d_set_mtl_attrib1f(struct goat3d_material *mtl, const char *attrib, float val) 7.162 +GOAT3DAPI void goat3d_set_mtl_attrib1f(struct goat3d_material *mtl, const char *attrib, float val) 7.163 { 7.164 goat3d_set_mtl_attrib4f(mtl, attrib, val, 0, 0, 1); 7.165 } 7.166 7.167 -void goat3d_set_mtl_attrib3f(struct goat3d_material *mtl, const char *attrib, float r, float g, float b) 7.168 +GOAT3DAPI void goat3d_set_mtl_attrib3f(struct goat3d_material *mtl, const char *attrib, float r, float g, float b) 7.169 { 7.170 goat3d_set_mtl_attrib4f(mtl, attrib, r, g, b, 1); 7.171 } 7.172 7.173 -void goat3d_set_mtl_attrib4f(struct goat3d_material *mtl, const char *attrib, float r, float g, float b, float a) 7.174 +GOAT3DAPI void goat3d_set_mtl_attrib4f(struct goat3d_material *mtl, const char *attrib, float r, float g, float b, float a) 7.175 { 7.176 (*mtl)[attrib].value = Vector4(r, g, b, a); 7.177 } 7.178 7.179 -const float *goat3d_get_mtl_attrib(struct goat3d_material *mtl, const char *attrib) 7.180 +GOAT3DAPI const float *goat3d_get_mtl_attrib(struct goat3d_material *mtl, const char *attrib) 7.181 { 7.182 return &(*mtl)[attrib].value.x; 7.183 } 7.184 7.185 -void goat3d_set_mtl_attrib_map(struct goat3d_material *mtl, const char *attrib, const char *mapname) 7.186 +GOAT3DAPI void goat3d_set_mtl_attrib_map(struct goat3d_material *mtl, const char *attrib, const char *mapname) 7.187 { 7.188 (*mtl)[attrib].map = goat3d_clean_filename(mapname); 7.189 } 7.190 7.191 -const char *goat3d_get_mtl_attrib_map(struct goat3d_material *mtl, const char *attrib) 7.192 +GOAT3DAPI const char *goat3d_get_mtl_attrib_map(struct goat3d_material *mtl, const char *attrib) 7.193 { 7.194 return (*mtl)[attrib].map.c_str(); 7.195 } 7.196 7.197 // ---- meshes ---- 7.198 -void goat3d_add_mesh(struct goat3d *g, struct goat3d_mesh *mesh) 7.199 +GOAT3DAPI void goat3d_add_mesh(struct goat3d *g, struct goat3d_mesh *mesh) 7.200 { 7.201 g->scn->add_mesh(mesh); 7.202 } 7.203 7.204 -int goat3d_get_mesh_count(struct goat3d *g) 7.205 +GOAT3DAPI int goat3d_get_mesh_count(struct goat3d *g) 7.206 { 7.207 return g->scn->get_mesh_count(); 7.208 } 7.209 7.210 -struct goat3d_mesh *goat3d_get_mesh(struct goat3d *g, int idx) 7.211 +GOAT3DAPI struct goat3d_mesh *goat3d_get_mesh(struct goat3d *g, int idx) 7.212 { 7.213 return (goat3d_mesh*)g->scn->get_mesh(idx); 7.214 } 7.215 7.216 -struct goat3d_mesh *goat3d_get_mesh_by_name(struct goat3d *g, const char *name) 7.217 +GOAT3DAPI struct goat3d_mesh *goat3d_get_mesh_by_name(struct goat3d *g, const char *name) 7.218 { 7.219 return (goat3d_mesh*)g->scn->get_mesh(name); 7.220 } 7.221 7.222 -struct goat3d_mesh *goat3d_create_mesh(void) 7.223 +GOAT3DAPI struct goat3d_mesh *goat3d_create_mesh(void) 7.224 { 7.225 return new goat3d_mesh; 7.226 } 7.227 7.228 -void goat3d_destroy_mesh(struct goat3d_mesh *mesh) 7.229 +GOAT3DAPI void goat3d_destroy_mesh(struct goat3d_mesh *mesh) 7.230 { 7.231 delete mesh; 7.232 } 7.233 7.234 -void goat3d_set_mesh_name(struct goat3d_mesh *mesh, const char *name) 7.235 +GOAT3DAPI void goat3d_set_mesh_name(struct goat3d_mesh *mesh, const char *name) 7.236 { 7.237 mesh->name = std::string(name); 7.238 } 7.239 7.240 -const char *goat3d_get_mesh_name(const struct goat3d_mesh *mesh) 7.241 +GOAT3DAPI const char *goat3d_get_mesh_name(const struct goat3d_mesh *mesh) 7.242 { 7.243 return mesh->name.c_str(); 7.244 } 7.245 7.246 -void goat3d_set_mesh_mtl(struct goat3d_mesh *mesh, struct goat3d_material *mtl) 7.247 +GOAT3DAPI void goat3d_set_mesh_mtl(struct goat3d_mesh *mesh, struct goat3d_material *mtl) 7.248 { 7.249 mesh->material = mtl; 7.250 } 7.251 7.252 -struct goat3d_material *goat3d_get_mesh_mtl(struct goat3d_mesh *mesh) 7.253 +GOAT3DAPI struct goat3d_material *goat3d_get_mesh_mtl(struct goat3d_mesh *mesh) 7.254 { 7.255 return (goat3d_material*)mesh->material; 7.256 } 7.257 7.258 -int goat3d_get_mesh_attrib_count(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib) 7.259 +GOAT3DAPI int goat3d_get_mesh_attrib_count(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib) 7.260 { 7.261 return (int)mesh->vertices.size(); 7.262 } 7.263 7.264 -int goat3d_get_mesh_face_count(struct goat3d_mesh *mesh) 7.265 +GOAT3DAPI int goat3d_get_mesh_face_count(struct goat3d_mesh *mesh) 7.266 { 7.267 return (int)mesh->faces.size(); 7.268 } 7.269 7.270 // VECDATA is in goat3d_impl.h 7.271 -void goat3d_set_mesh_attribs(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, const void *data, int vnum) 7.272 +GOAT3DAPI void goat3d_set_mesh_attribs(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, const void *data, int vnum) 7.273 { 7.274 if(attrib == GOAT3D_MESH_ATTR_VERTEX) { 7.275 mesh->vertices = VECDATA(Vector3, data, vnum); 7.276 @@ -331,19 +331,19 @@ 7.277 } 7.278 } 7.279 7.280 -void goat3d_add_mesh_attrib1f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 7.281 +GOAT3DAPI void goat3d_add_mesh_attrib1f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 7.282 float val) 7.283 { 7.284 goat3d_add_mesh_attrib4f(mesh, attrib, val, 0, 0, 1); 7.285 } 7.286 7.287 -void goat3d_add_mesh_attrib3f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 7.288 +GOAT3DAPI void goat3d_add_mesh_attrib3f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 7.289 float x, float y, float z) 7.290 { 7.291 goat3d_add_mesh_attrib4f(mesh, attrib, x, y, z, 1); 7.292 } 7.293 7.294 -void goat3d_add_mesh_attrib4f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 7.295 +GOAT3DAPI void goat3d_add_mesh_attrib4f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 7.296 float x, float y, float z, float w) 7.297 { 7.298 switch(attrib) { 7.299 @@ -372,12 +372,12 @@ 7.300 } 7.301 } 7.302 7.303 -void *goat3d_get_mesh_attribs(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib) 7.304 +GOAT3DAPI void *goat3d_get_mesh_attribs(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib) 7.305 { 7.306 return goat3d_get_mesh_attrib(mesh, attrib, 0); 7.307 } 7.308 7.309 -void *goat3d_get_mesh_attrib(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, int idx) 7.310 +GOAT3DAPI void *goat3d_get_mesh_attrib(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, int idx) 7.311 { 7.312 switch(attrib) { 7.313 case GOAT3D_MESH_ATTR_VERTEX: 7.314 @@ -401,12 +401,12 @@ 7.315 } 7.316 7.317 7.318 -void goat3d_set_mesh_faces(struct goat3d_mesh *mesh, const int *data, int num) 7.319 +GOAT3DAPI void goat3d_set_mesh_faces(struct goat3d_mesh *mesh, const int *data, int num) 7.320 { 7.321 mesh->faces = VECDATA(Face, data, num); 7.322 } 7.323 7.324 -void goat3d_add_mesh_face(struct goat3d_mesh *mesh, int a, int b, int c) 7.325 +GOAT3DAPI void goat3d_add_mesh_face(struct goat3d_mesh *mesh, int a, int b, int c) 7.326 { 7.327 Face face; 7.328 face.v[0] = a; 7.329 @@ -415,12 +415,12 @@ 7.330 mesh->faces.push_back(face); 7.331 } 7.332 7.333 -int *goat3d_get_mesh_faces(struct goat3d_mesh *mesh) 7.334 +GOAT3DAPI int *goat3d_get_mesh_faces(struct goat3d_mesh *mesh) 7.335 { 7.336 return goat3d_get_mesh_face(mesh, 0); 7.337 } 7.338 7.339 -int *goat3d_get_mesh_face(struct goat3d_mesh *mesh, int idx) 7.340 +GOAT3DAPI int *goat3d_get_mesh_face(struct goat3d_mesh *mesh, int idx) 7.341 { 7.342 return mesh->faces.empty() ? 0 : mesh->faces[idx].v; 7.343 } 7.344 @@ -435,7 +435,7 @@ 7.345 static bool im_use[NUM_GOAT3D_MESH_ATTRIBS]; 7.346 7.347 7.348 -void goat3d_begin(struct goat3d_mesh *mesh, enum goat3d_im_primitive prim) 7.349 +GOAT3DAPI void goat3d_begin(struct goat3d_mesh *mesh, enum goat3d_im_primitive prim) 7.350 { 7.351 mesh->vertices.clear(); 7.352 mesh->normals.clear(); 7.353 @@ -452,7 +452,7 @@ 7.354 im_prim = prim; 7.355 } 7.356 7.357 -void goat3d_end(void) 7.358 +GOAT3DAPI void goat3d_end(void) 7.359 { 7.360 switch(im_prim) { 7.361 case GOAT3D_TRIANGLES: 7.362 @@ -494,7 +494,7 @@ 7.363 }; 7.364 } 7.365 7.366 -void goat3d_vertex3f(float x, float y, float z) 7.367 +GOAT3DAPI void goat3d_vertex3f(float x, float y, float z) 7.368 { 7.369 im_mesh->vertices.push_back(Vector3(x, y, z)); 7.370 if(im_use[GOAT3D_MESH_ATTR_NORMAL]) { 7.371 @@ -517,31 +517,31 @@ 7.372 } 7.373 } 7.374 7.375 -void goat3d_normal3f(float x, float y, float z) 7.376 +GOAT3DAPI void goat3d_normal3f(float x, float y, float z) 7.377 { 7.378 im_norm = Vector3(x, y, z); 7.379 im_use[GOAT3D_MESH_ATTR_NORMAL] = true; 7.380 } 7.381 7.382 -void goat3d_tangent3f(float x, float y, float z) 7.383 +GOAT3DAPI void goat3d_tangent3f(float x, float y, float z) 7.384 { 7.385 im_tang = Vector3(x, y, z); 7.386 im_use[GOAT3D_MESH_ATTR_TANGENT] = true; 7.387 } 7.388 7.389 -void goat3d_texcoord2f(float x, float y) 7.390 +GOAT3DAPI void goat3d_texcoord2f(float x, float y) 7.391 { 7.392 im_texcoord = Vector2(x, y); 7.393 im_use[GOAT3D_MESH_ATTR_TEXCOORD] = true; 7.394 } 7.395 7.396 -void goat3d_skin_weight4f(float x, float y, float z, float w) 7.397 +GOAT3DAPI void goat3d_skin_weight4f(float x, float y, float z, float w) 7.398 { 7.399 im_skinw = Vector4(x, y, z, w); 7.400 im_use[GOAT3D_MESH_ATTR_SKIN_WEIGHT] = true; 7.401 } 7.402 7.403 -void goat3d_skin_matrix4i(int x, int y, int z, int w) 7.404 +GOAT3DAPI void goat3d_skin_matrix4i(int x, int y, int z, int w) 7.405 { 7.406 im_skinmat.x = x; 7.407 im_skinmat.y = y; 7.408 @@ -550,77 +550,77 @@ 7.409 im_use[GOAT3D_MESH_ATTR_SKIN_MATRIX] = true; 7.410 } 7.411 7.412 -void goat3d_color3f(float x, float y, float z) 7.413 +GOAT3DAPI void goat3d_color3f(float x, float y, float z) 7.414 { 7.415 goat3d_color4f(x, y, z, 1.0f); 7.416 } 7.417 7.418 -void goat3d_color4f(float x, float y, float z, float w) 7.419 +GOAT3DAPI void goat3d_color4f(float x, float y, float z, float w) 7.420 { 7.421 im_color = Vector4(x, y, z, w); 7.422 im_use[GOAT3D_MESH_ATTR_COLOR] = true; 7.423 } 7.424 7.425 /* lights */ 7.426 -void goat3d_add_light(struct goat3d *g, struct goat3d_light *lt) 7.427 +GOAT3DAPI void goat3d_add_light(struct goat3d *g, struct goat3d_light *lt) 7.428 { 7.429 g->scn->add_light(lt); 7.430 } 7.431 7.432 -int goat3d_get_light_count(struct goat3d *g) 7.433 +GOAT3DAPI int goat3d_get_light_count(struct goat3d *g) 7.434 { 7.435 return g->scn->get_light_count(); 7.436 } 7.437 7.438 -struct goat3d_light *goat3d_get_light(struct goat3d *g, int idx) 7.439 +GOAT3DAPI struct goat3d_light *goat3d_get_light(struct goat3d *g, int idx) 7.440 { 7.441 return (goat3d_light*)g->scn->get_light(idx); 7.442 } 7.443 7.444 -struct goat3d_light *goat3d_get_light_by_name(struct goat3d *g, const char *name) 7.445 +GOAT3DAPI struct goat3d_light *goat3d_get_light_by_name(struct goat3d *g, const char *name) 7.446 { 7.447 return (goat3d_light*)g->scn->get_light(name); 7.448 } 7.449 7.450 7.451 -struct goat3d_light *goat3d_create_light(void) 7.452 +GOAT3DAPI struct goat3d_light *goat3d_create_light(void) 7.453 { 7.454 return new goat3d_light; 7.455 } 7.456 7.457 -void goat3d_destroy_light(struct goat3d_light *lt) 7.458 +GOAT3DAPI void goat3d_destroy_light(struct goat3d_light *lt) 7.459 { 7.460 delete lt; 7.461 } 7.462 7.463 7.464 /* cameras */ 7.465 -void goat3d_add_camera(struct goat3d *g, struct goat3d_camera *cam) 7.466 +GOAT3DAPI void goat3d_add_camera(struct goat3d *g, struct goat3d_camera *cam) 7.467 { 7.468 g->scn->add_camera(cam); 7.469 } 7.470 7.471 -int goat3d_get_camera_count(struct goat3d *g) 7.472 +GOAT3DAPI int goat3d_get_camera_count(struct goat3d *g) 7.473 { 7.474 return g->scn->get_camera_count(); 7.475 } 7.476 7.477 -struct goat3d_camera *goat3d_get_camera(struct goat3d *g, int idx) 7.478 +GOAT3DAPI struct goat3d_camera *goat3d_get_camera(struct goat3d *g, int idx) 7.479 { 7.480 return (goat3d_camera*)g->scn->get_camera(idx); 7.481 } 7.482 7.483 -struct goat3d_camera *goat3d_get_camera_by_name(struct goat3d *g, const char *name) 7.484 +GOAT3DAPI struct goat3d_camera *goat3d_get_camera_by_name(struct goat3d *g, const char *name) 7.485 { 7.486 return (goat3d_camera*)g->scn->get_camera(name); 7.487 } 7.488 7.489 -struct goat3d_camera *goat3d_create_camera(void) 7.490 +GOAT3DAPI struct goat3d_camera *goat3d_create_camera(void) 7.491 { 7.492 return new goat3d_camera; 7.493 } 7.494 7.495 -void goat3d_destroy_camera(struct goat3d_camera *cam) 7.496 +GOAT3DAPI void goat3d_destroy_camera(struct goat3d_camera *cam) 7.497 { 7.498 delete cam; 7.499 } 7.500 @@ -628,52 +628,52 @@ 7.501 7.502 7.503 // node 7.504 -void goat3d_add_node(struct goat3d *g, struct goat3d_node *node) 7.505 +GOAT3DAPI void goat3d_add_node(struct goat3d *g, struct goat3d_node *node) 7.506 { 7.507 g->scn->add_node(node); 7.508 } 7.509 7.510 -int goat3d_get_node_count(struct goat3d *g) 7.511 +GOAT3DAPI int goat3d_get_node_count(struct goat3d *g) 7.512 { 7.513 return g->scn->get_node_count(); 7.514 } 7.515 7.516 -struct goat3d_node *goat3d_get_node(struct goat3d *g, int idx) 7.517 +GOAT3DAPI struct goat3d_node *goat3d_get_node(struct goat3d *g, int idx) 7.518 { 7.519 return (goat3d_node*)g->scn->get_node(idx); 7.520 } 7.521 7.522 -struct goat3d_node *goat3d_get_node_by_name(struct goat3d *g, const char *name) 7.523 +GOAT3DAPI struct goat3d_node *goat3d_get_node_by_name(struct goat3d *g, const char *name) 7.524 { 7.525 return (goat3d_node*)g->scn->get_node(name); 7.526 } 7.527 7.528 -struct goat3d_node *goat3d_create_node(void) 7.529 +GOAT3DAPI struct goat3d_node *goat3d_create_node(void) 7.530 { 7.531 return new goat3d_node; 7.532 } 7.533 7.534 -void goat3d_set_node_name(struct goat3d_node *node, const char *name) 7.535 +GOAT3DAPI void goat3d_set_node_name(struct goat3d_node *node, const char *name) 7.536 { 7.537 node->set_name(name); 7.538 } 7.539 7.540 -const char *goat3d_get_node_name(const struct goat3d_node *node) 7.541 +GOAT3DAPI const char *goat3d_get_node_name(const struct goat3d_node *node) 7.542 { 7.543 return node->get_name(); 7.544 } 7.545 7.546 -void goat3d_set_node_object(struct goat3d_node *node, enum goat3d_node_type type, void *obj) 7.547 +GOAT3DAPI void goat3d_set_node_object(struct goat3d_node *node, enum goat3d_node_type type, void *obj) 7.548 { 7.549 node->set_object((Object*)obj); 7.550 } 7.551 7.552 -void *goat3d_get_node_object(const struct goat3d_node *node) 7.553 +GOAT3DAPI void *goat3d_get_node_object(const struct goat3d_node *node) 7.554 { 7.555 return (void*)node->get_object(); 7.556 } 7.557 7.558 -enum goat3d_node_type goat3d_get_node_type(const struct goat3d_node *node) 7.559 +GOAT3DAPI enum goat3d_node_type goat3d_get_node_type(const struct goat3d_node *node) 7.560 { 7.561 const Object *obj = node->get_object(); 7.562 if(dynamic_cast<const Mesh*>(obj)) { 7.563 @@ -689,43 +689,43 @@ 7.564 return GOAT3D_NODE_NULL; 7.565 } 7.566 7.567 -void goat3d_add_node_child(struct goat3d_node *node, struct goat3d_node *child) 7.568 +GOAT3DAPI void goat3d_add_node_child(struct goat3d_node *node, struct goat3d_node *child) 7.569 { 7.570 node->add_child(node); 7.571 } 7.572 7.573 -int goat3d_get_node_child_count(const struct goat3d_node *node) 7.574 +GOAT3DAPI int goat3d_get_node_child_count(const struct goat3d_node *node) 7.575 { 7.576 return node->get_children_count(); 7.577 } 7.578 7.579 -struct goat3d_node *goat3d_get_node_child(const struct goat3d_node *node, int idx) 7.580 +GOAT3DAPI struct goat3d_node *goat3d_get_node_child(const struct goat3d_node *node, int idx) 7.581 { 7.582 return (goat3d_node*)node->get_child(idx); 7.583 } 7.584 7.585 -void goat3d_set_node_position(struct goat3d_node *node, float x, float y, float z, long tmsec) 7.586 +GOAT3DAPI void goat3d_set_node_position(struct goat3d_node *node, float x, float y, float z, long tmsec) 7.587 { 7.588 node->set_position(Vector3(x, y, z), tmsec); 7.589 } 7.590 7.591 -void goat3d_set_node_rotation(struct goat3d_node *node, float qx, float qy, float qz, float qw, long tmsec) 7.592 +GOAT3DAPI void goat3d_set_node_rotation(struct goat3d_node *node, float qx, float qy, float qz, float qw, long tmsec) 7.593 { 7.594 node->set_rotation(Quaternion(qw, qx, qy, qz), tmsec); 7.595 } 7.596 7.597 -void goat3d_set_node_scaling(struct goat3d_node *node, float sx, float sy, float sz, long tmsec) 7.598 +GOAT3DAPI void goat3d_set_node_scaling(struct goat3d_node *node, float sx, float sy, float sz, long tmsec) 7.599 { 7.600 node->set_scaling(Vector3(sx, sy, sz), tmsec); 7.601 } 7.602 7.603 -void goat3d_set_node_pivot(struct goat3d_node *node, float px, float py, float pz) 7.604 +GOAT3DAPI void goat3d_set_node_pivot(struct goat3d_node *node, float px, float py, float pz) 7.605 { 7.606 node->set_pivot(Vector3(px, py, pz)); 7.607 } 7.608 7.609 7.610 -void goat3d_get_node_position(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr, long tmsec) 7.611 +GOAT3DAPI void goat3d_get_node_position(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr, long tmsec) 7.612 { 7.613 Vector3 pos = node->get_position(tmsec); 7.614 *xptr = pos.x; 7.615 @@ -733,7 +733,7 @@ 7.616 *zptr = pos.z; 7.617 } 7.618 7.619 -void goat3d_get_node_rotation(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr, float *wptr, long tmsec) 7.620 +GOAT3DAPI void goat3d_get_node_rotation(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr, float *wptr, long tmsec) 7.621 { 7.622 Quaternion q = node->get_rotation(tmsec); 7.623 *xptr = q.v.x; 7.624 @@ -742,7 +742,7 @@ 7.625 *wptr = q.s; 7.626 } 7.627 7.628 -void goat3d_get_node_scaling(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr, long tmsec) 7.629 +GOAT3DAPI void goat3d_get_node_scaling(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr, long tmsec) 7.630 { 7.631 Vector3 scale = node->get_scaling(tmsec); 7.632 *xptr = scale.x; 7.633 @@ -750,7 +750,7 @@ 7.634 *zptr = scale.z; 7.635 } 7.636 7.637 -void goat3d_get_node_pivot(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr) 7.638 +GOAT3DAPI void goat3d_get_node_pivot(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr) 7.639 { 7.640 Vector3 pivot = node->get_pivot(); 7.641 *xptr = pivot.x; 7.642 @@ -759,7 +759,7 @@ 7.643 } 7.644 7.645 7.646 -void goat3d_get_node_matrix(const struct goat3d_node *node, float *matrix, long tmsec) 7.647 +GOAT3DAPI void goat3d_get_node_matrix(const struct goat3d_node *node, float *matrix, long tmsec) 7.648 { 7.649 node->get_xform(tmsec, (Matrix4x4*)matrix); 7.650 }
8.1 --- a/src/goat3d.h Sun Oct 13 10:14:19 2013 +0300 8.2 +++ b/src/goat3d.h Sun Dec 01 01:31:53 2013 +0200 8.3 @@ -4,6 +4,12 @@ 8.4 #include <stdio.h> 8.5 #include <stdlib.h> 8.6 8.7 +#ifdef WIN32 8.8 +#define GOAT3DAPI __declspec(dllexport) 8.9 +#else 8.10 +#define 8.11 +#endif 8.12 + 8.13 #define GOAT3D_MAT_ATTR_DIFFUSE "diffuse" 8.14 #define GOAT3D_MAT_ATTR_SPECULAR "specular" 8.15 #define GOAT3D_MAT_ATTR_SHININESS "shininess" 8.16 @@ -66,65 +72,65 @@ 8.17 #endif 8.18 8.19 /* construction/destruction */ 8.20 -struct goat3d *goat3d_create(void); 8.21 -void goat3d_free(struct goat3d *g); 8.22 +GOAT3DAPI struct goat3d *goat3d_create(void); 8.23 +GOAT3DAPI void goat3d_free(struct goat3d *g); 8.24 8.25 -void goat3d_setopt(struct goat3d *g, enum goat3d_option opt, int val); 8.26 -int goat3d_getopt(const struct goat3d *g, enum goat3d_option opt); 8.27 +GOAT3DAPI void goat3d_setopt(struct goat3d *g, enum goat3d_option opt, int val); 8.28 +GOAT3DAPI int goat3d_getopt(const struct goat3d *g, enum goat3d_option opt); 8.29 8.30 /* load/save */ 8.31 -int goat3d_load(struct goat3d *g, const char *fname); 8.32 -int goat3d_save(const struct goat3d *g, const char *fname); 8.33 +GOAT3DAPI int goat3d_load(struct goat3d *g, const char *fname); 8.34 +GOAT3DAPI int goat3d_save(const struct goat3d *g, const char *fname); 8.35 8.36 -int goat3d_load_file(struct goat3d *g, FILE *fp); 8.37 -int goat3d_save_file(const struct goat3d *g, FILE *fp); 8.38 +GOAT3DAPI int goat3d_load_file(struct goat3d *g, FILE *fp); 8.39 +GOAT3DAPI int goat3d_save_file(const struct goat3d *g, FILE *fp); 8.40 8.41 -int goat3d_load_io(struct goat3d *g, struct goat3d_io *io); 8.42 -int goat3d_save_io(const struct goat3d *g, struct goat3d_io *io); 8.43 +GOAT3DAPI int goat3d_load_io(struct goat3d *g, struct goat3d_io *io); 8.44 +GOAT3DAPI int goat3d_save_io(const struct goat3d *g, struct goat3d_io *io); 8.45 8.46 /* misc scene properties */ 8.47 -int goat3d_set_name(struct goat3d *g, const char *name); 8.48 -const char *goat3d_get_name(const struct goat3d *g); 8.49 +GOAT3DAPI int goat3d_set_name(struct goat3d *g, const char *name); 8.50 +GOAT3DAPI const char *goat3d_get_name(const struct goat3d *g); 8.51 8.52 -void goat3d_set_ambient(struct goat3d *g, const float *ambient); 8.53 -void goat3d_set_ambient3f(struct goat3d *g, float ar, float ag, float ab); 8.54 -const float *goat3d_get_ambient(const struct goat3d *g); 8.55 +GOAT3DAPI void goat3d_set_ambient(struct goat3d *g, const float *ambient); 8.56 +GOAT3DAPI void goat3d_set_ambient3f(struct goat3d *g, float ar, float ag, float ab); 8.57 +GOAT3DAPI const float *goat3d_get_ambient(const struct goat3d *g); 8.58 8.59 /* materials */ 8.60 -void goat3d_add_mtl(struct goat3d *g, struct goat3d_material *mtl); 8.61 +GOAT3DAPI void goat3d_add_mtl(struct goat3d *g, struct goat3d_material *mtl); 8.62 8.63 -struct goat3d_material *goat3d_create_mtl(void); 8.64 -void goat3d_destroy_mtl(struct goat3d_material *mtl); 8.65 +GOAT3DAPI struct goat3d_material *goat3d_create_mtl(void); 8.66 +GOAT3DAPI void goat3d_destroy_mtl(struct goat3d_material *mtl); 8.67 8.68 -void goat3d_set_mtl_name(struct goat3d_material *mtl, const char *name); 8.69 -const char *goat3d_get_mtl_name(const struct goat3d_material *mtl); 8.70 +GOAT3DAPI void goat3d_set_mtl_name(struct goat3d_material *mtl, const char *name); 8.71 +GOAT3DAPI const char *goat3d_get_mtl_name(const struct goat3d_material *mtl); 8.72 8.73 -void goat3d_set_mtl_attrib(struct goat3d_material *mtl, const char *attrib, const float *val); 8.74 -void goat3d_set_mtl_attrib1f(struct goat3d_material *mtl, const char *attrib, float val); 8.75 -void goat3d_set_mtl_attrib3f(struct goat3d_material *mtl, const char *attrib, float r, float g, float b); 8.76 -void goat3d_set_mtl_attrib4f(struct goat3d_material *mtl, const char *attrib, float r, float g, float b, float a); 8.77 -const float *goat3d_get_mtl_attrib(struct goat3d_material *mtl, const char *attrib); 8.78 +GOAT3DAPI void goat3d_set_mtl_attrib(struct goat3d_material *mtl, const char *attrib, const float *val); 8.79 +GOAT3DAPI void goat3d_set_mtl_attrib1f(struct goat3d_material *mtl, const char *attrib, float val); 8.80 +GOAT3DAPI void goat3d_set_mtl_attrib3f(struct goat3d_material *mtl, const char *attrib, float r, float g, float b); 8.81 +GOAT3DAPI void goat3d_set_mtl_attrib4f(struct goat3d_material *mtl, const char *attrib, float r, float g, float b, float a); 8.82 +GOAT3DAPI const float *goat3d_get_mtl_attrib(struct goat3d_material *mtl, const char *attrib); 8.83 8.84 -void goat3d_set_mtl_attrib_map(struct goat3d_material *mtl, const char *attrib, const char *mapname); 8.85 -const char *goat3d_get_mtl_attrib_map(struct goat3d_material *mtl, const char *attrib); 8.86 +GOAT3DAPI void goat3d_set_mtl_attrib_map(struct goat3d_material *mtl, const char *attrib, const char *mapname); 8.87 +GOAT3DAPI const char *goat3d_get_mtl_attrib_map(struct goat3d_material *mtl, const char *attrib); 8.88 8.89 /* meshes */ 8.90 -void goat3d_add_mesh(struct goat3d *g, struct goat3d_mesh *mesh); 8.91 -int goat3d_get_mesh_count(struct goat3d *g); 8.92 -struct goat3d_mesh *goat3d_get_mesh(struct goat3d *g, int idx); 8.93 -struct goat3d_mesh *goat3d_get_mesh_by_name(struct goat3d *g, const char *name); 8.94 +GOAT3DAPI void goat3d_add_mesh(struct goat3d *g, struct goat3d_mesh *mesh); 8.95 +GOAT3DAPI int goat3d_get_mesh_count(struct goat3d *g); 8.96 +GOAT3DAPI struct goat3d_mesh *goat3d_get_mesh(struct goat3d *g, int idx); 8.97 +GOAT3DAPI struct goat3d_mesh *goat3d_get_mesh_by_name(struct goat3d *g, const char *name); 8.98 8.99 -struct goat3d_mesh *goat3d_create_mesh(void); 8.100 -void goat3d_destroy_mesh(struct goat3d_mesh *mesh); 8.101 +GOAT3DAPI struct goat3d_mesh *goat3d_create_mesh(void); 8.102 +GOAT3DAPI void goat3d_destroy_mesh(struct goat3d_mesh *mesh); 8.103 8.104 -void goat3d_set_mesh_name(struct goat3d_mesh *mesh, const char *name); 8.105 -const char *goat3d_get_mesh_name(const struct goat3d_mesh *mesh); 8.106 +GOAT3DAPI void goat3d_set_mesh_name(struct goat3d_mesh *mesh, const char *name); 8.107 +GOAT3DAPI const char *goat3d_get_mesh_name(const struct goat3d_mesh *mesh); 8.108 8.109 -void goat3d_set_mesh_mtl(struct goat3d_mesh *mesh, struct goat3d_material *mtl); 8.110 -struct goat3d_material *goat3d_get_mesh_mtl(struct goat3d_mesh *mesh); 8.111 +GOAT3DAPI void goat3d_set_mesh_mtl(struct goat3d_mesh *mesh, struct goat3d_material *mtl); 8.112 +GOAT3DAPI struct goat3d_material *goat3d_get_mesh_mtl(struct goat3d_mesh *mesh); 8.113 8.114 -int goat3d_get_mesh_attrib_count(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib); 8.115 -int goat3d_get_mesh_face_count(struct goat3d_mesh *mesh); 8.116 +GOAT3DAPI int goat3d_get_mesh_attrib_count(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib); 8.117 +GOAT3DAPI int goat3d_get_mesh_face_count(struct goat3d_mesh *mesh); 8.118 8.119 /* sets all the data for a single vertex attribute array in one go. 8.120 * vnum is the number of *vertices* to be set, not the number of floats, ints or whatever 8.121 @@ -137,91 +143,91 @@ 8.122 * - GOAT3D_MESH_ATTR_SKIN_MATRIX - 4 ints per vertex 8.123 * - GOAT3D_MESH_ATTR_COLOR - 4 floats per vertex 8.124 */ 8.125 -void goat3d_set_mesh_attribs(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 8.126 +GOAT3DAPI void goat3d_set_mesh_attribs(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 8.127 const void *data, int vnum); 8.128 -void goat3d_add_mesh_attrib1f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, float val); 8.129 -void goat3d_add_mesh_attrib3f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 8.130 - float x, float y, float z); 8.131 -void goat3d_add_mesh_attrib4f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 8.132 - float x, float y, float z, float w); 8.133 +GOAT3DAPI void goat3d_add_mesh_attrib1f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, float val); 8.134 +GOAT3DAPI void goat3d_add_mesh_attrib3f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 8.135 + float x, float y, float z); 8.136 +GOAT3DAPI void goat3d_add_mesh_attrib4f(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, 8.137 + float x, float y, float z, float w); 8.138 /* returns a pointer to the beginning of the requested mesh attribute array */ 8.139 -void *goat3d_get_mesh_attribs(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib); 8.140 +GOAT3DAPI void *goat3d_get_mesh_attribs(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib); 8.141 /* returns a pointer to the requested mesh attribute */ 8.142 -void *goat3d_get_mesh_attrib(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, int idx); 8.143 +GOAT3DAPI void *goat3d_get_mesh_attrib(struct goat3d_mesh *mesh, enum goat3d_mesh_attrib attrib, int idx); 8.144 8.145 /* sets all the faces in one go. data is an array of 3 int vertex indices per face */ 8.146 -void goat3d_set_mesh_faces(struct goat3d_mesh *mesh, const int *data, int fnum); 8.147 -void goat3d_add_mesh_face(struct goat3d_mesh *mesh, int a, int b, int c); 8.148 +GOAT3DAPI void goat3d_set_mesh_faces(struct goat3d_mesh *mesh, const int *data, int fnum); 8.149 +GOAT3DAPI void goat3d_add_mesh_face(struct goat3d_mesh *mesh, int a, int b, int c); 8.150 /* returns a pointer to the beginning of the face index array */ 8.151 -int *goat3d_get_mesh_faces(struct goat3d_mesh *mesh); 8.152 +GOAT3DAPI int *goat3d_get_mesh_faces(struct goat3d_mesh *mesh); 8.153 /* returns a pointer to a face index */ 8.154 -int *goat3d_get_mesh_face(struct goat3d_mesh *mesh, int idx); 8.155 +GOAT3DAPI int *goat3d_get_mesh_face(struct goat3d_mesh *mesh, int idx); 8.156 8.157 /* immediate mode OpenGL-like interface for setting mesh data 8.158 * NOTE: using this interface will result in no vertex sharing between faces 8.159 * NOTE2: the immedate mode interface is not thread-safe, either use locks, or don't 8.160 * use it at all in multithreaded situations. 8.161 */ 8.162 -void goat3d_begin(struct goat3d_mesh *mesh, enum goat3d_im_primitive prim); 8.163 -void goat3d_end(void); 8.164 -void goat3d_vertex3f(float x, float y, float z); 8.165 -void goat3d_normal3f(float x, float y, float z); 8.166 -void goat3d_tangent3f(float x, float y, float z); 8.167 -void goat3d_texcoord2f(float x, float y); 8.168 -void goat3d_skin_weight4f(float x, float y, float z, float w); 8.169 -void goat3d_skin_matrix4i(int x, int y, int z, int w); 8.170 -void goat3d_color3f(float x, float y, float z); 8.171 -void goat3d_color4f(float x, float y, float z, float w); 8.172 +GOAT3DAPI void goat3d_begin(struct goat3d_mesh *mesh, enum goat3d_im_primitive prim); 8.173 +GOAT3DAPI void goat3d_end(void); 8.174 +GOAT3DAPI void goat3d_vertex3f(float x, float y, float z); 8.175 +GOAT3DAPI void goat3d_normal3f(float x, float y, float z); 8.176 +GOAT3DAPI void goat3d_tangent3f(float x, float y, float z); 8.177 +GOAT3DAPI void goat3d_texcoord2f(float x, float y); 8.178 +GOAT3DAPI void goat3d_skin_weight4f(float x, float y, float z, float w); 8.179 +GOAT3DAPI void goat3d_skin_matrix4i(int x, int y, int z, int w); 8.180 +GOAT3DAPI void goat3d_color3f(float x, float y, float z); 8.181 +GOAT3DAPI void goat3d_color4f(float x, float y, float z, float w); 8.182 8.183 /* lights */ 8.184 -void goat3d_add_light(struct goat3d *g, struct goat3d_light *lt); 8.185 -int goat3d_get_light_count(struct goat3d *g); 8.186 -struct goat3d_light *goat3d_get_light(struct goat3d *g, int idx); 8.187 -struct goat3d_light *goat3d_get_light_by_name(struct goat3d *g, const char *name); 8.188 +GOAT3DAPI void goat3d_add_light(struct goat3d *g, struct goat3d_light *lt); 8.189 +GOAT3DAPI int goat3d_get_light_count(struct goat3d *g); 8.190 +GOAT3DAPI struct goat3d_light *goat3d_get_light(struct goat3d *g, int idx); 8.191 +GOAT3DAPI struct goat3d_light *goat3d_get_light_by_name(struct goat3d *g, const char *name); 8.192 8.193 -struct goat3d_light *goat3d_create_light(void); 8.194 -void goat3d_destroy_light(struct goat3d_light *lt); 8.195 +GOAT3DAPI struct goat3d_light *goat3d_create_light(void); 8.196 +GOAT3DAPI void goat3d_destroy_light(struct goat3d_light *lt); 8.197 8.198 /* cameras */ 8.199 -void goat3d_add_camera(struct goat3d *g, struct goat3d_camera *cam); 8.200 -int goat3d_get_camera_count(struct goat3d *g); 8.201 -struct goat3d_camera *goat3d_get_camera(struct goat3d *g, int idx); 8.202 -struct goat3d_camera *goat3d_get_camera_by_name(struct goat3d *g, const char *name); 8.203 +GOAT3DAPI void goat3d_add_camera(struct goat3d *g, struct goat3d_camera *cam); 8.204 +GOAT3DAPI int goat3d_get_camera_count(struct goat3d *g); 8.205 +GOAT3DAPI struct goat3d_camera *goat3d_get_camera(struct goat3d *g, int idx); 8.206 +GOAT3DAPI struct goat3d_camera *goat3d_get_camera_by_name(struct goat3d *g, const char *name); 8.207 8.208 -struct goat3d_camera *goat3d_create_camera(void); 8.209 -void goat3d_destroy_camera(struct goat3d_camera *cam); 8.210 +GOAT3DAPI struct goat3d_camera *goat3d_create_camera(void); 8.211 +GOAT3DAPI void goat3d_destroy_camera(struct goat3d_camera *cam); 8.212 8.213 /* nodes */ 8.214 -void goat3d_add_node(struct goat3d *g, struct goat3d_node *node); 8.215 -int goat3d_get_node_count(struct goat3d *g); 8.216 -struct goat3d_node *goat3d_get_node(struct goat3d *g, int idx); 8.217 -struct goat3d_node *goat3d_get_node_by_name(struct goat3d *g, const char *name); 8.218 +GOAT3DAPI void goat3d_add_node(struct goat3d *g, struct goat3d_node *node); 8.219 +GOAT3DAPI int goat3d_get_node_count(struct goat3d *g); 8.220 +GOAT3DAPI struct goat3d_node *goat3d_get_node(struct goat3d *g, int idx); 8.221 +GOAT3DAPI struct goat3d_node *goat3d_get_node_by_name(struct goat3d *g, const char *name); 8.222 8.223 -struct goat3d_node *goat3d_create_node(void); 8.224 -void goat3d_destroy_node(struct goat3d_node *node); 8.225 +GOAT3DAPI struct goat3d_node *goat3d_create_node(void); 8.226 +GOAT3DAPI void goat3d_destroy_node(struct goat3d_node *node); 8.227 8.228 -void goat3d_set_node_name(struct goat3d_node *node, const char *name); 8.229 -const char *goat3d_get_node_name(const struct goat3d_node *node); 8.230 +GOAT3DAPI void goat3d_set_node_name(struct goat3d_node *node, const char *name); 8.231 +GOAT3DAPI const char *goat3d_get_node_name(const struct goat3d_node *node); 8.232 8.233 -void goat3d_set_node_object(struct goat3d_node *node, enum goat3d_node_type type, void *obj); 8.234 -void *goat3d_get_node_object(const struct goat3d_node *node); 8.235 -enum goat3d_node_type goat3d_get_node_type(const struct goat3d_node *node); 8.236 +GOAT3DAPI void goat3d_set_node_object(struct goat3d_node *node, enum goat3d_node_type type, void *obj); 8.237 +GOAT3DAPI void *goat3d_get_node_object(const struct goat3d_node *node); 8.238 +GOAT3DAPI enum goat3d_node_type goat3d_get_node_type(const struct goat3d_node *node); 8.239 8.240 -void goat3d_add_node_child(struct goat3d_node *node, struct goat3d_node *child); 8.241 -int goat3d_get_node_child_count(const struct goat3d_node *node); 8.242 -struct goat3d_node *goat3d_get_node_child(const struct goat3d_node *node, int idx); 8.243 +GOAT3DAPI void goat3d_add_node_child(struct goat3d_node *node, struct goat3d_node *child); 8.244 +GOAT3DAPI int goat3d_get_node_child_count(const struct goat3d_node *node); 8.245 +GOAT3DAPI struct goat3d_node *goat3d_get_node_child(const struct goat3d_node *node, int idx); 8.246 8.247 -void goat3d_set_node_position(struct goat3d_node *node, float x, float y, float z, long tmsec); 8.248 -void goat3d_set_node_rotation(struct goat3d_node *node, float qx, float qy, float qz, float qw, long tmsec); 8.249 -void goat3d_set_node_scaling(struct goat3d_node *node, float sx, float sy, float sz, long tmsec); 8.250 -void goat3d_set_node_pivot(struct goat3d_node *node, float px, float py, float pz); 8.251 +GOAT3DAPI void goat3d_set_node_position(struct goat3d_node *node, float x, float y, float z, long tmsec); 8.252 +GOAT3DAPI void goat3d_set_node_rotation(struct goat3d_node *node, float qx, float qy, float qz, float qw, long tmsec); 8.253 +GOAT3DAPI void goat3d_set_node_scaling(struct goat3d_node *node, float sx, float sy, float sz, long tmsec); 8.254 +GOAT3DAPI void goat3d_set_node_pivot(struct goat3d_node *node, float px, float py, float pz); 8.255 8.256 -void goat3d_get_node_position(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr, long tmsec); 8.257 -void goat3d_get_node_rotation(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr, float *wptr, long tmsec); 8.258 -void goat3d_get_node_scaling(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr, long tmsec); 8.259 -void goat3d_get_node_pivot(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr); 8.260 +GOAT3DAPI void goat3d_get_node_position(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr, long tmsec); 8.261 +GOAT3DAPI void goat3d_get_node_rotation(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr, float *wptr, long tmsec); 8.262 +GOAT3DAPI void goat3d_get_node_scaling(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr, long tmsec); 8.263 +GOAT3DAPI void goat3d_get_node_pivot(const struct goat3d_node *node, float *xptr, float *yptr, float *zptr); 8.264 8.265 -void goat3d_get_node_matrix(const struct goat3d_node *node, float *matrix, long tmsec); 8.266 +GOAT3DAPI void goat3d_get_node_matrix(const struct goat3d_node *node, float *matrix, long tmsec); 8.267 8.268 #ifdef __cplusplus 8.269 }