李良庭
2025-04-22 10867a7f2665f3afd91706075f85f4a81a3238e0
提交一个测试版本
已添加5个文件
269 ■■■■■ 文件已修改
cloud_viewer.cpp 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud_viewer.sln 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud_viewer.vcxproj 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud_viewer.vcxproj.filters 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sampledata.pcd 补丁 | 查看 | 原始文档 | blame | 历史
cloud_viewer.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
// cloud_viewer.cpp : æ­¤æ–‡ä»¶åŒ…含 "main" å‡½æ•°ã€‚程序执行将在此处开始并结束。
//
#define PCL_SILENCE_MALLOC_WARNING 1
#include <pcl/visualization/cloud_viewer.h>
#include <iostream>
//#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
int user_data;
void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
    viewer.setBackgroundColor(0, 0, 0);
    std::cout << "i only run once" << std::endl;
}
void viewerPsycho(pcl::visualization::PCLVisualizer& viewer)
{
    static unsigned count = 0;
    std::stringstream ss;
    ss << "Once per viewer loop: " << count++;
    viewer.removeShape("text", 0);
    viewer.addText(ss.str(), 200, 300, "text", 0);
    //FIXME: possible race condition here:
    user_data++;
}
int main()
{
    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
    pcl::io::loadPCDFile("sampledata.pcd", *cloud);
    pcl::visualization::CloudViewer viewer("Cloud Viewer");
    //blocks until the cloud is actually rendered
    viewer.showCloud(cloud);
    //use the following functions to get access to the underlying more advanced/powerful
    //PCLVisualizer
    //This will only get called once
    viewer.runOnVisualizationThreadOnce(viewerOneOff);
    //This will get called once per visualization iteration
    viewer.runOnVisualizationThread(viewerPsycho);
    while (!viewer.wasStopped())
    {
        //you can also do cool processing here
        //FIXME: Note that this is running in a separate thread from viewerPsycho
        //and you should guard against race conditions yourself...
        user_data++;
    }
    return 0;
}
// è¿è¡Œç¨‹åº: Ctrl + F5 æˆ–调试 >“开始执行(不调试)”菜单
// è°ƒè¯•程序: F5 æˆ–调试 >“开始调试”菜单
// å…¥é—¨ä½¿ç”¨æŠ€å·§:
//   1. ä½¿ç”¨è§£å†³æ–¹æ¡ˆèµ„源管理器窗口添加/管理文件
//   2. ä½¿ç”¨å›¢é˜Ÿèµ„源管理器窗口连接到源代码管理
//   3. ä½¿ç”¨è¾“出窗口查看生成输出和其他消息
//   4. ä½¿ç”¨é”™è¯¯åˆ—表窗口查看错误
//   5. è½¬åˆ°â€œé¡¹ç›®â€>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. å°†æ¥ï¼Œè‹¥è¦å†æ¬¡æ‰“开此项目,请转到“文件”>“打开”>“项目”并选择 .sln æ–‡ä»¶
cloud_viewer.sln
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.13.35931.197 d17.13
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cloud_viewer", "cloud_viewer.vcxproj", "{E0272AA6-951F-4409-9484-862B68244D12}"
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
        {E0272AA6-951F-4409-9484-862B68244D12}.Debug|x64.ActiveCfg = Debug|x64
        {E0272AA6-951F-4409-9484-862B68244D12}.Debug|x64.Build.0 = Debug|x64
        {E0272AA6-951F-4409-9484-862B68244D12}.Debug|x86.ActiveCfg = Debug|Win32
        {E0272AA6-951F-4409-9484-862B68244D12}.Debug|x86.Build.0 = Debug|Win32
        {E0272AA6-951F-4409-9484-862B68244D12}.Release|x64.ActiveCfg = Release|x64
        {E0272AA6-951F-4409-9484-862B68244D12}.Release|x64.Build.0 = Release|x64
        {E0272AA6-951F-4409-9484-862B68244D12}.Release|x86.ActiveCfg = Release|Win32
        {E0272AA6-951F-4409-9484-862B68244D12}.Release|x86.Build.0 = Release|Win32
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {F87B5978-7413-49DE-AEED-1D6165969DC0}
    EndGlobalSection
EndGlobal
cloud_viewer.vcxproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,149 @@
<?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>{e0272aa6-951f-4409-9484-862b68244d12}</ProjectGuid>
    <RootNamespace>cloudviewer</RootNamespace>
    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v143</PlatformToolset>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>v143</PlatformToolset>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v143</PlatformToolset>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    <ConfigurationType>Application</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'">
    <IncludePath>D:\Program Files\PCL 1.15.0;D:\Program Files\PCL 1.15.0\3rdParty\Boost\include\boost-1_87;D:\Program Files\PCL 1.15.0\3rdParty\Eigen3\include\eigen3;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\include;D:\Program Files\PCL 1.15.0\3rdParty\VTK\include\vtk-9.4;D:\Program Files\PCL 1.15.0\3rdParty\OpenNI2\Include;$(IncludePath)</IncludePath>
    <LibraryPath>D:\Program Files\PCL 1.15.0\lib;D:\Program Files\PCL 1.15.0\3rdParty\Boost\lib;D:\Program Files\PCL 1.15.0\3rdParty\VTK\lib;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\lib;D:\Program Files\PCL 1.15.0\3rdParty\OpenNI2\Lib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <IncludePath>D:\Program Files\PCL 1.15.0;D:\Program Files\PCL 1.15.0\3rdParty\Boost\include\boost-1_87;D:\Program Files\PCL 1.15.0\3rdParty\Eigen3\include\eigen3;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\include;D:\Program Files\PCL 1.15.0\3rdParty\VTK\include\vtk-9.4;D:\Program Files\PCL 1.15.0\3rdParty\OpenNI2\Include;$(IncludePath)</IncludePath>
    <LibraryPath>D:\Program Files\PCL 1.15.0\lib;D:\Program Files\PCL 1.15.0\3rdParty\Boost\lib;D:\Program Files\PCL 1.15.0\3rdParty\VTK\lib;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\lib;D:\Program Files\PCL 1.15.0\3rdParty\OpenNI2\Lib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
      <GenerateDebugInformation>true</GenerateDebugInformation>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
      <AdditionalIncludeDirectories>D:\Program Files\PCL 1.15.0\include\pcl-1.15;D:\Program Files\PCL 1.15.0\3rdParty\Eigen3\include\eigen3;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\include\flann;D:\Program Files\PCL 1.15.0\3rdParty\Boost\include\boost-1_87;D:\Program Files\PCL 1.15.0\3rdParty\VTK\include\vtk-9.4</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <AdditionalLibraryDirectories>D:\Program Files\PCL 1.15.0\lib;D:\Program Files\PCL 1.15.0\3rdParty\Boost\lib;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\lib;D:\Program Files\PCL 1.15.0\3rdParty\OpenNI2\Lib;D:\Program Files\PCL 1.15.0\3rdParty\VTK\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>pcl_common.lib;pcl_io.lib;pcl_kdtree.lib;pcl_search.lib;pcl_sample_consensus.lib;pcl_filters.lib;pcl_features.lib;pcl_segmentation.lib;pcl_visualization.lib;flann.lib;flann_s.lib;vtkSys-9.4.lib;vtkCommonCore-9.4.lib;vtkFiltersCore-9.4.lib;vtkRenderingCore-9.4.lib;vtkInteractionStyle-9.4.lib;vtkRenderingOpenGL2-9.4.lib;OpenNI2.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
      <AdditionalIncludeDirectories>D:\Program Files\PCL 1.15.0\include\pcl-1.15;D:\Program Files\PCL 1.15.0\3rdParty\Eigen3\include\eigen3;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\include\flann;D:\Program Files\PCL 1.15.0\3rdParty\Boost\include\boost-1_87;D:\Program Files\PCL 1.15.0\3rdParty\VTK\include\vtk-9.4</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <AdditionalLibraryDirectories>D:\Program Files\PCL 1.15.0\lib;D:\Program Files\PCL 1.15.0\3rdParty\Boost\lib;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\lib;D:\Program Files\PCL 1.15.0\3rdParty\OpenNI2\Lib;D:\Program Files\PCL 1.15.0\3rdParty\VTK\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>pcl_common.lib;pcl_io.lib;pcl_kdtree.lib;pcl_search.lib;pcl_sample_consensus.lib;pcl_filters.lib;pcl_features.lib;pcl_segmentation.lib;pcl_visualization.lib;flann.lib;flann_s.lib;vtkSys-9.4.lib;vtkCommonCore-9.4.lib;vtkFiltersCore-9.4.lib;vtkRenderingCore-9.4.lib;vtkInteractionStyle-9.4.lib;vtkRenderingOpenGL2-9.4.lib;OpenNI2.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClCompile Include="cloud_viewer.cpp" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
</Project>
cloud_viewer.vcxproj.filters
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
<?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>
    <ClCompile Include="cloud_viewer.cpp">
      <Filter>源文件</Filter>
    </ClCompile>
  </ItemGroup>
</Project>
sampledata.pcd
Binary files differ