Browse Source

面向全平台开发

main
郑敬润 1 year ago
parent
commit
be0c1e0f15
  1. 13
      CMakeLists.txt
  2. 31
      WireRouting_DLL.sln
  3. 23
      lib/CMakeLists.txt
  4. BIN
      lib/Debug/WireRouting.exp
  5. BIN
      lib/Debug/WireRouting.lib
  6. 194
      lib/WireRouting_DLL.vcxproj
  7. 129
      lib/WireRouting_DLL.vcxproj.filters
  8. 4
      lib/WireRouting_DLL.vcxproj.user
  9. 17
      lib/dllmain.cpp
  10. 5
      lib/include/framework.h
  11. 13
      lib/include/pch.h
  12. 5
      lib/pch.cpp
  13. 1
      lib/src/Astar.cpp
  14. 2
      lib/src/BVH.cpp
  15. 2
      lib/src/BasicChannel.cpp
  16. 2
      lib/src/BasicEdge.cpp
  17. 2
      lib/src/BranchPoint.cpp
  18. 2
      lib/src/BranchTree.cpp
  19. 2
      lib/src/Bundle.cpp
  20. 2
      lib/src/Clip.cpp
  21. 2
      lib/src/Connector.cpp
  22. 1
      lib/src/Const.cpp
  23. 2
      lib/src/Geometry.cpp
  24. 2
      lib/src/Intersection.cpp
  25. 2
      lib/src/KDtree.cpp
  26. 2
      lib/src/Path.cpp
  27. 2
      lib/src/Point.cpp
  28. 2
      lib/src/ReadXML.cpp
  29. 76
      readme.md

13
CMakeLists.txt

@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 3.16)
#------------REQUIRED_2 ------------#
project(
WireRouting # 这里没有添加任何的目标(target)
WireRoutingProject # 这里没有添加任何的目标(target)
VERSION 1.0
DESCRIPTION "A project for wire routing" # CMake 3.9+
# C,CXX,Fortran,ASM,CUDA(CMake 3.8+),CSharp(3.8+),SWIFT(CMake 3.15+ experimental)
@ -42,6 +42,7 @@ elseif (WIN32)
list(PREPEND CMAKE_PREFIX_PATH D:/SOURCE/Dependencies) # Windows
set(CMAKE_TOOLCHAIN_FILE "D:\\vcpkg\\scripts\\buildsystems\\vcpkg.cmake") # vcpkg
include(${CMAKE_TOOLCHAIN_FILE})
# CONFIG <deps_dir>/share/<lib_name>/cmake/xxxConfig.cmake
find_package(tinyxml CONFIG REQUIRED)
elseif (UNIX)
list(PREPEND CMAKE_PREFIX_PATH /home/yony/PROJECTS/Dependencies) # Linux
@ -50,8 +51,6 @@ endif()
# find_package
message(STATUS "CMAKE_SYSTEM_PREFIX_PATH: ${CMAKE_SYSTEM_PREFIX_PATH}")
message(STATUS "Self added CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")
# CONFIG <deps_dir>/share/<lib_name>/cmake/xxxConfig.cmake
# find_package(tinyxml CONFIG REQUIRED)
#------------REQUIRED_5.1.2 include .cmakeContentFetch------------#
# cmakeCMAKE_MODULE_PATH include 使
@ -63,8 +62,12 @@ message(STATUS "Self added CMAKE_MODULE_PATH: ${CMAKE_MODULE_PATH}")
# igl_include(core) # igl_include(core) igl::core
# igl_include(glfw) # igl_include_optional(glfw) Enable the target igl::glfw
add_subdirectory(lib) # CMakeLists.txt
# DLL
file(COPY ${CMAKE_SOURCE_DIR}/lib/VSbuild/x64/Debug/WireRouting_DLL.dll DESTINATION ${PROJECT_BINARY_DIR}/Debug)
# file(COPY ${CMAKE_SOURCE_DIR}/lib/Debug/WireRouting.dll DESTINATION ${PROJECT_BINARY_DIR}/Debug)
#------------REQUIRED_3 ------------#
@ -86,7 +89,7 @@ if (WIN32)
target_link_libraries(
${PROJECT_NAME} PUBLIC
unofficial-tinyxml::unofficial-tinyxml
${CMAKE_SOURCE_DIR}/lib/VSbuild/x64/Debug/WireRouting_DLL.lib
${CMAKE_SOURCE_DIR}/lib/Debug/WireRouting.lib
)
else()
target_link_libraries(

31
WireRouting_DLL.sln

@ -1,31 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.8.34322.80
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WireRouting_DLL", "lib\WireRouting_DLL.vcxproj", "{958F9989-0884-4B91-836A-BCDA97342FCB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{958F9989-0884-4B91-836A-BCDA97342FCB}.Debug|x64.ActiveCfg = Debug|x64
{958F9989-0884-4B91-836A-BCDA97342FCB}.Debug|x64.Build.0 = Debug|x64
{958F9989-0884-4B91-836A-BCDA97342FCB}.Debug|x86.ActiveCfg = Debug|Win32
{958F9989-0884-4B91-836A-BCDA97342FCB}.Debug|x86.Build.0 = Debug|Win32
{958F9989-0884-4B91-836A-BCDA97342FCB}.Release|x64.ActiveCfg = Release|x64
{958F9989-0884-4B91-836A-BCDA97342FCB}.Release|x64.Build.0 = Release|x64
{958F9989-0884-4B91-836A-BCDA97342FCB}.Release|x86.ActiveCfg = Release|Win32
{958F9989-0884-4B91-836A-BCDA97342FCB}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {9AC3C08A-4DBA-4FF9-8DE7-ACE6B546D11B}
EndGlobalSection
EndGlobal

23
lib/CMakeLists.txt

@ -0,0 +1,23 @@
aux_source_directory(${CMAKE_SOURCE_DIR}/lib/src SRC_FILES_IN_LIB)
message(STATUS "SRC_FILES_IN_LIB: ${SRC_FILES_IN_LIB}")
add_library(WireRouting SHARED ${SRC_FILES_IN_LIB})
target_compile_definitions(WireRouting PUBLIC DMY_LIB_SHARED_BUILD)
target_compile_definitions(WireRouting PRIVATE WIREROUTINGDLL_EXPORTS)
INSTALL(TARGETS WireRouting DESTINATION ${CMAKE_SOURCE_DIR}/lib)
SET_TARGET_PROPERTIES(
WireRouting PROPERTIES
LINKER_LANGUAGE C
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib
OUTPUT_NAME "WireRouting"
PREFIX ""
)
target_include_directories(
WireRouting PUBLIC
${CMAKE_SOURCE_DIR}/lib/include
)

BIN
lib/Debug/WireRouting.exp

Binary file not shown.

BIN
lib/Debug/WireRouting.lib

Binary file not shown.

194
lib/WireRouting_DLL.vcxproj

@ -1,194 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" 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>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{958f9989-0884-4b91-836a-bcda97342fcb}</ProjectGuid>
<RootNamespace>WireRoutingDLL</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</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>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<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|x64'">
<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|x64'">
<OutDir>$(SolutionDir)lib\VSbuild\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)lib\VSbuild\$(Platform)\$(Configuration)\</IntDir>
<IncludePath>$(SolutionDir)lib\include;$(IncludePath)</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;WIREROUTINGDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;WIREROUTINGDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;WIREROUTINGDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;WIREROUTINGDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="include/Astar.h" />
<ClInclude Include="include/BasicChannel.h" />
<ClInclude Include="include/BasicEdge.h" />
<ClInclude Include="include/BranchPoint.h" />
<ClInclude Include="include/BranchTree.h" />
<ClInclude Include="include/Bundle.h" />
<ClInclude Include="include/BVH.h" />
<ClInclude Include="include/Clip.h" />
<ClInclude Include="include/Connector.h" />
<ClInclude Include="include/Const.h" />
<ClInclude Include="include/framework.h" />
<ClInclude Include="include/Geometry.h" />
<ClInclude Include="include/Intersection.h" />
<ClInclude Include="include/KDtree.h" />
<ClInclude Include="include/Path.h" />
<ClInclude Include="include/pch.h" />
<ClInclude Include="include/Point.h" />
<ClInclude Include="include/ReadXML.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="Astar.cpp" />
<ClCompile Include="BasicChannel.cpp" />
<ClCompile Include="BasicEdge.cpp" />
<ClCompile Include="BranchPoint.cpp" />
<ClCompile Include="BranchTree.cpp" />
<ClCompile Include="Bundle.cpp" />
<ClCompile Include="BVH.cpp" />
<ClCompile Include="Clip.cpp" />
<ClCompile Include="Connector.cpp" />
<ClCompile Include="Const.cpp" />
<ClCompile Include="dllmain.cpp" />
<ClCompile Include="Geometry.cpp" />
<ClCompile Include="Intersection.cpp" />
<ClCompile Include="KDtree.cpp" />
<ClCompile Include="Path.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="Point.cpp" />
<ClCompile Include="ReadXML.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

129
lib/WireRouting_DLL.vcxproj.filters

@ -1,129 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="资源文件">
<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>
<ClInclude Include="include/framework.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/pch.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/Astar.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/BasicChannel.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/BasicEdge.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/BranchPoint.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/BranchTree.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/Bundle.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/BVH.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/Clip.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/Connector.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/Const.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/Geometry.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/Intersection.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/KDtree.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/Path.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/Point.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include/ReadXML.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="pch.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="ReadXML.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Point.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Path.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="KDtree.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Intersection.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Geometry.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Const.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Connector.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Clip.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Bundle.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="BVH.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="BranchPoint.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="BasicEdge.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="BasicChannel.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Astar.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="BranchTree.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
</Project>

4
lib/WireRouting_DLL.vcxproj.user

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

17
lib/dllmain.cpp

@ -1,17 +0,0 @@
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

5
lib/include/framework.h

@ -1,5 +0,0 @@
#pragma once
#define WIN32_LEAN_AND_MEAN // 从 Windows 头文件中排除极少使用的内容
// Windows 头文件
#include <windows.h>

13
lib/include/pch.h

@ -1,13 +0,0 @@
// pch.h: 这是预编译标头文件。
// 下方列出的文件仅编译一次,提高了将来生成的生成性能。
// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。
// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。
// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。
#ifndef PCH_H
#define PCH_H
// 添加要在此处预编译的标头
#include "framework.h"
#endif // PCH_H

5
lib/pch.cpp

@ -1,5 +0,0 @@
// pch.cpp: 与预编译标头对应的源文件
#include "pch.h"
// 当使用预编译的头时,需要使用此源文件,编译才能成功。

1
lib/Astar.cpp → lib/src/Astar.cpp

@ -1,4 +1,3 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "Astar.h"
Astar astar;

2
lib/BVH.cpp → lib/src/BVH.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "BVH.h"
BVH bvh;

2
lib/BasicChannel.cpp → lib/src/BasicChannel.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "BasicChannel.h"
BasicChannel basicChannel;

2
lib/BasicEdge.cpp → lib/src/BasicEdge.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "BasicEdge.h"
BasicEdge basicEdge;

2
lib/BranchPoint.cpp → lib/src/BranchPoint.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "BranchPoint.h"
BranchPointSet branchPointSet;

2
lib/BranchTree.cpp → lib/src/BranchTree.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "BranchTree.h"
BranchTree branchTree;

2
lib/Bundle.cpp → lib/src/Bundle.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "Bundle.h"
BundleNode bdNode[MAXPointNum];

2
lib/Clip.cpp → lib/src/Clip.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "Clip.h"
ClipSet clipSet;

2
lib/Connector.cpp → lib/src/Connector.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "Connector.h"
Connector connectors[M];

1
lib/Const.cpp → lib/src/Const.cpp

@ -1,4 +1,3 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "Const.h"
double MAXX = -1e9, MINX = 1e9, MAXY = -1e9, MINY = 1e9, MAXZ = -1e9, MINZ = 1e9; // 卡箍的坐标范围

2
lib/Geometry.cpp → lib/src/Geometry.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "Geometry.h"
vector<Vec3f> vertices;

2
lib/Intersection.cpp → lib/src/Intersection.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "Intersection.h"
TriangleSegmentIntersectRes::TriangleSegmentIntersectRes(bool h, float tt) : hit(h), t(tt) {} // VS2008

2
lib/KDtree.cpp → lib/src/KDtree.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "KDtree.h"
KDtree kdtree;

2
lib/Path.cpp → lib/src/Path.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "Path.h"

2
lib/Point.cpp → lib/src/Point.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "Point.h"
const double eps = 1e-6;

2
lib/ReadXML.cpp → lib/src/ReadXML.cpp

@ -1,4 +1,4 @@
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include "ReadXML.h"
string ini = "--";

76
readme.md

@ -0,0 +1,76 @@
## 项目结构
```
.
│ CMakeLists.txt \\CMake构建配置文件
│ config.h.in
│ readme.md
├─data
│ ├─demo
│ │ └─ ...
│ └─Tinyroute_test
│ │ connector.csv \\连接器数据
│ │ result_ALL.txt \\当前数据与参数下应运行出的结果数据
│ ├─clip2
│ │ clips_with_dir.xml \\空间中卡箍点集数据
│ ├─OBJ
│ │ cangti_correct.obj \\输入模型
│ └─wirexml \\ 连接器间连接关系
│ 1START_END.xml
│ 2NEAR_END.xml
│ 3NEAR_START.xml
├─include
│ read_xml.h
├─lib \\所用运行库
│ │ tinyxml.lib
│ │ WireRouting_DLL.dll
│ │ WireRouting_DLL.lib
│ │
│ └─include \\库相关头文件
│ Astar.h
│ BasicChannel.h
│ BasicEdge.h
| ...
└─src \\编译目标源文件
xmlsql.cpp
```
## 运行环境配置
- CMake配置
- 确认Cmake已安装: [Download CMake](https://cmake.org/download/#latest)
- 添加**cmake.exe**至环境变量
- 确认编译器已安装,如VS2022、VS2019等环境
## 使用CMake构建项目
```
# 进入项目目录
cd <path_to_project>
# Standard CMake build
# 注意项目所用链接库均为 Debug x64 编译,构建务必使用同规格
cmake -S . -B build -T host=x64 -A x64
cmake --build build --config Debug --target ALL_BUILD -j 14
```
## 运行
```
# 进入可执行文件所在目录
cd <path_to_project>\build\Debug
# 运行
.\WireRouting.exe createTinyroute "..\\..\\data\\Tinyroute_test\\clip2" "..\\..\\data\\Tinyroute_test\\wirexml" "..\\..\\data\\Tinyroute_test\\connector.csv" "..\\..\\data\\Tinyroute_test\\OBJ" output
```
## 查看结果
> 在 **<path_to_project>\build\Debug\output_ALL.txt** 目录下查看输出文件
>
> 可与 **<path_to_project>\data\Tinyroute_test\result_ALL.txt** 比较结果
Loading…
Cancel
Save