mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
PV3blockMeshReader - added display of curvedEdges
This commit is contained in:
@ -1,5 +0,0 @@
|
||||
vtkPV3FoamBlockMesh.C
|
||||
vtkPV3FoamBlockMeshConvert.C
|
||||
vtkPV3FoamBlockMeshUtils.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libvtkPV3FoamBlockMesh
|
||||
@ -7,6 +7,6 @@ vtkPV3FoamMeshSet.C
|
||||
vtkPV3FoamMeshVolume.C
|
||||
vtkPV3FoamMeshZone.C
|
||||
vtkPV3FoamUpdateInfo.C
|
||||
vtkPV3FoamUtilities.C
|
||||
vtkPV3FoamUtils.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libvtkPV3Foam
|
||||
|
||||
@ -45,7 +45,7 @@ SourceFiles
|
||||
vtkPV3FoamPoints.H
|
||||
vtkPV3FoamUpdateInfo.C
|
||||
vtkPV3FoamUpdateInfoFields.H
|
||||
vtkPV3FoamUtilities.C
|
||||
vtkPV3FoamUtils.C
|
||||
vtkPV3FoamVolFields.H
|
||||
vtkPV3FoamAddToSelection.H
|
||||
|
||||
@ -315,7 +315,7 @@ class vtkPV3Foam
|
||||
vtkDataSet* dataset,
|
||||
const partInfo&,
|
||||
const label datasetNo,
|
||||
const string& datasetName
|
||||
const std::string& datasetName
|
||||
);
|
||||
|
||||
// Convenience method use to convert the readers from VTK 5
|
||||
|
||||
@ -77,7 +77,7 @@ void Foam::vtkPV3Foam::AddToBlock
|
||||
vtkDataSet* dataset,
|
||||
const partInfo& selector,
|
||||
const label datasetNo,
|
||||
const string& datasetName
|
||||
const std::string& datasetName
|
||||
)
|
||||
{
|
||||
const int blockNo = selector.block();
|
||||
@ -2,7 +2,7 @@
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
set -x
|
||||
|
||||
rm -rf PV3FoamBlockMeshReader/Make
|
||||
wclean libso vtkPV3FoamBlockMesh
|
||||
rm -rf PV3blockMeshReader/Make
|
||||
wclean libso vtkPV3blockMesh
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
@ -6,9 +6,9 @@ if [ -d "$ParaView_DIR" -a -r "$ParaView_DIR" ]
|
||||
then
|
||||
case "$ParaView_VERSION" in
|
||||
3*)
|
||||
wmake libso vtkPV3FoamBlockMesh
|
||||
wmake libso vtkPV3blockMesh
|
||||
(
|
||||
cd PV3FoamBlockMeshReader
|
||||
cd PV3blockMeshReader
|
||||
mkdir -p Make/$WM_OPTIONS > /dev/null 2>&1
|
||||
cd Make/$WM_OPTIONS
|
||||
cmake ../..
|
||||
@ -19,7 +19,7 @@ LINK_DIRECTORIES(
|
||||
INCLUDE_DIRECTORIES(
|
||||
$ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude
|
||||
$ENV{WM_PROJECT_DIR}/src/meshing/blockMesh/lnInclude
|
||||
${PROJECT_SOURCE_DIR}/../vtkPV3FoamBlockMesh
|
||||
${PROJECT_SOURCE_DIR}/../vtkPV3blockMesh
|
||||
)
|
||||
|
||||
ADD_DEFINITIONS(
|
||||
@ -35,22 +35,22 @@ SET(
|
||||
|
||||
# Build the server-side plugin
|
||||
ADD_PARAVIEW_PLUGIN(
|
||||
PV3FoamBlockMeshReader_SM "1.0"
|
||||
SERVER_MANAGER_XML PV3FoamBlockMeshReader_SM.xml
|
||||
SERVER_MANAGER_SOURCES vtkPV3FoamBlockMeshReader.cxx
|
||||
PV3blockMeshReader_SM "1.0"
|
||||
SERVER_MANAGER_XML PV3blockMeshReader_SM.xml
|
||||
SERVER_MANAGER_SOURCES vtkPV3blockMeshReader.cxx
|
||||
)
|
||||
|
||||
# Build the client-side plugin
|
||||
ADD_PARAVIEW_PLUGIN(
|
||||
PV3FoamBlockMeshReader
|
||||
PV3blockMeshReader
|
||||
"1.0"
|
||||
GUI_RESOURCES PV3FoamBlockMeshReader.qrc
|
||||
GUI_RESOURCES PV3blockMeshReader.qrc
|
||||
)
|
||||
|
||||
TARGET_LINK_LIBRARIES(
|
||||
PV3FoamBlockMeshReader_SM
|
||||
PV3blockMeshReader_SM
|
||||
OpenFOAM
|
||||
blockMesh
|
||||
vtkPV3FoamBlockMesh
|
||||
vtkPV3blockMesh
|
||||
)
|
||||
#-----------------------------------------------------------------------------
|
||||
@ -1,5 +1,5 @@
|
||||
<RCC>
|
||||
<qresource prefix="/ParaViewResources" >
|
||||
<file>PV3FoamBlockMeshReader.xml</file>
|
||||
<file>PV3blockMeshReader.xml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
@ -1,5 +1,5 @@
|
||||
<ParaViewReaders>
|
||||
<Reader name="PV3FoamBlockMeshReader"
|
||||
<Reader name="PV3blockMeshReader"
|
||||
extensions="blockMesh"
|
||||
file_description="OpenFOAM blockMesh reader">
|
||||
</Reader>
|
||||
@ -1,8 +1,8 @@
|
||||
<ServerManagerConfiguration>
|
||||
<ProxyGroup name="sources">
|
||||
<SourceProxy
|
||||
name="PV3FoamBlockMeshReader"
|
||||
class="vtkPV3FoamBlockMeshReader">
|
||||
name="PV3blockMeshReader"
|
||||
class="vtkPV3blockMeshReader">
|
||||
|
||||
<!-- File name - compulsory -->
|
||||
<StringVectorProperty
|
||||
@ -55,7 +55,7 @@
|
||||
</StringVectorProperty>
|
||||
<StringVectorProperty
|
||||
name="PartStatus"
|
||||
label="block numbers"
|
||||
label="Blocks"
|
||||
command="SetPartArrayStatus"
|
||||
number_of_elements="0"
|
||||
repeat_command="1"
|
||||
@ -70,6 +70,29 @@
|
||||
</ArraySelectionDomain>
|
||||
</StringVectorProperty>
|
||||
|
||||
<!-- Available Parts (blocks) array -->
|
||||
<StringVectorProperty
|
||||
name="CurvedEdgesArrayInfo"
|
||||
information_only="1">
|
||||
<ArraySelectionInformationHelper attribute_name="CurvedEdges"/>
|
||||
</StringVectorProperty>
|
||||
<StringVectorProperty
|
||||
name="CurvedEdgesStatus"
|
||||
label="Curved Edges"
|
||||
command="SetCurvedEdgesArrayStatus"
|
||||
number_of_elements="0"
|
||||
repeat_command="1"
|
||||
number_of_elements_per_command="2"
|
||||
element_types="2 0"
|
||||
information_property="CurvedEdgesArrayInfo"
|
||||
animateable="0">
|
||||
<ArraySelectionDomain name="array_list">
|
||||
<RequiredProperties>
|
||||
<Property name="CurvedEdgesArrayInfo" function="ArrayList"/>
|
||||
</RequiredProperties>
|
||||
</ArraySelectionDomain>
|
||||
</StringVectorProperty>
|
||||
|
||||
</SourceProxy>
|
||||
</ProxyGroup>
|
||||
</ServerManagerConfiguration>
|
||||
@ -1,7 +1,7 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: Visualization Toolkit
|
||||
Module: $RCSfile: vtkPV3FoamBlockMeshReader.cxx,v $
|
||||
Module: $RCSfile: vtkPV3blockMeshReader.cxx,v $
|
||||
|
||||
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
||||
All rights reserved.
|
||||
@ -13,7 +13,7 @@
|
||||
|
||||
=========================================================================*/
|
||||
|
||||
#include "vtkPV3FoamBlockMeshReader.h"
|
||||
#include "vtkPV3blockMeshReader.h"
|
||||
|
||||
#include "pqApplicationCore.h"
|
||||
#include "pqRenderView.h"
|
||||
@ -31,12 +31,12 @@
|
||||
#include "vtkStringArray.h"
|
||||
|
||||
// Foam includes
|
||||
#include "vtkPV3FoamBlockMesh.H"
|
||||
#include "vtkPV3blockMesh.H"
|
||||
|
||||
vtkCxxRevisionMacro(vtkPV3FoamBlockMeshReader, "$Revision: 1.5$");
|
||||
vtkStandardNewMacro(vtkPV3FoamBlockMeshReader);
|
||||
vtkCxxRevisionMacro(vtkPV3blockMeshReader, "$Revision: 1.5$");
|
||||
vtkStandardNewMacro(vtkPV3blockMeshReader);
|
||||
|
||||
vtkPV3FoamBlockMeshReader::vtkPV3FoamBlockMeshReader()
|
||||
vtkPV3blockMeshReader::vtkPV3blockMeshReader()
|
||||
{
|
||||
Debug = 0;
|
||||
vtkDebugMacro(<<"Constructor");
|
||||
@ -50,25 +50,33 @@ vtkPV3FoamBlockMeshReader::vtkPV3FoamBlockMeshReader()
|
||||
UpdateGUI = 0;
|
||||
|
||||
PartSelection = vtkDataArraySelection::New();
|
||||
CurvedEdgesSelection = vtkDataArraySelection::New();
|
||||
|
||||
// Setup the selection callback to modify this object when an array
|
||||
// selection is changed.
|
||||
SelectionObserver = vtkCallbackCommand::New();
|
||||
SelectionObserver->SetCallback
|
||||
(
|
||||
&vtkPV3FoamBlockMeshReader::SelectionModifiedCallback
|
||||
&vtkPV3blockMeshReader::SelectionModifiedCallback
|
||||
);
|
||||
SelectionObserver->SetClientData(this);
|
||||
|
||||
|
||||
PartSelection->AddObserver
|
||||
(
|
||||
vtkCommand::ModifiedEvent,
|
||||
this->SelectionObserver
|
||||
);
|
||||
|
||||
CurvedEdgesSelection->AddObserver
|
||||
(
|
||||
vtkCommand::ModifiedEvent,
|
||||
this->SelectionObserver
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
vtkPV3FoamBlockMeshReader::~vtkPV3FoamBlockMeshReader()
|
||||
vtkPV3blockMeshReader::~vtkPV3blockMeshReader()
|
||||
{
|
||||
vtkDebugMacro(<<"Deconstructor");
|
||||
|
||||
@ -80,15 +88,15 @@ vtkPV3FoamBlockMeshReader::~vtkPV3FoamBlockMeshReader()
|
||||
}
|
||||
|
||||
PartSelection->RemoveObserver(this->SelectionObserver);
|
||||
CurvedEdgesSelection->RemoveObserver(this->SelectionObserver);
|
||||
|
||||
SelectionObserver->Delete();
|
||||
|
||||
PartSelection->Delete();
|
||||
}
|
||||
|
||||
|
||||
// Do everything except set the output info
|
||||
int vtkPV3FoamBlockMeshReader::RequestInformation
|
||||
int vtkPV3blockMeshReader::RequestInformation
|
||||
(
|
||||
vtkInformation* vtkNotUsed(request),
|
||||
vtkInformationVector** vtkNotUsed(inputVector),
|
||||
@ -97,7 +105,7 @@ int vtkPV3FoamBlockMeshReader::RequestInformation
|
||||
{
|
||||
vtkDebugMacro(<<"RequestInformation");
|
||||
|
||||
if (Foam::vtkPV3FoamBlockMesh::debug)
|
||||
if (Foam::vtkPV3blockMesh::debug)
|
||||
{
|
||||
cout<<"REQUEST_INFORMATION\n";
|
||||
}
|
||||
@ -110,7 +118,7 @@ int vtkPV3FoamBlockMeshReader::RequestInformation
|
||||
|
||||
int nInfo = outputVector->GetNumberOfInformationObjects();
|
||||
|
||||
if (Foam::vtkPV3FoamBlockMesh::debug)
|
||||
if (Foam::vtkPV3blockMesh::debug)
|
||||
{
|
||||
cout<<"RequestInformation with " << nInfo << " item(s)\n";
|
||||
for (int infoI = 0; infoI < nInfo; ++infoI)
|
||||
@ -121,7 +129,7 @@ int vtkPV3FoamBlockMeshReader::RequestInformation
|
||||
|
||||
if (!foamData_)
|
||||
{
|
||||
foamData_ = new Foam::vtkPV3FoamBlockMesh(FileName, this);
|
||||
foamData_ = new Foam::vtkPV3blockMesh(FileName, this);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -145,7 +153,7 @@ int vtkPV3FoamBlockMeshReader::RequestInformation
|
||||
|
||||
|
||||
// Set the output info
|
||||
int vtkPV3FoamBlockMeshReader::RequestData
|
||||
int vtkPV3blockMeshReader::RequestData
|
||||
(
|
||||
vtkInformation* vtkNotUsed(request),
|
||||
vtkInformationVector** vtkNotUsed(inputVector),
|
||||
@ -169,7 +177,7 @@ int vtkPV3FoamBlockMeshReader::RequestData
|
||||
|
||||
int nInfo = outputVector->GetNumberOfInformationObjects();
|
||||
|
||||
if (Foam::vtkPV3FoamBlockMesh::debug)
|
||||
if (Foam::vtkPV3blockMesh::debug)
|
||||
{
|
||||
cout<<"RequestData with " << nInfo << " item(s)\n";
|
||||
for (int infoI = 0; infoI < nInfo; ++infoI)
|
||||
@ -186,7 +194,7 @@ int vtkPV3FoamBlockMeshReader::RequestData
|
||||
)
|
||||
);
|
||||
|
||||
if (Foam::vtkPV3FoamBlockMesh::debug)
|
||||
if (Foam::vtkPV3blockMesh::debug)
|
||||
{
|
||||
cout<< "update output with "
|
||||
<< output->GetNumberOfBlocks() << " blocks\n";
|
||||
@ -203,7 +211,7 @@ int vtkPV3FoamBlockMeshReader::RequestData
|
||||
}
|
||||
|
||||
|
||||
void vtkPV3FoamBlockMeshReader::updatePointNumbersView(const bool show)
|
||||
void vtkPV3blockMeshReader::updatePointNumbersView(const bool show)
|
||||
{
|
||||
pqApplicationCore* appCore = pqApplicationCore::instance();
|
||||
|
||||
@ -224,7 +232,7 @@ void vtkPV3FoamBlockMeshReader::updatePointNumbersView(const bool show)
|
||||
}
|
||||
|
||||
|
||||
void vtkPV3FoamBlockMeshReader::PrintSelf(ostream& os, vtkIndent indent)
|
||||
void vtkPV3blockMeshReader::PrintSelf(ostream& os, vtkIndent indent)
|
||||
{
|
||||
vtkDebugMacro(<<"PrintSelf");
|
||||
|
||||
@ -239,35 +247,39 @@ void vtkPV3FoamBlockMeshReader::PrintSelf(ostream& os, vtkIndent indent)
|
||||
// ----------------------------------------------------------------------
|
||||
// Parts selection list control
|
||||
|
||||
vtkDataArraySelection* vtkPV3FoamBlockMeshReader::GetPartSelection()
|
||||
vtkDataArraySelection* vtkPV3blockMeshReader::GetPartSelection()
|
||||
{
|
||||
vtkDebugMacro(<<"GetPartSelection");
|
||||
return PartSelection;
|
||||
}
|
||||
|
||||
|
||||
int vtkPV3FoamBlockMeshReader::GetNumberOfPartArrays()
|
||||
int vtkPV3blockMeshReader::GetNumberOfPartArrays()
|
||||
{
|
||||
vtkDebugMacro(<<"GetNumberOfPartArrays");
|
||||
return PartSelection->GetNumberOfArrays();
|
||||
}
|
||||
|
||||
|
||||
const char* vtkPV3FoamBlockMeshReader::GetPartArrayName(int index)
|
||||
const char* vtkPV3blockMeshReader::GetPartArrayName(int index)
|
||||
{
|
||||
vtkDebugMacro(<<"GetPartArrayName");
|
||||
return PartSelection->GetArrayName(index);
|
||||
}
|
||||
|
||||
|
||||
int vtkPV3FoamBlockMeshReader::GetPartArrayStatus(const char* name)
|
||||
int vtkPV3blockMeshReader::GetPartArrayStatus(const char* name)
|
||||
{
|
||||
vtkDebugMacro(<<"GetPartArrayStatus");
|
||||
return PartSelection->ArrayIsEnabled(name);
|
||||
}
|
||||
|
||||
|
||||
void vtkPV3FoamBlockMeshReader::SetPartArrayStatus(const char* name, int status)
|
||||
void vtkPV3blockMeshReader::SetPartArrayStatus
|
||||
(
|
||||
const char* name,
|
||||
int status
|
||||
)
|
||||
{
|
||||
vtkDebugMacro(<<"SetPartArrayStatus");
|
||||
if (status)
|
||||
@ -282,8 +294,57 @@ void vtkPV3FoamBlockMeshReader::SetPartArrayStatus(const char* name, int status)
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// CurvedEdges selection list control
|
||||
|
||||
void vtkPV3FoamBlockMeshReader::SelectionModifiedCallback
|
||||
vtkDataArraySelection* vtkPV3blockMeshReader::GetCurvedEdgesSelection()
|
||||
{
|
||||
vtkDebugMacro(<<"GetCurvedEdgesSelection");
|
||||
return CurvedEdgesSelection;
|
||||
}
|
||||
|
||||
|
||||
int vtkPV3blockMeshReader::GetNumberOfCurvedEdgesArrays()
|
||||
{
|
||||
vtkDebugMacro(<<"GetNumberOfCurvedEdgesArrays");
|
||||
return CurvedEdgesSelection->GetNumberOfArrays();
|
||||
}
|
||||
|
||||
|
||||
const char* vtkPV3blockMeshReader::GetCurvedEdgesArrayName(int index)
|
||||
{
|
||||
vtkDebugMacro(<<"GetCurvedEdgesArrayName");
|
||||
return CurvedEdgesSelection->GetArrayName(index);
|
||||
}
|
||||
|
||||
|
||||
int vtkPV3blockMeshReader::GetCurvedEdgesArrayStatus(const char* name)
|
||||
{
|
||||
vtkDebugMacro(<<"GetCurvedEdgesArrayStatus");
|
||||
return CurvedEdgesSelection->ArrayIsEnabled(name);
|
||||
}
|
||||
|
||||
|
||||
void vtkPV3blockMeshReader::SetCurvedEdgesArrayStatus
|
||||
(
|
||||
const char* name,
|
||||
int status
|
||||
)
|
||||
{
|
||||
vtkDebugMacro(<<"SetCurvedEdgesArrayStatus");
|
||||
if (status)
|
||||
{
|
||||
CurvedEdgesSelection->EnableArray(name);
|
||||
}
|
||||
else
|
||||
{
|
||||
CurvedEdgesSelection->DisableArray(name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
void vtkPV3blockMeshReader::SelectionModifiedCallback
|
||||
(
|
||||
vtkObject*,
|
||||
unsigned long,
|
||||
@ -291,18 +352,18 @@ void vtkPV3FoamBlockMeshReader::SelectionModifiedCallback
|
||||
void*
|
||||
)
|
||||
{
|
||||
static_cast<vtkPV3FoamBlockMeshReader*>(clientdata)->SelectionModified();
|
||||
static_cast<vtkPV3blockMeshReader*>(clientdata)->SelectionModified();
|
||||
}
|
||||
|
||||
|
||||
void vtkPV3FoamBlockMeshReader::SelectionModified()
|
||||
void vtkPV3blockMeshReader::SelectionModified()
|
||||
{
|
||||
vtkDebugMacro(<<"SelectionModified");
|
||||
Modified();
|
||||
}
|
||||
|
||||
|
||||
int vtkPV3FoamBlockMeshReader::FillOutputPortInformation
|
||||
int vtkPV3blockMeshReader::FillOutputPortInformation
|
||||
(
|
||||
int port,
|
||||
vtkInformation* info
|
||||
@ -1,7 +1,7 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: Visualization Toolkit
|
||||
Module: $RCSfile: vtkPV3FoamBlockMeshReader.h,v $
|
||||
Module: $RCSfile: vtkPV3blockMeshReader.h,v $
|
||||
|
||||
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
||||
All rights reserved.
|
||||
@ -12,18 +12,18 @@
|
||||
PURPOSE. See the above copyright notice for more information.
|
||||
|
||||
=========================================================================*/
|
||||
// .NAME vtkPV3FoamBlockMeshReader - reads a dataset in OpenFOAM bockMesh format
|
||||
// .NAME vtkPV3blockMeshReader - reads a dataset in OpenFOAM bockMesh format
|
||||
// .SECTION Description
|
||||
// vtkPV3FoamBlockMeshReader creates an multiblock dataset.
|
||||
// vtkPV3blockMeshReader creates an multiblock dataset.
|
||||
// It uses the OpenFOAM infrastructure (blockMesh).
|
||||
|
||||
#ifndef __vtkPV3FoamBlockMeshReader_h
|
||||
#define __vtkPV3FoamBlockMeshReader_h
|
||||
#ifndef __vtkPV3blockMeshReader_h
|
||||
#define __vtkPV3blockMeshReader_h
|
||||
|
||||
// Foam forward declarations
|
||||
namespace Foam
|
||||
{
|
||||
class vtkPV3FoamBlockMesh;
|
||||
class vtkPV3blockMesh;
|
||||
}
|
||||
|
||||
// VTK includes
|
||||
@ -34,15 +34,15 @@ class vtkDataArraySelection;
|
||||
class vtkCallbackCommand;
|
||||
|
||||
|
||||
class VTK_IO_EXPORT vtkPV3FoamBlockMeshReader
|
||||
class VTK_IO_EXPORT vtkPV3blockMeshReader
|
||||
:
|
||||
public vtkMultiBlockDataSetAlgorithm
|
||||
{
|
||||
public:
|
||||
vtkTypeRevisionMacro(vtkPV3FoamBlockMeshReader,vtkMultiBlockDataSetAlgorithm);
|
||||
vtkTypeRevisionMacro(vtkPV3blockMeshReader,vtkMultiBlockDataSetAlgorithm);
|
||||
void PrintSelf(ostream&, vtkIndent);
|
||||
|
||||
static vtkPV3FoamBlockMeshReader* New();
|
||||
static vtkPV3blockMeshReader* New();
|
||||
|
||||
// Description:
|
||||
// Set/Get the filename.
|
||||
@ -63,10 +63,18 @@ public:
|
||||
// Parts (blocks) selection list control
|
||||
vtkDataArraySelection* GetPartSelection();
|
||||
int GetNumberOfPartArrays();
|
||||
int GetPartArrayStatus(const char* name);
|
||||
void SetPartArrayStatus(const char* name, int status);
|
||||
int GetPartArrayStatus(const char*);
|
||||
void SetPartArrayStatus(const char*, int status);
|
||||
const char* GetPartArrayName(int index);
|
||||
|
||||
// Description:
|
||||
// Parts (blocks) selection list control
|
||||
vtkDataArraySelection* GetCurvedEdgesSelection();
|
||||
int GetNumberOfCurvedEdgesArrays();
|
||||
int GetCurvedEdgesArrayStatus(const char*);
|
||||
void SetCurvedEdgesArrayStatus(const char*, int status);
|
||||
const char* GetCurvedEdgesArrayName(int index);
|
||||
|
||||
// Description:
|
||||
// Callback registered with the SelectionObserver
|
||||
// for all the selection lists
|
||||
@ -84,10 +92,10 @@ public:
|
||||
protected:
|
||||
|
||||
//- Construct null
|
||||
vtkPV3FoamBlockMeshReader();
|
||||
vtkPV3blockMeshReader();
|
||||
|
||||
//- Destructor
|
||||
~vtkPV3FoamBlockMeshReader();
|
||||
~vtkPV3blockMeshReader();
|
||||
|
||||
//- Return information about mesh, times, etc without loading anything
|
||||
virtual int RequestInformation
|
||||
@ -116,10 +124,10 @@ protected:
|
||||
private:
|
||||
|
||||
//- Disallow default bitwise copy construct
|
||||
vtkPV3FoamBlockMeshReader(const vtkPV3FoamBlockMeshReader&);
|
||||
vtkPV3blockMeshReader(const vtkPV3blockMeshReader&);
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const vtkPV3FoamBlockMeshReader&);
|
||||
void operator=(const vtkPV3blockMeshReader&);
|
||||
|
||||
//- Add/remove point numbers to/from the view
|
||||
void updatePointNumbersView(const bool show);
|
||||
@ -131,8 +139,10 @@ private:
|
||||
|
||||
vtkDataArraySelection* PartSelection;
|
||||
|
||||
vtkDataArraySelection* CurvedEdgesSelection;
|
||||
|
||||
//BTX
|
||||
Foam::vtkPV3FoamBlockMesh* foamData_;
|
||||
Foam::vtkPV3blockMesh* foamData_;
|
||||
//ETX
|
||||
};
|
||||
|
||||
@ -0,0 +1,5 @@
|
||||
vtkPV3blockMesh.C
|
||||
vtkPV3blockMeshConvert.C
|
||||
vtkPV3blockMeshUtils.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libvtkPV3blockMesh
|
||||
@ -7,7 +7,7 @@ EXE_INC = \
|
||||
-I$(ParaView_INST_DIR)/VTK/Common \
|
||||
-I$(ParaView_INST_DIR)/VTK/Filtering \
|
||||
-I$(ParaView_INST_DIR)/VTK/Rendering \
|
||||
-I../PV3FoamBlockMeshReader
|
||||
-I../PV3blockMeshReader
|
||||
|
||||
LIB_LIBS = \
|
||||
-lmeshTools \
|
||||
@ -23,7 +23,7 @@ License
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
InClass
|
||||
vtkPV3FoamBlockMesh
|
||||
vtkPV3blockMesh
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -24,13 +24,14 @@ License
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "vtkPV3FoamBlockMesh.H"
|
||||
#include "vtkPV3FoamBlockMeshReader.h"
|
||||
#include "vtkPV3blockMesh.H"
|
||||
#include "vtkPV3blockMeshReader.h"
|
||||
|
||||
// Foam includes
|
||||
#include "blockMesh.H"
|
||||
#include "Time.H"
|
||||
#include "patchZones.H"
|
||||
#include "OStringStream.H"
|
||||
|
||||
// VTK includes
|
||||
#include "vtkDataArraySelection.h"
|
||||
@ -41,82 +42,46 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
defineTypeNameAndDebug(Foam::vtkPV3FoamBlockMesh, 0);
|
||||
defineTypeNameAndDebug(Foam::vtkPV3blockMesh, 0);
|
||||
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::resetCounters()
|
||||
void Foam::vtkPV3blockMesh::resetCounters()
|
||||
{
|
||||
// Reset mesh part ids and sizes
|
||||
partInfoBlocks_.reset();
|
||||
partInfoEdges_.reset();
|
||||
partInfoCorners_.reset();
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::updateMeshPartsStatus()
|
||||
void Foam::vtkPV3blockMesh::updateInfoBlocks()
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<beg> Foam::vtkPV3FoamBlockMesh::updateMeshPartsStatus" << endl;
|
||||
}
|
||||
|
||||
vtkDataArraySelection* selection = reader_->GetPartSelection();
|
||||
label nElem = selection->GetNumberOfArrays();
|
||||
|
||||
if (partStatus_.size() != nElem)
|
||||
{
|
||||
partStatus_.setSize(nElem);
|
||||
partStatus_ = false;
|
||||
}
|
||||
|
||||
// this needs fixing if we wish to re-use the datasets
|
||||
partDataset_.setSize(nElem);
|
||||
partDataset_ = -1;
|
||||
|
||||
// Read the selected mesh parts (blocks only) and add to list
|
||||
forAll(partStatus_, partId)
|
||||
{
|
||||
const int setting = selection->GetArraySetting(partId);
|
||||
|
||||
if (partStatus_[partId] != setting)
|
||||
{
|
||||
partStatus_[partId] = setting;
|
||||
}
|
||||
|
||||
if (debug)
|
||||
{
|
||||
Info<< " part[" << partId << "] = "
|
||||
<< partStatus_[partId]
|
||||
<< " : " << selection->GetArrayName(partId) << endl;
|
||||
}
|
||||
}
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<end> Foam::vtkPV3FoamBlockMesh::updateMeshPartsStatus" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::updateInfoBlocks()
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<beg> Foam::vtkPV3FoamBlockMesh::updateInfoBlocks"
|
||||
Info<< "<beg> Foam::vtkPV3blockMesh::updateInfoBlocks"
|
||||
<< " [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "]" << endl;
|
||||
}
|
||||
|
||||
vtkDataArraySelection* partSelection = reader_->GetPartSelection();
|
||||
partInfoBlocks_ = partSelection->GetNumberOfArrays();
|
||||
|
||||
int nBlocks = meshPtr_->size();
|
||||
vtkDataArraySelection* selection = reader_->GetPartSelection();
|
||||
partInfoBlocks_ = selection->GetNumberOfArrays();
|
||||
|
||||
const blockMesh& blkMesh = *meshPtr_;
|
||||
const int nBlocks = blkMesh.size();
|
||||
for (int blockI = 0; blockI < nBlocks; ++blockI)
|
||||
{
|
||||
// Add blockId to GUI list
|
||||
partSelection->AddArray
|
||||
(
|
||||
Foam::name(blockI).c_str()
|
||||
);
|
||||
const blockDescriptor& blockDef = blkMesh[blockI].blockDef();
|
||||
|
||||
word partName = Foam::name(blockI);
|
||||
|
||||
// append the (optional) zone name
|
||||
if (!blockDef.zoneName().empty())
|
||||
{
|
||||
partName += " - " + blockDef.zoneName();
|
||||
}
|
||||
|
||||
// Add blockId and zoneName to GUI list
|
||||
selection->AddArray(partName.c_str());
|
||||
}
|
||||
|
||||
partInfoBlocks_ += nBlocks;
|
||||
@ -124,30 +89,69 @@ void Foam::vtkPV3FoamBlockMesh::updateInfoBlocks()
|
||||
if (debug)
|
||||
{
|
||||
// just for debug info
|
||||
getSelectedArrayEntries(partSelection);
|
||||
getSelectedArrayEntries(selection);
|
||||
|
||||
Info<< "<end> Foam::vtkPV3FoamBlockMesh::updateInfoBlocks" << endl;
|
||||
Info<< "<end> Foam::vtkPV3blockMesh::updateInfoBlocks" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3blockMesh::updateInfoEdges()
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<beg> Foam::vtkPV3blockMesh::updateInfoEdges"
|
||||
<< " [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "]" << endl;
|
||||
}
|
||||
|
||||
vtkDataArraySelection* selection = reader_->GetCurvedEdgesSelection();
|
||||
partInfoEdges_ = selection->GetNumberOfArrays();
|
||||
|
||||
const blockMesh& blkMesh = *meshPtr_;
|
||||
const curvedEdgeList& edges = blkMesh.edges();
|
||||
|
||||
const int nEdges = edges.size();
|
||||
forAll(edges, edgeI)
|
||||
{
|
||||
OStringStream ostr;
|
||||
|
||||
ostr<< edges[edgeI].start() << ":" << edges[edgeI].end() << " - "
|
||||
<< edges[edgeI].type();
|
||||
|
||||
// Add "beg:end - type" to GUI list
|
||||
selection->AddArray(ostr.str().c_str());
|
||||
}
|
||||
|
||||
partInfoEdges_ += nEdges;
|
||||
|
||||
if (debug)
|
||||
{
|
||||
// just for debug info
|
||||
getSelectedArrayEntries(selection);
|
||||
|
||||
Info<< "<end> Foam::vtkPV3blockMesh::updateInfoEdges" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::vtkPV3FoamBlockMesh::vtkPV3FoamBlockMesh
|
||||
Foam::vtkPV3blockMesh::vtkPV3blockMesh
|
||||
(
|
||||
const char* const FileName,
|
||||
vtkPV3FoamBlockMeshReader* reader
|
||||
vtkPV3blockMeshReader* reader
|
||||
)
|
||||
:
|
||||
reader_(reader),
|
||||
dbPtr_(NULL),
|
||||
meshPtr_(NULL),
|
||||
partInfoBlocks_("block"),
|
||||
partInfoEdges_("edges"),
|
||||
partInfoCorners_("corners")
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "Foam::vtkPV3FoamBlockMesh::vtkPV3FoamBlockMesh - "
|
||||
Info<< "Foam::vtkPV3blockMesh::vtkPV3blockMesh - "
|
||||
<< FileName << endl;
|
||||
}
|
||||
|
||||
@ -208,11 +212,11 @@ Foam::vtkPV3FoamBlockMesh::vtkPV3FoamBlockMesh
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::vtkPV3FoamBlockMesh::~vtkPV3FoamBlockMesh()
|
||||
Foam::vtkPV3blockMesh::~vtkPV3blockMesh()
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<end> Foam::vtkPV3FoamBlockMesh::~vtkPV3FoamBlockMesh" << endl;
|
||||
Info<< "<end> Foam::vtkPV3blockMesh::~vtkPV3blockMesh" << endl;
|
||||
}
|
||||
|
||||
delete meshPtr_;
|
||||
@ -221,21 +225,23 @@ Foam::vtkPV3FoamBlockMesh::~vtkPV3FoamBlockMesh()
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::updateInfo()
|
||||
void Foam::vtkPV3blockMesh::updateInfo()
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<beg> Foam::vtkPV3FoamBlockMesh::updateInfo"
|
||||
Info<< "<beg> Foam::vtkPV3blockMesh::updateInfo"
|
||||
<< " [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "] " << endl;
|
||||
}
|
||||
|
||||
resetCounters();
|
||||
|
||||
vtkDataArraySelection* partSelection = reader_->GetPartSelection();
|
||||
vtkDataArraySelection* edgeSelection = reader_->GetCurvedEdgesSelection();
|
||||
|
||||
// enable 'internalMesh' on the first call
|
||||
// or preserve the enabled selections
|
||||
stringList enabledEntries;
|
||||
stringList enabledParts;
|
||||
stringList enabledEdges;
|
||||
bool firstTime = false;
|
||||
if (!partSelection->GetNumberOfArrays() && !meshPtr_)
|
||||
{
|
||||
@ -243,37 +249,42 @@ void Foam::vtkPV3FoamBlockMesh::updateInfo()
|
||||
}
|
||||
else
|
||||
{
|
||||
enabledEntries = getSelectedArrayEntries(partSelection);
|
||||
enabledParts = getSelectedArrayEntries(partSelection);
|
||||
enabledEdges = getSelectedArrayEntries(edgeSelection);
|
||||
}
|
||||
|
||||
// Clear current mesh parts list
|
||||
partSelection->RemoveAllArrays();
|
||||
edgeSelection->RemoveAllArrays();
|
||||
|
||||
// need a blockMesh
|
||||
updateFoamMesh();
|
||||
|
||||
// Update mesh parts list - add corrner points at the bottom
|
||||
// Update mesh parts list
|
||||
updateInfoBlocks();
|
||||
|
||||
// Update curved edges list
|
||||
updateInfoEdges();
|
||||
|
||||
// restore the enabled selections
|
||||
if (!firstTime)
|
||||
{
|
||||
setSelectedArrayEntries(partSelection, enabledEntries);
|
||||
setSelectedArrayEntries(partSelection, enabledParts);
|
||||
setSelectedArrayEntries(edgeSelection, enabledEdges);
|
||||
}
|
||||
|
||||
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<end> Foam::vtkPV3FoamBlockMesh::updateInfo" << endl;
|
||||
Info<< "<end> Foam::vtkPV3blockMesh::updateInfo" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::updateFoamMesh()
|
||||
void Foam::vtkPV3blockMesh::updateFoamMesh()
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<beg> Foam::vtkPV3FoamBlockMesh::updateFoamMesh" << endl;
|
||||
Info<< "<beg> Foam::vtkPV3blockMesh::updateFoamMesh" << endl;
|
||||
}
|
||||
|
||||
// Check to see if the FOAM mesh has been created
|
||||
@ -305,12 +316,12 @@ void Foam::vtkPV3FoamBlockMesh::updateFoamMesh()
|
||||
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<end> Foam::vtkPV3FoamBlockMesh::updateFoamMesh" << endl;
|
||||
Info<< "<end> Foam::vtkPV3blockMesh::updateFoamMesh" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::Update
|
||||
void Foam::vtkPV3blockMesh::Update
|
||||
(
|
||||
vtkMultiBlockDataSet* output
|
||||
)
|
||||
@ -318,7 +329,10 @@ void Foam::vtkPV3FoamBlockMesh::Update
|
||||
reader_->UpdateProgress(0.1);
|
||||
|
||||
// Set up mesh parts selection(s)
|
||||
updateMeshPartsStatus();
|
||||
updateBoolListStatus(partStatus_, reader_->GetPartSelection());
|
||||
|
||||
// Set up curved edges selection(s)
|
||||
updateBoolListStatus(edgeStatus_, reader_->GetCurvedEdgesSelection());
|
||||
|
||||
reader_->UpdateProgress(0.2);
|
||||
|
||||
@ -326,24 +340,25 @@ void Foam::vtkPV3FoamBlockMesh::Update
|
||||
updateFoamMesh();
|
||||
reader_->UpdateProgress(0.5);
|
||||
|
||||
// Convert meshes - start port0 at block=0
|
||||
// Convert mesh elemente
|
||||
int blockNo = 0;
|
||||
|
||||
convertMeshBlocks(output, blockNo);
|
||||
convertMeshCorners(output, blockNo);
|
||||
convertMeshBlocks(output, blockNo);
|
||||
convertMeshEdges(output, blockNo);
|
||||
|
||||
reader_->UpdateProgress(0.8);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::CleanUp()
|
||||
void Foam::vtkPV3blockMesh::CleanUp()
|
||||
{
|
||||
reader_->UpdateProgress(1.0);
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::renderPointNumbers
|
||||
void Foam::vtkPV3blockMesh::renderPointNumbers
|
||||
(
|
||||
vtkRenderer* renderer,
|
||||
const bool show
|
||||
@ -375,8 +390,8 @@ void Foam::vtkPV3FoamBlockMesh::renderPointNumbers
|
||||
tprop->BoldOn();
|
||||
tprop->ShadowOff();
|
||||
tprop->SetLineSpacing(1.0);
|
||||
tprop->SetFontSize(12);
|
||||
tprop->SetColor(1.0, 0.0, 0.0);
|
||||
tprop->SetFontSize(14);
|
||||
tprop->SetColor(1.0, 0.0, 1.0);
|
||||
tprop->SetJustificationToCentered();
|
||||
|
||||
// Set text to use 3-D world co-ordinates
|
||||
@ -401,7 +416,7 @@ void Foam::vtkPV3FoamBlockMesh::renderPointNumbers
|
||||
|
||||
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::PrintSelf(ostream& os, vtkIndent indent) const
|
||||
void Foam::vtkPV3blockMesh::PrintSelf(ostream& os, vtkIndent indent) const
|
||||
{
|
||||
#if 0
|
||||
os << indent << "Number of nodes: "
|
||||
@ -23,24 +23,24 @@ License
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Class
|
||||
Foam::vtkPV3FoamBlockMesh
|
||||
Foam::vtkPV3blockMesh
|
||||
|
||||
Description
|
||||
Provides a reader interface for OpenFOAM blockMesh to VTK interaction
|
||||
|
||||
SourceFiles
|
||||
vtkPV3FoamBlockMesh.C
|
||||
vtkPV3FoamBlockMeshConvert.C
|
||||
vtkPV3FoamBlockMeshUpdate.C
|
||||
vtkPV3FoamBlockMeshUtils.C
|
||||
vtkPV3blockMesh.C
|
||||
vtkPV3blockMeshConvert.C
|
||||
vtkPV3blockMeshUpdate.C
|
||||
vtkPV3blockMeshUtils.C
|
||||
|
||||
// Needed by VTK:
|
||||
vtkDataArrayTemplateImplicit.txx
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef vtkPV3FoamBlockMesh_H
|
||||
#define vtkPV3FoamBlockMesh_H
|
||||
#ifndef vtkPV3blockMesh_H
|
||||
#define vtkPV3blockMesh_H
|
||||
|
||||
// do not include legacy strstream headers
|
||||
#ifndef VTK_EXCLUDE_STRSTREAM_HEADERS
|
||||
@ -59,7 +59,7 @@ SourceFiles
|
||||
class vtkDataArraySelection;
|
||||
class vtkDataSet;
|
||||
class vtkPoints;
|
||||
class vtkPV3FoamBlockMeshReader;
|
||||
class vtkPV3blockMeshReader;
|
||||
class vtkRenderer;
|
||||
class vtkTextActor;
|
||||
class vtkMultiBlockDataSet;
|
||||
@ -80,10 +80,10 @@ class blockMesh;
|
||||
template<class Type> class List;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class vtkPV3FoamBlockMesh Declaration
|
||||
Class vtkPV3blockMesh Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class vtkPV3FoamBlockMesh
|
||||
class vtkPV3blockMesh
|
||||
{
|
||||
// Private classes
|
||||
|
||||
@ -167,8 +167,8 @@ class vtkPV3FoamBlockMesh
|
||||
|
||||
// Private Data
|
||||
|
||||
//- Access to the controlling vtkPV3FoamBlockMeshReader
|
||||
vtkPV3FoamBlockMeshReader* reader_;
|
||||
//- Access to the controlling vtkPV3blockMeshReader
|
||||
vtkPV3blockMeshReader* reader_;
|
||||
|
||||
//- Foam time control
|
||||
autoPtr<Time> dbPtr_;
|
||||
@ -179,14 +179,17 @@ class vtkPV3FoamBlockMesh
|
||||
//- Selected geometrical parts
|
||||
boolList partStatus_;
|
||||
|
||||
//- Datasets corresponding to selected geometrical pieces
|
||||
// a negative number indicates that no vtkmesh exists for this piece
|
||||
labelList partDataset_;
|
||||
//- Selected curved edges
|
||||
boolList edgeStatus_;
|
||||
|
||||
//- First instance and size of bleckMesh blocks
|
||||
// used to index into partStatus_ and partDataset_
|
||||
// used to index into partStatus_
|
||||
partInfo partInfoBlocks_;
|
||||
|
||||
//- First instance and size of CurvedEdges
|
||||
// only partially used
|
||||
partInfo partInfoEdges_;
|
||||
|
||||
//- First instance and size of block corners
|
||||
// only partially used
|
||||
partInfo partInfoCorners_;
|
||||
@ -204,7 +207,7 @@ class vtkPV3FoamBlockMesh
|
||||
vtkDataSet* dataset,
|
||||
const partInfo&,
|
||||
const label datasetNo,
|
||||
const string& datasetName
|
||||
const std::string& datasetName
|
||||
);
|
||||
|
||||
// Convenience method use to convert the readers from VTK 5
|
||||
@ -224,17 +227,24 @@ class vtkPV3FoamBlockMesh
|
||||
const partInfo&
|
||||
);
|
||||
|
||||
//- Update boolList from GUI selection
|
||||
static void updateBoolListStatus
|
||||
(
|
||||
boolList&,
|
||||
vtkDataArraySelection*
|
||||
);
|
||||
|
||||
//- Reset data counters
|
||||
void resetCounters();
|
||||
|
||||
// Update information helper functions
|
||||
|
||||
//- Update the mesh parts selected in the GUI
|
||||
void updateMeshPartsStatus();
|
||||
|
||||
//- Internal mesh info
|
||||
//- Internal block info
|
||||
void updateInfoBlocks();
|
||||
|
||||
//- block curved edges info
|
||||
void updateInfoEdges();
|
||||
|
||||
// Update helper functions
|
||||
|
||||
//- Foam mesh
|
||||
@ -245,6 +255,9 @@ class vtkPV3FoamBlockMesh
|
||||
//- mesh blocks
|
||||
void convertMeshBlocks(vtkMultiBlockDataSet*, int& blockNo);
|
||||
|
||||
//- mesh curved edges
|
||||
void convertMeshEdges(vtkMultiBlockDataSet*, int& blockNo);
|
||||
|
||||
//- mesh corners
|
||||
void convertMeshCorners(vtkMultiBlockDataSet*, int& blockNo);
|
||||
|
||||
@ -280,32 +293,32 @@ class vtkPV3FoamBlockMesh
|
||||
|
||||
|
||||
//- Disallow default bitwise copy construct
|
||||
vtkPV3FoamBlockMesh(const vtkPV3FoamBlockMesh&);
|
||||
vtkPV3blockMesh(const vtkPV3blockMesh&);
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const vtkPV3FoamBlockMesh&);
|
||||
void operator=(const vtkPV3blockMesh&);
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Static data members
|
||||
|
||||
ClassName("vtkPV3FoamBlockMesh");
|
||||
ClassName("vtkPV3blockMesh");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
vtkPV3FoamBlockMesh
|
||||
vtkPV3blockMesh
|
||||
(
|
||||
const char* const FileName,
|
||||
vtkPV3FoamBlockMeshReader* reader
|
||||
vtkPV3blockMeshReader* reader
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
|
||||
~vtkPV3FoamBlockMesh();
|
||||
~vtkPV3blockMesh();
|
||||
|
||||
|
||||
// Member Functions
|
||||
@ -26,8 +26,8 @@ Description
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "vtkPV3FoamBlockMesh.H"
|
||||
#include "vtkPV3FoamBlockMeshReader.h"
|
||||
#include "vtkPV3blockMesh.H"
|
||||
#include "vtkPV3blockMeshReader.h"
|
||||
|
||||
// Foam includes
|
||||
#include "blockMesh.H"
|
||||
@ -46,23 +46,23 @@ Description
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::convertMeshBlocks
|
||||
void Foam::vtkPV3blockMesh::convertMeshBlocks
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
vtkDataArraySelection* selection = reader_->GetPartSelection();
|
||||
partInfo& selector = partInfoBlocks_;
|
||||
selector.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
|
||||
const blockMesh& blkMesh = *meshPtr_;
|
||||
|
||||
const Foam::pointField& blockPoints = blkMesh.blockPointField();
|
||||
|
||||
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<beg> Foam::vtkPV3FoamBlockMesh::convertMeshBlocks" << endl;
|
||||
Info<< "<beg> Foam::vtkPV3blockMesh::convertMeshBlocks" << endl;
|
||||
}
|
||||
|
||||
int blockI = 0;
|
||||
@ -79,10 +79,15 @@ void Foam::vtkPV3FoamBlockMesh::convertMeshBlocks
|
||||
continue;
|
||||
}
|
||||
|
||||
const word partName = Foam::name(blockI);
|
||||
const blockDescriptor& blockDef = blkMesh[blockI].blockDef();
|
||||
word partName("block");
|
||||
|
||||
|
||||
// // append the (optional) zone name
|
||||
// if (!blockDef.zoneName().empty())
|
||||
// {
|
||||
// partName += " - " + blockDef.zoneName();
|
||||
// }
|
||||
//
|
||||
vtkUnstructuredGrid* vtkmesh = vtkUnstructuredGrid::New();
|
||||
|
||||
// Convert Foam mesh vertices to VTK
|
||||
@ -114,11 +119,14 @@ void Foam::vtkPV3FoamBlockMesh::convertMeshBlocks
|
||||
vtkmesh->SetPoints(vtkpoints);
|
||||
vtkpoints->Delete();
|
||||
|
||||
AddToBlock
|
||||
(
|
||||
output, vtkmesh, selector, datasetNo,
|
||||
selection->GetArrayName(partId)
|
||||
);
|
||||
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, partName);
|
||||
vtkmesh->Delete();
|
||||
|
||||
partDataset_[partId] = datasetNo++;
|
||||
datasetNo++;
|
||||
}
|
||||
|
||||
|
||||
@ -130,19 +138,130 @@ void Foam::vtkPV3FoamBlockMesh::convertMeshBlocks
|
||||
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<end> Foam::vtkPV3FoamBlockMesh::convertMeshBlocks" << endl;
|
||||
Info<< "<end> Foam::vtkPV3blockMesh::convertMeshBlocks" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::convertMeshCorners
|
||||
void Foam::vtkPV3blockMesh::convertMeshEdges
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
vtkDataArraySelection* selection = reader_->GetCurvedEdgesSelection();
|
||||
partInfo& selector = partInfoEdges_;
|
||||
|
||||
selector.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
|
||||
const blockMesh& blkMesh = *meshPtr_;
|
||||
const curvedEdgeList& edges = blkMesh.edges();
|
||||
|
||||
int edgeI = 0;
|
||||
|
||||
for
|
||||
(
|
||||
int partId = selector.start();
|
||||
partId < selector.end();
|
||||
++partId, ++edgeI
|
||||
)
|
||||
{
|
||||
if (!edgeStatus_[partId])
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
OStringStream ostr;
|
||||
|
||||
ostr<< edges[edgeI].start() << ":" << edges[edgeI].end() << " - "
|
||||
<< edges[edgeI].type();
|
||||
|
||||
// search each block
|
||||
forAll(blkMesh, blockI)
|
||||
{
|
||||
const blockDescriptor& blockDef = blkMesh[blockI].blockDef();
|
||||
|
||||
edgeList blkEdges = blockDef.blockShape().edges();
|
||||
|
||||
|
||||
// find the corresponding edge within the block
|
||||
|
||||
label foundEdgeI = -1;
|
||||
forAll(blkEdges, blkEdgeI)
|
||||
{
|
||||
if (edges[edgeI].compare(blkEdges[blkEdgeI]))
|
||||
{
|
||||
foundEdgeI = blkEdgeI;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (foundEdgeI != -1)
|
||||
{
|
||||
const List<point>& edgePoints =
|
||||
blockDef.blockEdgePoints()[foundEdgeI];
|
||||
|
||||
|
||||
vtkPolyData* vtkmesh = vtkPolyData::New();
|
||||
vtkPoints* vtkpoints = vtkPoints::New();
|
||||
|
||||
vtkpoints->Allocate( edgePoints.size() );
|
||||
vtkmesh->Allocate(1);
|
||||
|
||||
vtkIdType pointIds[edgePoints.size()];
|
||||
forAll(edgePoints, ptI)
|
||||
{
|
||||
vtkInsertNextOpenFOAMPoint(vtkpoints, edgePoints[ptI]);
|
||||
pointIds[ptI] = ptI;
|
||||
}
|
||||
|
||||
vtkmesh->InsertNextCell
|
||||
(
|
||||
VTK_POLY_LINE,
|
||||
edgePoints.size(),
|
||||
pointIds
|
||||
);
|
||||
|
||||
vtkmesh->SetPoints(vtkpoints);
|
||||
vtkpoints->Delete();
|
||||
|
||||
AddToBlock
|
||||
(
|
||||
output, vtkmesh, selector, datasetNo,
|
||||
selection->GetArrayName(partId)
|
||||
);
|
||||
|
||||
vtkmesh->Delete();
|
||||
datasetNo++;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// anything added?
|
||||
if (datasetNo)
|
||||
{
|
||||
++blockNo;
|
||||
}
|
||||
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<end> Foam::vtkPV3blockMesh::convertMeshEdges" << endl;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3blockMesh::convertMeshCorners
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
int& blockNo
|
||||
)
|
||||
{
|
||||
partInfo& selector = partInfoCorners_;
|
||||
|
||||
selector.block(blockNo); // set output block
|
||||
label datasetNo = 0; // restart at dataset 0
|
||||
|
||||
@ -150,7 +269,7 @@ void Foam::vtkPV3FoamBlockMesh::convertMeshCorners
|
||||
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<beg> Foam::vtkPV3FoamBlockMesh::convertMeshCorners" << endl;
|
||||
Info<< "<beg> Foam::vtkPV3blockMesh::convertMeshCorners" << endl;
|
||||
}
|
||||
|
||||
if (true) // or some flag or other condition
|
||||
@ -177,7 +296,7 @@ void Foam::vtkPV3FoamBlockMesh::convertMeshCorners
|
||||
vtkmesh->SetVerts(vtkcells);
|
||||
vtkcells->Delete();
|
||||
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, "");
|
||||
AddToBlock(output, vtkmesh, selector, datasetNo, partInfoCorners_.name());
|
||||
vtkmesh->Delete();
|
||||
|
||||
datasetNo++;
|
||||
@ -191,7 +310,7 @@ void Foam::vtkPV3FoamBlockMesh::convertMeshCorners
|
||||
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<end> Foam::vtkPV3FoamBlockMesh::convertMeshCorners" << endl;
|
||||
Info<< "<end> Foam::vtkPV3blockMesh::convertMeshCorners" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,8 +27,8 @@ Description
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "vtkPV3FoamBlockMesh.H"
|
||||
#include "vtkPV3FoamBlockMeshReader.h"
|
||||
#include "vtkPV3blockMesh.H"
|
||||
#include "vtkPV3blockMeshReader.h"
|
||||
|
||||
// VTK includes
|
||||
#include "vtkDataArraySelection.h"
|
||||
@ -67,13 +67,13 @@ namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::AddToBlock
|
||||
void Foam::vtkPV3blockMesh::AddToBlock
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
vtkDataSet* dataset,
|
||||
const partInfo& selector,
|
||||
const label datasetNo,
|
||||
const string& datasetName
|
||||
const std::string& datasetName
|
||||
)
|
||||
{
|
||||
const int blockNo = selector.block();
|
||||
@ -85,7 +85,7 @@ void Foam::vtkPV3FoamBlockMesh::AddToBlock
|
||||
{
|
||||
if (blockDO)
|
||||
{
|
||||
FatalErrorIn("Foam::vtkPV3FoamBlockMesh::AddToBlock")
|
||||
FatalErrorIn("Foam::vtkPV3blockMesh::AddToBlock")
|
||||
<< "Block already has a vtkDataSet assigned to it"
|
||||
<< endl;
|
||||
return;
|
||||
@ -127,7 +127,7 @@ void Foam::vtkPV3FoamBlockMesh::AddToBlock
|
||||
}
|
||||
|
||||
|
||||
vtkDataSet* Foam::vtkPV3FoamBlockMesh::GetDataSetFromBlock
|
||||
vtkDataSet* Foam::vtkPV3blockMesh::GetDataSetFromBlock
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector,
|
||||
@ -149,7 +149,7 @@ vtkDataSet* Foam::vtkPV3FoamBlockMesh::GetDataSetFromBlock
|
||||
|
||||
|
||||
// ununsed at the moment
|
||||
Foam::label Foam::vtkPV3FoamBlockMesh::GetNumberOfDataSets
|
||||
Foam::label Foam::vtkPV3blockMesh::GetNumberOfDataSets
|
||||
(
|
||||
vtkMultiBlockDataSet* output,
|
||||
const partInfo& selector
|
||||
@ -168,7 +168,7 @@ Foam::label Foam::vtkPV3FoamBlockMesh::GetNumberOfDataSets
|
||||
}
|
||||
|
||||
|
||||
Foam::wordHashSet Foam::vtkPV3FoamBlockMesh::getSelected
|
||||
Foam::wordHashSet Foam::vtkPV3blockMesh::getSelected
|
||||
(
|
||||
vtkDataArraySelection* select
|
||||
)
|
||||
@ -188,7 +188,7 @@ Foam::wordHashSet Foam::vtkPV3FoamBlockMesh::getSelected
|
||||
}
|
||||
|
||||
|
||||
Foam::wordHashSet Foam::vtkPV3FoamBlockMesh::getSelected
|
||||
Foam::wordHashSet Foam::vtkPV3blockMesh::getSelected
|
||||
(
|
||||
vtkDataArraySelection* select,
|
||||
const partInfo& selector
|
||||
@ -209,7 +209,7 @@ Foam::wordHashSet Foam::vtkPV3FoamBlockMesh::getSelected
|
||||
}
|
||||
|
||||
|
||||
Foam::stringList Foam::vtkPV3FoamBlockMesh::getSelectedArrayEntries
|
||||
Foam::stringList Foam::vtkPV3blockMesh::getSelectedArrayEntries
|
||||
(
|
||||
vtkDataArraySelection* select
|
||||
)
|
||||
@ -248,7 +248,7 @@ Foam::stringList Foam::vtkPV3FoamBlockMesh::getSelectedArrayEntries
|
||||
}
|
||||
|
||||
|
||||
Foam::stringList Foam::vtkPV3FoamBlockMesh::getSelectedArrayEntries
|
||||
Foam::stringList Foam::vtkPV3blockMesh::getSelectedArrayEntries
|
||||
(
|
||||
vtkDataArraySelection* select,
|
||||
const partInfo& selector
|
||||
@ -287,7 +287,7 @@ Foam::stringList Foam::vtkPV3FoamBlockMesh::getSelectedArrayEntries
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3FoamBlockMesh::setSelectedArrayEntries
|
||||
void Foam::vtkPV3blockMesh::setSelectedArrayEntries
|
||||
(
|
||||
vtkDataArraySelection* select,
|
||||
const stringList& selections
|
||||
@ -313,6 +313,45 @@ void Foam::vtkPV3FoamBlockMesh::setSelectedArrayEntries
|
||||
}
|
||||
|
||||
|
||||
void Foam::vtkPV3blockMesh::updateBoolListStatus
|
||||
(
|
||||
boolList& status,
|
||||
vtkDataArraySelection* selection
|
||||
)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<beg> Foam::vtkPV3blockMesh::updateBoolListStatus" << endl;
|
||||
}
|
||||
|
||||
const label nElem = selection->GetNumberOfArrays();
|
||||
if (status.size() != nElem)
|
||||
{
|
||||
status.setSize(nElem);
|
||||
status = false;
|
||||
}
|
||||
|
||||
forAll(status, elemI)
|
||||
{
|
||||
const int setting = selection->GetArraySetting(elemI);
|
||||
|
||||
status[elemI] = setting;
|
||||
|
||||
if (debug)
|
||||
{
|
||||
Info<< " part[" << elemI << "] = "
|
||||
<< status[elemI]
|
||||
<< " : " << selection->GetArrayName(elemI) << endl;
|
||||
}
|
||||
}
|
||||
if (debug)
|
||||
{
|
||||
Info<< "<end> Foam::vtkPV3blockMesh::updateBoolListStatus" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
|
||||
Reference in New Issue
Block a user