For bugs and new features, use the issue tracker located at GitHub.
Also try the chat room!
ViewPort printing
mpolitis wrote at 2011-10-16 06:06:
How can i make printings of an Helix viewport, passing the visual tree to the PrintVisual method of the PrintDialogPrintDialog class ? Or with any method you preconize ? Thank's a lot for your impressive toolkit. Michel.
objo wrote at 2011-10-16 20:26:
hi Michel,
yes, printing should be very easy - use the PrintDialog and PrintVisual.
I just tested the following code in ExportDemo:
private void Print_Click(object sender, RoutedEventArgs e) { var dlg = new PrintDialog(); if (dlg.ShowDialog().GetValueOrDefault()) { dlg.PrintVisual(view1.Viewport, this.Title); } }
where view1 is the HelixViewport3D control.
ps. You could also export the Viewport3D to a bitmap at higher resolution and add this image to your print document.
mpolitis wrote at 2011-10-17 05:35:
Wonderfuf Objo ! i have implemented your solution to the AudioDemo sample that i'm transforming to produce Business Intelligence 3D visualization ! I will give you later some feedback with sample outputs ! Kind regards. Michel.
objo wrote at 2011-10-17 10:08:
cool, send some sample outputs, it is interesting to see how the library is being used!
problems when importing 3ds models
jpg99 wrote at 2012-08-15 16:19:
hello,
i use your class StudioReader to import 3ds files. Most of the time the result is very good, but at several occasions i encountered files that were incorrectly imported.
I don't have 3d studio max, i use the freeware 3D Object Converter to test the 3ds files. And i use your sample application, 3D model viewer, to see 'your' version of the file.
I import house models from the site archive3d.net . It's all free and i know that quality is not guaranteed. For example when reading http://archive3d.net/?a=download&id=599a4f07 , 3D Object Converter warns that 40 bad polygons were found. And indeed when viewing the result there are clearly errors
But in some cases the 3ds file is correctly displayed in 3D Object Converter, but not in your 3D model viewer : http://archive3d.net/?a=download&id=e190fe70
objo wrote at 2012-08-24 09:51:
Thanks for the links, I have added the following issue http://helixtoolkit.codeplex.com/workitem/9965
How to draw a pyramid using two points?
mcab21 wrote at 2014-02-04 16:26:
I want to write a method that takes in two parameters, point1 and point2 (XYZ points), and that the method will draw an pyramid. The origin point will be point1 and the end points will be the square with point2 in the centre.
Any ideas how to do this? I see the one AddPyramid method already but it only takes one point.
Thanks in advance!
TerrainDemo
icube wrote at 2011-06-21 15:16:
Hi,
Looking at the TerrainDemo project, it uses a .btz file. How can i create such a file? Can't really find anything on google regarding this...
And also, could you do a MultiTouchDemo that uses multi touch input to navigate the HelixView3D.
Thanks for this awesome project.
Regards
objo wrote at 2011-06-22 10:18:
.btz is just a gzip compressed .bt file (binary terrain file). It is only used inside Helix toolkit to reduce the size of the .bt files. You can use GZipStream to compress a .bt file, and the TerrainModel class should be able to read it. You find the TerrainModel class in Visual3Ds/Composite/TerrainVisual3D.cs
Note that this class does not implement a level of detail algorithm, so it is only useful for small models. (You can find LOD implementations on http://www.vterrain.org/)
For documentation on .bt files, see http://www.vterrain.org/Implementation/Formats/BT.html
A multi-touch demo would be very interesting, but I don't have any hardware to test it on myself!
Enable/disable Camera transformation
JoJo1 wrote at 2013-12-10 06:26:
I need to enable or disable the camera transformations (pan, rotate, zoom). In case of disabling the camera transformation I set the HelixViewport3D properties 'IsPanEnabled', 'IsRotationEnabled' and 'IsZoomEnabled' to false. This will disable the transformations for mouse input.
Unfortunately the camera can still be transformed by keyboard input:
Ctrl+F, Ctrl+B, Ctrl+L, Ctrl+R, Ctrl+U, Ctrl+D: change view to front, back, left, right, up or down
A,D,W,S,Q,Z: moving along x,y and z axis
Is there any other property to be set?
Is this the intended behavior or is it maybe a bug?
objo wrote at 2013-12-12 21:42:
objo wrote at 2013-12-13 14:46:
How to overlay image on wire frame model in Helix SharpDX version
Hi , i want to overlay image while model in wireframe mode.
please help me to do how to do that
Suggestion for ViewCube
Elemental wrote at 2011-11-18 07:24:
I really like your ViewCube, but one of my collegues at work had an idea that makes it even beter (in my opinion ;-) )
When you click on one side of the cube it rotates to the side. The change is that it rotates to the opposite site on double click.
It an easy change and I thought maybe you want to add it to your library...
private DateTime lastClick = DateTime.MinValue;
void cube_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
DateTime currentTime = DateTime.Now;
Vector3D normalVector = this.m_dicNormalVectors[sender];
Vector3D upVector = this.m_dicUpVectors[sender];
//check if this was a double click or a normal click
if ((currentTime - lastClick).TotalSeconds < 0.5)
{
//this was a double click, so scroll to the opposite side of the cube
normalVector = this.m_dicOppositeNormalVectors[sender];
upVector = this.m_dicOppositeUpVectors[sender];
}
lastClick = currentTime;
var camera = this.MainViewport.Camera as ProjectionCamera;
Point3D target = camera.Position + camera.LookDirection;
double distance = camera.LookDirection.Length;
Vector3D lookDirection = -normalVector;
lookDirection.Normalize();
lookDirection = lookDirection * distance;
Point3D pos = target - lookDirection;
Vector3D upDirection = upVector;
upDirection.Normalize();
Helper.AnimateTo(camera, pos, lookDirection, upDirection, 500);
}
Best Regards
objo wrote at 2011-11-18 19:00:
good idea! I added double-click to the ViewCube in change set 72415!
Elemental wrote at 2011-11-20 18:55:
Wow, I learn so much from your toolkit!
Didn't know the MouseButtonEventArgs has a ClickCount property :-)
Calculate volume of Object
JustFreak wrote at 2013-05-09 21:08:
First of all wonderful job with the library!! I have been using the ModelImporter class for loading STL files into my program, but I would also like to calculate the Volume of a given GeometryModel with a MeshGeometry or a whole ModelGroup with several geometry models inside. I have already found a method to calculate a volume from here Calculate Volume but since I'm new to this I'm not sure how to re-factor it to fit in my case. Any help is greatly appreciated.
Thanks
objo wrote at 2013-05-27 15:23:
Visual3DHelper.TraverseModel
method to traverse the
Model3DGroup
. This method will also give you the transforms that should be applied to each
MeshGeometry3D
to calculate the volumes correctly!specific object visibility range
mihaipruna wrote at 2014-04-20 00:42:
Is there a way to do this without having to remove objects from the viewport?
Thanks
objo wrote at 2014-04-29 10:15:
Visual3D material with alpha color
viettp wrote at 2011-10-02 19:22:
I found that alpha color of plane in ExportDemo only work if the transparent plane is declared last.
I need transparent surface feature in my project and don't want to depend on order of visuals. Is there anyway to overcome this issue?
objo wrote at 2011-10-03 19:31:
try the SortingVisual3D, this object sorts its children on distance from the camera to the center of each child's bounding box.
This is sufficient for simple models like the one shown in the TransparencyDemo, but for more complicated models it might not always give the correct result..
http://helixtoolkit.codeplex.com/wikipage?title=TransparencyDemo
Customer support service by UserEcho