paraview源码分析 和源码跟踪

百度和google以后,发现自己很孤单,只有自己在研究paraview源码,以下只为后来人和自己有共同兴趣爱好的人共勉之。qq:569979266.lost&last

如果你对paraview的架构毫无头绪,建议你可以将pqPipelineApp设为启动项,然后逐步跟踪

paraview源码分析 和源码跟踪_第1张图片

ob->createFilter("filters", "Clip", wavelet);
  /// Called when the action is triggered.

  virtual void onTriggered(const QString& group, const QString& name)
    { pqSourcesMenuReaction::createSource(group, name); }

QObject::connect(
    menuManager, SIGNAL(triggered(const QString&, const QString&)),
    this, SLOT(onTriggered(const QString&, const QString&)));

pqSourcesMenuReaction

void pqParaViewMenuBuilders::buildSourcesMenu(QMenu&  menu,

void pqObjectInspectorWidget::accept()

void pqObjectPanel::accept()

void pqProxy::setModifiedState(ModifiedState modified)

QObject::connect(this->CurrentPanel->referenceProxy(),
      SIGNAL(modifiedStateChanged(pqServerManagerModelItem*)),
      this, SLOT(updateAcceptState()));

//-----------------------------------------------------------------------------
void pqObjectInspectorWidget::updateAcceptState()

//-----------------------------------------------------------------------------
void pqObjectInspectorWidget::canAccept(bool status)

this->connect(this->AcceptButton,
                  SIGNAL(clicked()),
                  applyPropertiesManager,
                  SLOT(applyProperties())); 绑定apply按钮一个事件 applyProperties()按下执行

void pqApplyPropertiesManager::applyProperties()

this->connect(applyPropertiesManager, 继续执行 accept()
                  SIGNAL(apply()),
                  this,
                  SLOT(accept()));

//-----------------------------------------------------------------------------
void pqPipelineFilter::hideInputIfRequired(pqView* view)

//-----------------------------------------------------------------------------
void pqObjectInspectorWidget::show(pqPipelineSource* source)

//-----------------------------------------------------------------------------
void pqObjectInspectorWidget::accept()

//-----------------------------------------------------------------------------
/// accept the changes made to the properties
/// changes will be propogated down to the server manager
void pqProxyPanel::accept()
{


//-----------------------------------------------------------------------------
void pqPropertyManager::accept()
{

vtkSMProxy* vtkSMSessionProxyManager::NewProxy(vtkPVXMLElement* pelement,
                                        const char* groupname,
                                        const char* proxyname,
                                        const char* subProxyName)
{

object = vtkInstantiator::CreateInstance(cname.str().c_str());


//----------------------------------------------------------------------------
vtkObject* vtkInstantiator::CreateInstance(const char* className)
{
  CreateFunction function = vtkInstantiator::CreatorTable->Find(className);  函数指针
  if(function) { return function(); }
  return 0;
}

vtkInstantiator::RegisterInstantiator("vtkCutter", vtkInstantiatorvtkCutterNew);注册 函数指针
这样调用的时候可以直接通过类名,调用new 函数

vtkClientServerStream

UpdateVTKObjects

UpdateVTKObjects

vtkClientServerInterpreter


//-----------------------------------------------------------------------------
pqPipelineSource* pqObjectBuilder::createFilter(
  const QString& group, const QString& name,
  QMap > namedInputs,

你可能感兴趣的:(算法库--VTK)