on 08-25-2016 9:24 PM
A major issue we’re having with the 8.0 version is slowness in selecting a node and it’s children. If this slowness is resolved, it may remedy the freezing and crashing issue we've been experiencing.
Here’s a sample of the code that selects the nodes children.
void axDeepView_NodesSelectedEvent(object sender, AxExploration3D.IDeepViewEvents_NodesSelectedEvent e)
{
//List selected nodes on label.
SceneObjectList nodes = axDeepView1.Scene.Nodes;
//Store the node count
int nodeCount = axDeepView1.Scene.Nodes.Count;
//Some safety checks to make sure we are in the correct mode... 13 is the index we use to "part" selection as opposed to assembly
if (e.currentlySelectedNodes.Count == 0 || nodeCount == 0 || Assembly_Button.ImageIndex == 13)
return;
//Loop through all our nodes
for (int iNumNodes = 0; iNumNodes < e.currentlySelectedNodes.Count; ++iNumNodes)
{
//Grab the current node and store it
Node selNode = e.currentlySelectedNodes.GetByIndex(iNumNodes);
// Get the ultimate parent for the node
for (selNode = selNode.Parent; selNode.Parent != null && selNode.Parent.Parent != null && selNode.Name != ""; )
{
//Store the highest valid parent
selNode = selNode.Parent;
}
axDeepView1.NodesSelectedEvent -= axDeepView_NodesSelectedEvent;
SelectChildren(selNode.FirstChild);
axDeepView1.NodesSelectedEvent += new AxExploration3D.IDeepViewEvents_NodesSelectedEventHandler(axDeepView_NodesSelectedEvent);
}
}
void SelectChildren(Node node)
{
if (node != null)
{
for (Node sibNode = node; sibNode != null; sibNode = sibNode.NextSibling)
{
if (!sibNode.Selected)
{
try
{
sibNode.Selected = true;
}
catch (Exception ex)
{
System.Diagnostics.Debug.Print("Error:" + ex.Message);
}
}
SelectChildren(sibNode.FirstChild);
}
}
}
Hi William,
Try using node.SetSelectedRecursively(true/false)
This should make it much quicker.
Regards,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Anthony,
Do we have any additional options to resolve the slowness?
Best Regards,
Bill Tucker
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hey,
Here's the steps to the slowness.
First I open a model that has a node with multiple children.
I click a node. This gets the ultimate parent of that node. (This part is still fast)
The code then calls node.SetSelectedRecursively(true) (This part is slow)
After the click the program freezes for about 3 seconds (longer with more children)
If the user clicks on anything while frozen, it may crash the program.
After 3 seconds, the program resumes with the parent node and it's children selected.
As you can see, most users will try to do something when frozen, which causes crashing.
Regards,
Hi Bill,
Thank you for your detailed reply. Any performance issue is of concern. Since this question is deeper than just usage of the API, it is more appropriate to file an SAP Incident using the CSS system. The solution will require development engagement. We will make our first level support aware of this conversation so it is fast tracked to development. Any performance improvement can then be incorporated into the release cycle. We will mark this question as Answered.
Regards,
Anthony.
Hi Anthony,
Our software engineer has run tests incorporating VE Viewer 9.0. Now, the 'node.SetSelectedRecusively(true/false) method works as expected. However we are still experiencing the slowness of node selection, but the program freezing and crashing seems to have been resolved working with the VEV 8.0 .net SDK in combination with VE Viewer 9.0. Is the slowness being addressed and corrected in the VE Viewer 9.0 SDK? What is the progress on releasing the .net VE Viewer 9.0 SDK and availability date?
Best Regards,
Bill Tucker
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi William,
The SDK contains java libraries, but nothing that can make the viewer binaries behave faster in dot.net. Apart from the javalibrary, it is just examples and documentation. Strictly speaking there is no .net SDK: there is one SDK for everything: Java,.net, javascript etc.
The 9.0 SAP 3D Visual Enterprise SDK can be obtained via this link:
Regards,
Anthony
User | Count |
---|---|
11 | |
6 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.