如何子类VTKACTOR
how to subclass vtkActor?
我正在尝试为VTKACTOR类子类。但是我的班级一直遇到错误"对`vtkintralatticeObject :: new()的未定义引用
我找到了这个链接。我尝试了它,但我得到了"对vtkintralatticeObject :: vtkintralatticeObject()的不确定引用"。我也不是100%确信这是必经之路。我设法获得了以下示例进行工作。因此,我很难理解与我的代码有什么不同。
所以这是我的代码类。
vtkintralatticeObject.h
#ifndef VTKINTRALATTICEOBJECT_H
#define VTKINTRALATTICEOBJECT_H
#include <vtkSmartPointer.h>
#include <vtkRenderer.h>
#include <vtkObjectFactory.h>
#include <vtkRenderingCoreModule.h>
#include <vtkProperty.h>
#include <string.h>
#include <vtkActor.h>
class VTKRENDERINGCORE_EXPORT vtkIntraLatticeObject : public vtkActor
{
public:
vtkTypeMacro(vtkIntraLatticeObject, vtkActor);
static vtkIntraLatticeObject* New();
int assignID();
std::string getObjectTypeName();
protected:
int ID;
static int intralatticeActorCounter;
vtkActor* Device;
vtkIntraLatticeObject();
~vtkIntraLatticeObject();
};
#endif
vtkintralatticeObject.cc
#include "vtkIntraLatticeObject.h"
vtkStandardNewMacro(vtkIntraLatticeObject);
int vtkIntraLatticeObject::intralatticeActorCounter = 0;
vtkIntraLatticeObject::vtkIntraLatticeObject()
{
int ID = -1;
this -> Device = vtkActor::New();
}
vtkIntraLatticeObject::~vtkIntraLatticeObject()
{
this -> Device -> Delete();
}
int vtkIntraLatticeObject::assignID()
{
ID = intralatticeActorCounter;
intralatticeActorCounter++;
return ID;
}
std::string vtkIntraLatticeObject::getObjectTypeName()
{
return "generic intralattice Object";
}
事实证明这是我的cmake文件,我没有做递归的地球。该文件位于下面的两层。因此,当编译器运行时,它无法找到.cc文件。
我唯一要补充的是VTKACTOR是一个抽象类。因此,实际上没有实现几个功能。因此,当我尝试显示vtkactor时,它是看不见的。通过将VTKopenglactor而不是VTKACTOR或实现丢失的函数来解决。
相关文章:
- 继承期间显示未知行为的子类
- 通过指向指针数组的指针访问子类的属性
- 从父类方法返回子类对象
- c++, 在子类中,如何在没有对象的情况下访问父类的方法?
- 将父类对象强制转换为子类的问题
- 避免在C++中重复子类定义
- 将QOpenGLWidget子类转换为使用Metal而不是OpenGL的子类是否可行?
- 如何初始化矢量的模板化子类
- C++ 继承:将子类传递给需要基类的函数并获取子类行为
- 有没有办法按值将纯抽象类的所有子类传递给 C++ 中的函数?
- 使用子类覆盖基类中定义的函数
- 子类地址等于虚拟基类地址?
- 将子类方法声明为基类的友元
- C++子类共享变量?
- 如何检查模板专用化是否是基本模板的子类?
- 仅让特定类'Fabric'构造类'Foo'及其所有子类的实例
- 使用模板参数重载C++方法:如何使其适用于模板的子类?
- 基类中的默认析构函数禁用子类中的移动构造函数(如果有成员)
- 如何子类VTKACTOR
- 如何对 vtkActor 进行子类化