我需要更改的功能从第247行开始保护覆盖MeshGeometry3D Tessellate()
这是我需要更新/更改的文件的链接
https://searchcode.com/codesearch/view/10564811/
我的程序中的调用代码是grID = new GrIDlinesVisual3D();
我不像C语言那样熟悉C#,但我知道我无法创建子类来编辑这个函数.我认为覆盖是实现这一目标的正确方法,但我无法做到这一点.
我创建了一个新文件RectGrID.cs,这就是我在代码中所拥有的:
using HelixToolkit.Wpf;using System.windows;using System.windows.Data;using System.windows.Media;using System.windows.Media.Media3D;namespace Axcro.Helix_Toolkit_Extentions{ class RectGrID : GrIDlinesVisual3D { protected overrIDe MeshGeometry3D Tessellate() { this.lengthDirection = this.LengthDirection; this.lengthDirection.normalize(); this.wIDthDirection = Vector3D.Crossproduct(this.normal,this.lengthDirection); this.wIDthDirection.normalize(); var mesh = new MeshBuilder(true,false); double minX = -this.WIDth / 2; double minY = -this.Length / 2; double maxX = this.WIDth / 2; double maxY = this.Length / 2; double x = minX; double eps = this.Minordistance / 10; while (x <= maxX + eps) { double t = this.Thickness; if (IsMultipleOf(x,this.Majordistance)) { t *= 2; } this.AddlineX(mesh,x,minY,maxY,t); x += this.Minordistance; } var m = mesh.ToMesh(); m.Freeze(); return m; } }}
这段代码编译得很好,但我对Tessellate的更改没有显示出来.
使用覆盖正确的方式来修改Tessellate的功能,还是有更好/更简单的方法来编辑它?
对于它的价值,Tessellate功能是在X和Y方向创建网格线.我只想要Y方向的网格线,而不是X.所以基本上我不想要网格,我只想要线条……
解决方法 您的更改仅适用于RectGrID类.您没有修改原始类的行为,这不是覆盖的工作方式.您需要确保使用Axcro.Helix_Toolkit_Extentions添加;到实例化类的文件顶部.如果RectGrID类位于使用它的不同DLL中.确保添加引用.
然后,您将使用实例化GrIDlinesVisual3D的类实例
grID = new RectGrID();总结
以上是内存溢出为你收集整理的编辑Nuget包C#Helixtoolkit.WPF全部内容,希望文章能够帮你解决编辑Nuget包C#Helixtoolkit.WPF所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)