You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.3 KiB
C++

#include "FITKCFDPostGlyph.h"
#include "FITKAlgGlyph.h"
#include "FITK_Kernel/FITKAppFramework/FITKAppFramework.h"
#include "FITK_Kernel/FITKAppFramework/FITKGlobalData.h"
#include "FITK_Interface/FITKInterfaceCFDPost/FITKCFDPostData.h"
#include "FITK_Interface/FITKInterfaceCFDPost/FITKCFDPost3DManager.h"
#include <vtkDataSetMapper.h>
namespace Interface
{
FITKCFDPostGlyph::FITKCFDPostGlyph(int parentID)
{
_CFDPostParentID = parentID;
Interface::FITKCFDPost3DManager* dataManger = FITKAPP->getGlobalData()->getPostData<Interface::FITKCFDPostData>()->getPostDataManager();
if (dataManger == nullptr)return;
Interface::FITKAbstractCFDPostData* parentData = dataManger->getDataByID(_CFDPostParentID);
if (parentData == nullptr)return;
_glyphAlg = FITKAlgGlyph::New();
_glyphAlg->SetInputConnection(parentData->getOutputPort());
vtkDataSetMapper* mapper = vtkDataSetMapper::New();
mapper->SetInputConnection(_glyphAlg->GetOutputPort());
_mappers.append(mapper);
}
FITKCFDPostGlyph::~FITKCFDPostGlyph()
{
if (_glyphAlg) {
_glyphAlg->Delete();
_glyphAlg = nullptr;
}
}
FITKPostDataType FITKCFDPostGlyph::getPostDataType()
{
return FITKPostDataType::Post_Glyph;
}
vtkDataSet* FITKCFDPostGlyph::getOutput()
{
if (_glyphAlg == nullptr)return nullptr;
return _glyphAlg->GetOutput();
}
vtkAlgorithmOutput* FITKCFDPostGlyph::getOutputPort()
{
if (_glyphAlg == nullptr)return nullptr;
return _glyphAlg->GetOutputPort();
}
void FITKCFDPostGlyph::update()
{
if (_glyphAlg == nullptr)return;
_glyphAlg->Modified();
_glyphAlg->setvectorName(_vectorName);
_glyphAlg->settipResolution(_tipResolution);
_glyphAlg->settipRadius(_tipRadius);
_glyphAlg->settipLength(_tipLength);
_glyphAlg->setshaftResolution(_shaftResolution);
_glyphAlg->setshaftRadius(_shaftRadius);
_glyphAlg->setscaleFactor(_scaleFactor);
_glyphAlg->setpointDataUsed(_pointDataUsed);
_glyphAlg->setpointNum(_pointNum);
_glyphAlg->setmaxNumber(_maxNumber);
_glyphAlg->setscaleMode(_scaleMode);
_glyphAlg->Update();
FITKAbstractCFDPostData::update();
}
}