SMTK issueshttps://gitlab.kitware.com/cmb/smtk/-/issues2018-04-11T01:59:24-04:00https://gitlab.kitware.com/cmb/smtk/-/issues/74Requesting bordant entities can return strange results.2018-04-11T01:59:24-04:00David ThompsonRequesting bordant entities can return strange results.Depending on the modeling kernel and type of model (raw-relationships or relationships+arrangements), `smtk::model::Manager::bordantEntities()` can return things that it arguably should not:
+ when passed a free cell, sometimes it return...Depending on the modeling kernel and type of model (raw-relationships or relationships+arrangements), `smtk::model::Manager::bordantEntities()` can return things that it arguably should not:
+ when passed a free cell, sometimes it returns the model owning the cell (this caused problems for polygon's Delete operator);
+ when passed a cell-use, sometimes it returns the cell referenced by the use (which returns the initial cell-use as its bordant, ad infinitum).
Verify that the discrete session is not relying on this behavior and then fix it.https://gitlab.kitware.com/cmb/smtk/-/issues/91Remove boost :: int64_t from smtk/mesh/ExtractTessellation.h/cxx2019-04-29T15:17:45-04:00T.J. CoronaRemove boost :: int64_t from smtk/mesh/ExtractTessellation.h/cxxusing boost::int64_t causes problems on systems where VTK doesn't set vtkIdType to the same value. This likely needs to use the same logic as the vtkIdType selection logic to ensure compatibility to VTK.
One sloppy workaround for this...using boost::int64_t causes problems on systems where VTK doesn't set vtkIdType to the same value. This likely needs to use the same logic as the vtkIdType selection logic to ensure compatibility to VTK.
One sloppy workaround for this issue is in ExportVTKData.cxx:167:
```
namespace
{
template<class T, class U>
struct swapDataTypesIfNecessary
{
void operator()(T*& in, U*& out, boost::int64_t len)
{
out = new U[len];
for (boost::int64_t i=0;i<len;i++)
{
out[i] = in[i];
}
delete [] in;
}
};
template<class T>
struct swapDataTypesIfNecessary<T,T>
{
void operator()(T*& in, T*& out, boost::int64_t)
{
out = in;
}
};
}
//----------------------------------------------------------------------------
void ExportVTKData::operator()(const smtk::mesh::MeshSet& meshset,
vtkUnstructuredGrid* ug) const
{
boost::int64_t connectivityLength= -1;
boost::int64_t numberOfCells = -1;
boost::int64_t numberOfPoints = -1;
//determine the allocation lengths
smtk::mesh::PreAllocatedTessellation::determineAllocationLengths(
meshset, connectivityLength, numberOfCells, numberOfPoints);
// add the number of cells to the connectivity length to get the length of
// VTK-style connectivity
connectivityLength += numberOfCells;
//create raw data buffers to hold our data
double* pointsData = new double[3*numberOfPoints];
unsigned char* cellTypesData = new unsigned char[numberOfCells];
boost::int64_t* cellLocationsData_ = new boost::int64_t[numberOfCells];
boost::int64_t* connectivityData_ = new boost::int64_t[connectivityLength];
//extract tessellation information
smtk::mesh::PreAllocatedTessellation tess(connectivityData_,
cellLocationsData_,
cellTypesData, pointsData);
smtk::mesh::extractTessellation(meshset, tess);
swapDataTypesIfNecessary<boost::int64_t, vtkIdType> swap;
vtkIdType* cellLocationsData;
swap(cellLocationsData_, cellLocationsData, numberOfCells);
vtkIdType* connectivityData;
swap(connectivityData_, connectivityData, connectivityLength);
// create vtk data arrays to hold our data
vtkNew<vtkDoubleArray> pointsArray;
vtkNew<vtkUnsignedCharArray> cellTypes;
vtkNew<vtkIdTypeArray> cellLocations;
vtkNew<vtkIdTypeArray> connectivity;
// transfer ownership of our raw data arrays to the vtk data arrays
pointsArray->SetNumberOfComponents(3);
pointsArray->SetArray(pointsData, 3*numberOfPoints, false,
vtkDoubleArray::VTK_DATA_ARRAY_DELETE);
cellTypes->SetArray(cellTypesData, numberOfCells, false,
vtkUnsignedCharArray::VTK_DATA_ARRAY_DELETE);
cellLocations->SetArray(cellLocationsData, numberOfCells, false,
vtkIdTypeArray::VTK_DATA_ARRAY_DELETE);
connectivity->SetArray(connectivityData, connectivityLength, false,
vtkIdTypeArray::VTK_DATA_ARRAY_DELETE);
vtkNew<vtkPoints> points;
points->SetData(pointsArray.GetPointer());
vtkNew<vtkCellArray> cells;
cells->SetCells(numberOfCells, connectivity.GetPointer());
ug->SetPoints(points.GetPointer());
ug->SetCells(cellTypes.GetPointer(), cellLocations.GetPointer(),
cells.GetPointer());
}
```https://gitlab.kitware.com/cmb/smtk/-/issues/104After the contours from dem operator runs, user has difficulty selecting image2018-04-11T01:59:25-04:00Robert M. O'BaraAfter the contours from dem operator runs, user has difficulty selecting imageTry the following:
1. Load in DEM
2. Extract Contours
3. Try to make the image transparent - you will see that the selecting the image in the tree view does not have any effectTry the following:
1. Load in DEM
2. Extract Contours
3. Try to make the image transparent - you will see that the selecting the image in the tree view does not have any effectYumin YuanYumin Yuanhttps://gitlab.kitware.com/cmb/smtk/-/issues/107Point Selection still highlighted2018-04-11T01:59:25-04:00Robert M. O'BaraPoint Selection still highlightedWhen an edge point is highlighted in a split operator - it remains highlighted when leaving the operationWhen an edge point is highlighted in a split operator - it remains highlighted when leaving the operationSMTK 1.1Yumin YuanYumin Yuanhttps://gitlab.kitware.com/cmb/smtk/-/issues/111Strange Sorting Order in Entity List View2018-11-23T09:57:51-05:00Robert M. O'BaraStrange Sorting Order in Entity List ViewThe group order should either be Volumes, Faces, Edges, Vertices, Aux Geometry, Properties or Vertices, Edges, Faces, Volumes, Aux Geometry, PropertiesThe group order should either be Volumes, Faces, Edges, Vertices, Aux Geometry, Properties or Vertices, Edges, Faces, Volumes, Aux Geometry, PropertiesSMTK 1.1David ThompsonDavid Thompsonhttps://gitlab.kitware.com/cmb/smtk/-/issues/113Need to Improve edge processing2018-04-11T01:59:24-04:00Robert M. O'BaraNeed to Improve edge processingWhen creating a model from the New River dem (extracting contours with value 0.01 and min length of 1000) the resulting polyline contains non-manifold features - basically the input edge should result in multiple model edges. Here is an...When creating a model from the New River dem (extracting contours with value 0.01 and min length of 1000) the resulting polyline contains non-manifold features - basically the input edge should result in multiple model edges. Here is an example of the problem.
[dec_1.smtk](/uploads/e4a91442df4c770598550d582f66916f/dec_1.smtk)SMTK 2.0David ThompsonDavid Thompsonhttps://gitlab.kitware.com/cmb/smtk/-/issues/169New JSON model format2018-08-09T14:35:51-04:00David ThompsonNew JSON model formatTHe new JSON model format must serialize all information about the model — not just its relations, but also its arrangements and properties. Currently, only its relations are serialized. The `from_json(smtk::model::ManagerPtr)` method ha...THe new JSON model format must serialize all information about the model — not just its relations, but also its arrangements and properties. Currently, only its relations are serialized. The `from_json(smtk::model::ManagerPtr)` method has been fixed to deserialize this information properly (which exists in "legacy" JSON files) but the the corresponding `to_json()` method has not been updated.Haocheng LIUHaocheng LIUhttps://gitlab.kitware.com/cmb/smtk/-/issues/247smtk::model::Group: prune or fix broken code paths for adding entities to a g...2019-06-27T11:11:15-04:00T.J. Coronasmtk::model::Group: prune or fix broken code paths for adding entities to a groupThe method smtk::model::Resource::addToGroup() does not do the same thing as smtk::model::Group::addEntity(), and the former results in a group not having access to its entities.
See https://gitlab.kitware.com/cmb/smtk/merge_requests/16...The method smtk::model::Resource::addToGroup() does not do the same thing as smtk::model::Group::addEntity(), and the former results in a group not having access to its entities.
See https://gitlab.kitware.com/cmb/smtk/merge_requests/1609#note_589855David ThompsonDavid Thompsonhttps://gitlab.kitware.com/cmb/smtk/-/issues/248smtk::model::Group: fix flags to accept boundaries of dimension 12019-06-27T13:20:01-04:00T.J. Coronasmtk::model::Group: fix flags to accept boundaries of dimension 1In `smtk/model/testing/python/modelAttributes.py:137`, a group created with flag
`
flags = smtk.model.MODEL_BOUNDARY | smtk.model.DIMENSION_1
`
results in the rejection of edges being added to the group, but flag
`
flags = smtk.model....In `smtk/model/testing/python/modelAttributes.py:137`, a group created with flag
`
flags = smtk.model.MODEL_BOUNDARY | smtk.model.DIMENSION_1
`
results in the rejection of edges being added to the group, but flag
`
flags = smtk.model.EDGE
`
succeeds.
See https://gitlab.kitware.com/cmb/smtk/merge_requests/1609David ThompsonDavid Thompsonhttps://gitlab.kitware.com/cmb/smtk/-/issues/472Editing descriptive phrase titles for resources is buggy2022-06-20T12:22:31-04:00David ThompsonEditing descriptive phrase titles for resources is buggyCurrently, ResourcePhraseContent presents a resource's title as both its name and its type. This leads to problems when attempting to rename a resource since the initial text is not properly set.
**Note** this also needs to fix the proj...Currently, ResourcePhraseContent presents a resource's title as both its name and its type. This leads to problems when attempting to rename a resource since the initial text is not properly set.
**Note** this also needs to fix the project-panel's phrases (which show resources as children of the project and which suffer a similar issue, albeit with the resource role and name instead of type and name).
The proposed fix is
1. To change ResourcePhraseContent to only show the resource name as the title.
2. To turn on rendering of the subtitle (either overall or specifically for resource phrases) and make the subtitle present the information that was previously in the phrase title.
Note that because subtitles are currently rendered underneath the title – which makes it take up additional space – and there are various optimizations in QTreeView that require all rows to have the same height, it may also be best to change the qtDescriptivePhraseDelegate class to draw the subtitle to the right of the title (in a different, smaller font) rather than underneath the title.Robert M. O'BaraRobert M. O'Barahttps://gitlab.kitware.com/cmb/smtk/-/issues/507Clean up export macros2023-03-28T11:33:56-04:00David ThompsonClean up export macros## Missing `SMTK_ALWAYS_EXPORT`
- smtk/attribute/CustomItem.h
- smtk/attribute/CustomItemDefinition.h
- smtk/common/Generator.h
- smtk/common/Links.h
- smtk/common/Observers.h
- smtk/common/RangeDetector.h
- smtk/common/TypeName.h
- smt...## Missing `SMTK_ALWAYS_EXPORT`
- smtk/attribute/CustomItem.h
- smtk/attribute/CustomItemDefinition.h
- smtk/common/Generator.h
- smtk/common/Links.h
- smtk/common/Observers.h
- smtk/common/RangeDetector.h
- smtk/common/TypeName.h
- smtk/common/UnionFind.h (UnionFindSet and UnionFind classes)
- smtk/common/WeakReferenceWrapper.h
- smtk/common/update/Factory.h
- smtk/extension/paraview/appcomponents/pqSMTKDock.h
- smtk/extension/paraview/server/vtkSMTKRepresentationStyleGenerator.h (vtkSMTKRepresentationStyleSupplier class)
- smtk/extension/vtk/io/ImportAsVTKData.h (ImportAsVTKDataType class)
- smtk/geometry/Cache.h
- smtk/geometry/GeometryForBackend.h
- smtk/graph/ArcImplementation.h (ArcImplementation ArcEndpointInterface classes)
- smtk/graph/ArcProperties.h
- smtk/graph/ExplicitArcs.h
- smtk/graph/NodeProperties.h
- maybe smtk/graph/detail/TypeTraits.h
- maybe smtk/plugin/Registry.h
- smtk/resource/DerivedFrom.h
- smtk/resource/Manager.h (is_derived_resource)
- smtk/resource/Metadata.h
- smtk/resource/Properties.h (PropertiesOfType, ConstPropertiesOfType classes)
- maybe smtk/resource/Resource.h (Key class)
- maybe smtk/resource/ResourceLinks.h (ResourceLinksBase class)
- smtk/resource/filter/Filter.h
- smtk/resource/filter/Rule.h
- smtk/resource/pybind11/PyResource.h
## Missing library export macro
- smtk/attribute/filter/Attribute.h (TypeNameRule and TypeRegexRule classes)
- smtk/extension/paraview/widgets/pqSMTKAttributeItemWidgetP.h
- smtk/extension/qt/qtComponentAttributeView.h (qComponentAttributeViewComboBoxItemDelegate class)
- smtk/extension/qt/qtOperationLauncher.h (qt::Launcher class at bottom)
- smtk/mesh/moab/MergeMeshVertices.h
- smtk/mesh/moab/Tags.h
- smtk/mesh/pybind11/PybindForEachTypes.h
- smtk/model/Arrangement.h (ArrangementReference class)
- smtk/model/testing/cxx/helpers.h
- smtk/operation/pybind11/PyOperation.h
- smtk/plugin/Registry.h
- smtk/resource/filter/Rule.h
- smtk/session/polygon/internal/ActiveFragmentTree.h
- smtk/session/polygon/internal/Neighborhood.h
- smtk/view/PhraseModel.h (PhraseDeltas class)