Commit f7b3f8f3 authored by hrchilds's avatar hrchilds

Update from March 3, 2006

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@629 18c085ea-50e0-402c-830e-de6fd14e8384
parent 2bf47087
This diff is collapsed.
......@@ -19,7 +19,8 @@ Unix and Mac OS X:
"version" will be 1.5.1 for the current distribution.
"platform" will be one of the following: aix, darwin, irix6, linux,
"platform" will be one of the following: aix, aix64-xlc, darwin,
irix6, linux-altix, linux-ia64, linux-x86_64, linux_chaos, linux_rhel3,
osf1, or sunos5 depending on the machine. The one you use should
match the name of the accompanying distribution file.
......
......@@ -62,6 +62,11 @@ avtDeterminantFilter::~avtDeterminantFilter()
// Programmer: Hank Childs
// Creation: September 22, 2003
//
// Modifications:
//
// Hank Childs, Fri Mar 3 08:56:52 PST 2006
// Add support for 2D tensors ['7063].
//
// ****************************************************************************
void
......@@ -70,6 +75,8 @@ avtDeterminantFilter::DoOperation(vtkDataArray *in, vtkDataArray *out,
{
if (ncomponents == 9)
{
bool is2D = GetInput()->GetInfo().GetAttributes().
GetSpatialDimension() == 2;
for (int i = 0 ; i < ntuples ; i++)
{
float *vals = in->GetTuple9(i);
......@@ -82,9 +89,18 @@ avtDeterminantFilter::DoOperation(vtkDataArray *in, vtkDataArray *out,
col2[1] = vals[4];
col2[2] = vals[7];
float col3[3];
col3[0] = vals[2];
col3[1] = vals[5];
col3[2] = vals[8];
if (is2D)
{
col3[0] = 0.;
col3[1] = 0.;
col3[2] = 1.;
}
else
{
col3[0] = vals[2];
col3[1] = vals[5];
col3[2] = vals[8];
}
float det = vtkMath::Determinant3x3(col1, col2, col3);
out->SetTuple1(i, det);
}
......
......@@ -84,6 +84,10 @@ avtGhostZoneFilter::~avtGhostZoneFilter()
// Hank Childs, Fri Aug 27 16:02:58 PDT 2004
// Rename ghost data array. Also remove SetGhostLevel call.
//
// Hank Childs, Thu Mar 2 14:15:29 PST 2006
// Change the way we access the vtkDataSetRemoveGhostCells filter, since
// it can change type of output.
//
// ****************************************************************************
vtkDataSet *
......@@ -118,6 +122,10 @@ avtGhostZoneFilter::ExecuteData(vtkDataSet *in_ds, int domain, std::string)
// will be removed. Currently our 'real' zones have
// ghostlevel ==0, 'ghost' have ghostlevel ==1.
//
// Note: have to say "Update" before saying GetOutput, since output
// may change during execution.
//
filter->Update();
vtkDataSet *outDS = filter->GetOutput();
outDS->Update();
......
......@@ -299,6 +299,10 @@ avtResampleFilter::BypassResample(void)
// Hank Childs, Mon Feb 20 15:22:57 PST 2006
// Automatically use kernel-based sampling when dealing with point meshes.
//
// Hank Childs, Fri Mar 3 12:27:11 PST 2006
// Don't allow the resampler to "send cells", because there is no
// second pass.
//
// ****************************************************************************
void
......@@ -438,6 +442,7 @@ avtResampleFilter::ResampleInput(void)
bool doKernel =
(GetInput()->GetInfo().GetAttributes().GetTopologicalDimension() == 0);
avtSamplePointExtractor extractor(width, height, depth);
extractor.SendCellsMode(false);
extractor.Set3DMode(is3D);
extractor.SetInput(trans.GetOutput());
if (doKernel)
......
<?xml version="1.0"?>
<Plugin name="Curve2D" type="database" label="Curve2D" version="1.0" enabled="true" dbtype="STSD" haswriter="false">
<Plugin name="Curve2D" type="database" label="Curve2D" version="1.0" enabled="true" mdspecificcode="false" onlyengine="false" noengine="false" dbtype="STSD" haswriter="false" hasoptions="false">
<Extensions>
curve
ultra
ult
u
</Extensions>
<Attribute persistent="false">
<Attribute name="" purpose="" persistent="false">
</Attribute>
</Plugin>
......@@ -9,8 +9,8 @@
// Purpose:
// Returns the type of a Curve2D database.
//
// Programmer: meredith -- generated by xml2info
// Creation: Tue Feb 22 14:36:40 PST 2005
// Programmer: childs -- generated by xml2info
// Creation: Thu Mar 2 09:34:26 PDT 2006
//
// ****************************************************************************
DatabaseType
......@@ -25,8 +25,8 @@ Curve2DCommonPluginInfo::GetDatabaseType()
// Purpose:
// Returns the default extensions for a Curve2D database.
//
// Programmer: meredith -- generated by xml2info
// Creation: Tue Feb 22 14:36:40 PST 2005
// Programmer: childs -- generated by xml2info
// Creation: Thu Mar 2 09:34:26 PDT 2006
//
// ****************************************************************************
std::vector<std::string>
......@@ -36,12 +36,13 @@ Curve2DCommonPluginInfo::GetDefaultExtensions()
defaultExtensions.push_back("curve");
defaultExtensions.push_back("ultra");
defaultExtensions.push_back("ult");
defaultExtensions.push_back("u");
return defaultExtensions;
}
// ****************************************************************************
// Method: Curve2DCommonPluginInfo::SetUpCurve2DDatabase
// Method: Curve2DCommonPluginInfo::SetupCurve2DDatabase
//
// Purpose:
// Sets up a Curve2D database.
......@@ -53,8 +54,8 @@ Curve2DCommonPluginInfo::GetDefaultExtensions()
//
// Returns: A Curve2D database from list.
//
// Programmer: meredith -- generated by xml2info
// Creation: Tue Feb 22 14:36:40 PST 2005
// Programmer: childs -- generated by xml2info
// Creation: Thu Mar 2 09:34:26 PDT 2006
//
// ****************************************************************************
avtDatabase *
......
......@@ -239,6 +239,9 @@ NetworkManager::~NetworkManager(void)
// Mark C. Miller, Tue Jan 4 10:23:19 PST 2005
// Added code to delete VisWindow objects
//
// Hank Childs, Thu Mar 2 10:06:33 PST 2006
// Added support for image based plots.
//
// ****************************************************************************
void
NetworkManager::ClearAllNetworks(void)
......@@ -270,6 +273,7 @@ NetworkManager::ClearAllNetworks(void)
{
it->second.viswin->ClearPlots();
it->second.plotsCurrentlyInWindow.clear();
it->second.imageBasedPlots.clear();
delete it->second.viswin;
}
viswinMap.clear();
......@@ -1362,7 +1366,11 @@ NetworkManager::GetShouldUseCompression(int windowID) const
// Mark C. Miller, Tue Jan 4 10:23:19 PST 2005
// Modified to manage multiple VisWindow objects
//
// Hank Childs, Thu Mar 2 10:06:33 PST 2006
// Clear out image based plots.
//
// ****************************************************************************
void
NetworkManager::DoneWithNetwork(int id)
{
......@@ -1382,6 +1390,7 @@ NetworkManager::DoneWithNetwork(int id)
viswinMap[thisNetworksWinID].viswin->ClearPlots();
viswinMap[thisNetworksWinID].plotsCurrentlyInWindow.clear();
viswinMap[thisNetworksWinID].imageBasedPlots.clear();
//
// Delete the associated VisWindow if this is the last plot that
......@@ -1768,7 +1777,14 @@ NetworkManager::HasNonMeshPlots(const intVector plotIds)
// Hank Childs, Sun Dec 4 16:58:32 PST 2005
// Added progress to scalable renderings.
//
// Hank Childs, Thu Mar 2 10:06:33 PST 2006
// Add support for image based plots.
//
// Hank Childs, Fri Mar 3 08:32:02 PST 2006
// Do not do shadowing in 2D.
//
// ****************************************************************************
avtDataObjectWriter_p
NetworkManager::Render(intVector plotIds, bool getZBuffer, int annotMode,
int windowID)
......@@ -1793,6 +1809,7 @@ NetworkManager::Render(intVector plotIds, bool getZBuffer, int annotMode,
VisualCueList &visualCueList = viswinInfo.visualCueList;
int *const &frameAndState = viswinInfo.frameAndState;
std::vector<int>& plotsCurrentlyInWindow = viswinMap[windowID].plotsCurrentlyInWindow;
std::vector<avtPlot_p>& imageBasedPlots = viswinMap[windowID].imageBasedPlots;
TRY
{
......@@ -1996,13 +2013,16 @@ NetworkManager::Render(intVector plotIds, bool getZBuffer, int annotMode,
//
bool doShadows = windowAttributes.GetRenderAtts().GetDoShadowing();
bool two_pass_mode = false;
#ifdef PARALLEL
if (viswin->GetWindowMode() == WINMODE_3D)
{
#ifdef PARALLEL
two_pass_mode = viswin->TransparenciesExist();
two_pass_mode = UnifyMaximumValue(two_pass_mode);
}
#endif
}
else
doShadows = false;
int nstages = 3; // Rendering + Two for Compositing
nstages += (doShadows ? 2 : 0);
nstages += (two_pass_mode ? 1 : 0);
......
......@@ -40,6 +40,7 @@ typedef struct _EngineVisWinInfo
int frameAndState[7];
VisWindow *viswin;
std::vector<int> plotsCurrentlyInWindow;
std::vector<avtPlot_p> imageBasedPlots;
bool markedForDeletion;
} EngineVisWinInfo;
......@@ -248,7 +249,11 @@ typedef void (*ProgressCallback)(void *, const char *, const char *,int,int);
// Hank Childs, Mon Feb 13 22:25:04 PST 2006
// Add support for DDFs.
//
// Hank Childs, Thu Mar 2 10:04:54 PST 2006
// Add imageBasedPlots to vis win info, remove from network manager.
//
// ****************************************************************************
class NetworkManager
{
typedef std::map<std::string, stringVector> StringVectorMap;
......@@ -343,7 +348,6 @@ class NetworkManager
std::vector<Netnode*> workingNetnodeList;
DataNetwork *workingNet;
std::vector<std::string> nameStack;
std::vector<avtPlot_p> imageBasedPlots;
int uniqueNetworkId;
bool requireOriginalCells;
......
......@@ -113,6 +113,9 @@ avtInverseGhostZoneFilter::Equivalent(const AttributeGroup *a)
// Hank Childs, Fri Aug 27 15:25:22 PDT 2004
// Rename ghost data array.
//
// Hank Childs, Thu Mar 2 11:08:43 PST 2006
// Remove avtRealDims ['6724].
//
// ****************************************************************************
vtkDataSet *
......@@ -143,6 +146,8 @@ avtInverseGhostZoneFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
ghostZones->InsertNextValue(ghost);
}
out_ds->GetCellData()->RemoveArray("avtGhostZones");
if (out_ds->GetFieldData()->GetArray("avtRealDims") != NULL)
out_ds->GetFieldData()->RemoveArray("avtRealDims");
out_ds->GetCellData()->AddArray(ghostZones);
}
else
......
......@@ -1230,20 +1230,21 @@ ViewerEngineManager::GetEngine(const EngineKey &ek)
void
ViewerEngineManager::LaunchMessage(const EngineKey &ek) const
{
char message[200];
if (ek.SimName() != "")
char message[200] = { '\0' };
if (ek.IsSimulation())
{
SNPRINTF(message, 200, "VisIt is not connected to the simulation '%s' "
"on host %s", ek.SimName().c_str(), ek.HostName().c_str());
}
else
else if (ek.HostName() != "<unset>")
{
SNPRINTF(message, 200, "VisIt could not find a compute engine to use "
"for the plot on host %s. VisIt will try to launch a compute "
"engine on that host.", ek.HostName().c_str());
}
Warning(message);
if (strlen(message) > 0)
Warning(message);
}
// ****************************************************************************
......@@ -2222,6 +2223,10 @@ ViewerEngineManager::StartPick(const EngineKey &ek, const bool forZones,
// Hank Childs, Mon Feb 20 16:40:37 PST 2006
// Do not launch an engine just to set the window annotation attributes.
//
// Hank Childs, Fri Mar 3 09:19:13 PST 2006
// Remove behavior where engine is not launched. This is important
// for picking on crashed engines (regression test pick.py will fail).
//
// ****************************************************************************
bool
......@@ -2236,15 +2241,6 @@ ViewerEngineManager::SetWinAnnotAtts(const EngineKey &ek,
const string ctName,
const int winID)
{
//
// It doesn't really make sense to launch an engine so we can tell it what
// the annotation attributes are.
//
if (!EngineExists(ek))
{
return false;
}
ENGINE_PROXY_RPC_BEGIN("SetWinAnnotAtts");
engine->SetWinAnnotAtts(wa,aa,ao,extstr,visCues,frameAndState,viewExtents,
ctName, winID);
......
......@@ -55,6 +55,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <vtkUnsignedCharArray.h>
#include <vtkUnstructuredGrid.h>
#include <vtkVisItUtility.h>
//------------------------------------------------------------------------------
// Modifications:
// Kathleen Bonnell, Wed Mar 6 13:48:48 PST 2002
......@@ -108,6 +110,64 @@ void vtkDataSetRemoveGhostCells::Execute()
}
}
// ****************************************************************************
// Modifications:
//
// Hank Childs, Thu Mar 2 11:14:53 PST 2006
// Created.
//
// ****************************************************************************
void vtkDataSetRemoveGhostCells::GenericExecute()
{
int i;
vtkDataSet *ds = this->GetInput();
vtkDataArray *arr = ds->GetCellData()->GetArray("avtGhostZones");
if (arr == NULL)
{
GetOutput()->ShallowCopy(ds);
return;
}
vtkPoints *ptsObj = vtkVisItUtility::GetPoints(ds);
vtkUnstructuredGrid *ugrid = vtkUnstructuredGrid::New();
ugrid->SetPoints(ptsObj);
ptsObj->Delete();
ugrid->GetPointData()->ShallowCopy(ds->GetPointData());
int nOut = 0;
int nCells = ds->GetNumberOfCells();
for (i = 0 ; i < nCells ; i++)
if (arr->GetTuple1(i) == 0)
nOut++;
ugrid->Allocate(8*nOut);
vtkIdType npts;
vtkIdType *pts;
int cellId = 0;
vtkCellData *inCD = ds->GetCellData();
vtkCellData *outCD = ugrid->GetCellData();
outCD->CopyAllocate(inCD, nOut);
vtkIdList *ptList = vtkIdList::New();
for (i = 0 ; i < nCells ; i++)
{
if (arr->GetTuple1(i) != 0)
continue;
ds->GetCellPoints(i, ptList);
int type = ds->GetCellType(i);
ugrid->InsertNextCell(type, ptList);
outCD->CopyData(inCD, i, cellId++);
}
ptList->Delete();
ugrid->Squeeze();
SetOutput(ugrid);
ugrid->Delete();
}
// ***************************************************************************
// Modifications:
//
......@@ -352,6 +412,9 @@ void vtkDataSetRemoveGhostCells::PolyDataExecute()
// Hank Childs, Fri Aug 27 15:10:50 PDT 2004
// Use the new ghost data names.
//
// Hank Childs, Thu Mar 2 11:14:53 PST 2006
// Call generic execute if there are no real dims.
//
// ***************************************************************************
void vtkDataSetRemoveGhostCells::RectilinearGridExecute()
......@@ -364,9 +427,7 @@ void vtkDataSetRemoveGhostCells::RectilinearGridExecute()
if (!realDims || (realDims->GetDataType() != VTK_INT)
|| (realDims->GetNumberOfComponents() != 1))
{
vtkErrorMacro(<<"No proper match for avtRealDims found in field data.");
output->ShallowCopy(input);
output->GetCellData()->RemoveArray("avtGhostZones");
GenericExecute();
return;
}
......@@ -411,6 +472,9 @@ void vtkDataSetRemoveGhostCells::RectilinearGridExecute()
// Hank Childs, Fri Aug 27 15:10:50 PDT 2004
// Use the new ghost data names.
//
// Hank Childs, Thu Mar 2 11:14:53 PST 2006
// Call generic execute if there are no real dims.
//
// ***************************************************************************
void vtkDataSetRemoveGhostCells::StructuredGridExecute()
......@@ -422,8 +486,7 @@ void vtkDataSetRemoveGhostCells::StructuredGridExecute()
if (!realDims || (realDims->GetDataType() != VTK_INT)
|| (realDims->GetNumberOfComponents() != 1))
{
vtkErrorMacro(<<"No proper match for avtRealDims found in field data.");
output->ShallowCopy(input);
GenericExecute();
return;
}
......
......@@ -56,6 +56,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Hank Childs, Mon Aug 30 16:27:16 PDT 2004
// Removed GhostLevels data member.
//
// Hank Childs, Thu Mar 2 11:14:53 PST 2006
// Add GenericExecute.
//
class VISIT_VTK_API vtkDataSetRemoveGhostCells : public vtkDataSetToDataSetFilter
{
public:
......@@ -74,6 +77,7 @@ protected:
void UnstructuredGridExecute();
void RectilinearGridExecute();
void PolyDataExecute();
void GenericExecute();
private:
vtkDataSetRemoveGhostCells(const vtkDataSetRemoveGhostCells&);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment