Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Makefile 尝试使用vtkOBJWriter输出文件时出现问题_Makefile_Cmake_Vtk - Fatal编程技术网

Makefile 尝试使用vtkOBJWriter输出文件时出现问题

Makefile 尝试使用vtkOBJWriter输出文件时出现问题,makefile,cmake,vtk,Makefile,Cmake,Vtk,我正在尝试使用David Doria提供的vtkOBJWriter将.vtk文件转换为.obj文件。我从中克隆了git,为CMake和make添加了生成目录,并将文件vtkOBJWriterExample.cxx更改为: #include <vtkSmartPointer.h> #include <vtkPolyData.h> #include <vtkSphereSource.h> #include <vtkPolyDataReader.h>

我正在尝试使用David Doria提供的vtkOBJWriter将.vtk文件转换为.obj文件。我从中克隆了git,为CMake和make添加了生成目录,并将文件vtkOBJWriterExample.cxx更改为:

#include <vtkSmartPointer.h>
#include <vtkPolyData.h>
#include <vtkSphereSource.h>
#include <vtkPolyDataReader.h>

#include "vtkOBJWriter.h"

int main (int argc, char *argv[])
{
  vtkSmartPointer<vtkPolyData> input;
  std::string outputFilename;

  // Verify command line arguments
  if(argc > 1) // Use the command line arguments
    {
    if(argc != 3)
      {
      std::cout << "Required arguments: InputFilename.vtp OutputFilename.obj" << std::endl;
      return EXIT_FAILURE;
      }
    vtkSmartPointer<vtkPolyDataReader> reader =
      vtkSmartPointer<vtkPolyDataReader>::New();
    reader->SetFileName(argv[1]);
    reader->Update();

    input = reader->GetOutput();

    outputFilename = argv[2];

    }
  else
    {
    outputFilename = "output.obj";
    vtkSmartPointer<vtkSphereSource> sphereSource =
      vtkSmartPointer<vtkSphereSource>::New();
    sphereSource->Update();
    input->ShallowCopy(sphereSource->GetOutput());
    }

  vtkSmartPointer<vtkOBJWriter> writer = 
      vtkSmartPointer<vtkOBJWriter>::New();

  writer->SetInput(input);
  writer->SetFileName(outputFilename.c_str());
  writer->Update();

  return EXIT_SUCCESS;
}
这似乎与数据目录中car.vtp的格式不匹配,但我认为我做了适当的更改(使用vtkPolyDataReader.h的格式而不是vtkxmlpydatareader.h)。我不知道为什么没有输出文件


我没有收到任何错误消息。

这是一个目录问题(我的命令行参数指向了错误的目录)。本周我将进行测试,但是:您没有任何错误消息吗?您的程序是否有权在此目录var/www/labvtk/labvtk/中写入?当您想从vtkSphereSource写入数据时,它能工作吗?Marcassin可能在某个地方-尝试从其他目录运行它。并使用进行测试,以查看是否会生成输出文件。这两个目录中都不应该有不写入文件的代码路径,因此,如果您在正确的目录中查找,则必须是非VTK导致您的问题(如权限等)。您好,它现在可以工作了,谢谢。这是一个非常愚蠢的目录问题。我的命令行参数不正确,应该是sudo。/vtkobjwritereExample trytry1.vtk comeOn。obj@ThinkFlow请添加一个答案来解释这一点,而不仅仅是一个评论,这样我们就可以接受它来“结束”这个问题。此外,在这种情况下,您不需要“sudo”。
# vtk DataFile Version 3.0
vtk output
ASCII
DATASET POLYDATA
FIELD FieldData 3
group_id 1 1 int
0 
base_index 1 3 int
0 0 0 
avtOriginalBounds 1 6 double
-10 10 -10 10 -10 10 
POINTS 14387 float
-5.10204 -2.65306 -9.69246 -5.10204 -2.75294 -9.59184 -5.37199 -2.65306 -9.59184 

...

POLYGONS 28256 113024
3 0 1 2 

...

POINT_DATA 14387
SCALARS hardyglobal float
LOOKUP_TABLE default
3.4926 3.4926 3.4926 3.4926 3.4926 3.4926 3.4926 3.4926 3.4926 

...