// add the axes mesh to the Mesh3D array // if you are using the projection matrix which is not uniform along all the axess, you need change this function public void AddAxesMeshes(ArrayList meshs) { if (!m_bUseAxes) { return; } float radius = (m_xAxisLength + m_yAxisLength + m_zAxisLength) / (3 * m_axisLengthWidthRatio); Mesh3D xAxisCylinder = new Cylinder3D(radius, radius, m_xAxisLength, 6); xAxisCylinder.SetColor(m_axisColor); TransformMatrix.Transform(xAxisCylinder, new Point3D(m_xAxisCenter + m_xAxisLength / 2, m_yAxisCenter, m_zAxisCenter), 0, 90); meshs.Add(xAxisCylinder); Mesh3D xAxisCone = new Cone3D(2 * radius, 2 * radius, radius * 5, 6); xAxisCone.SetColor(m_axisColor); TransformMatrix.Transform(xAxisCone, new Point3D(m_xAxisCenter + m_xAxisLength, m_yAxisCenter, m_zAxisCenter), 0, 90); meshs.Add(xAxisCone); Mesh3D yAxisCylinder = new Cylinder3D(radius, radius, m_yAxisLength, 6); yAxisCylinder.SetColor(m_axisColor); TransformMatrix.Transform(yAxisCylinder, new Point3D(m_xAxisCenter, m_yAxisCenter + m_yAxisLength / 2, m_zAxisCenter), 90, 90); meshs.Add(yAxisCylinder); Mesh3D yAxisCone = new Cone3D(2 * radius, 2 * radius, radius * 5, 6); yAxisCone.SetColor(m_axisColor); TransformMatrix.Transform(yAxisCone, new Point3D(m_xAxisCenter, m_yAxisCenter + m_yAxisLength, m_zAxisCenter), 90, 90); meshs.Add(yAxisCone); Mesh3D zAxisCylinder = new Cylinder3D(radius, radius, m_zAxisLength, 6); zAxisCylinder.SetColor(m_axisColor); TransformMatrix.Transform(zAxisCylinder, new Point3D(m_xAxisCenter, m_yAxisCenter, m_zAxisCenter + m_zAxisLength / 2), 0, 0); meshs.Add(zAxisCylinder); Mesh3D zAxisCone = new Cone3D(2 * radius, 2 * radius, radius * 5, 6); zAxisCone.SetColor(m_axisColor); TransformMatrix.Transform(zAxisCone, new Point3D(m_xAxisCenter, m_yAxisCenter, m_zAxisCenter + m_zAxisLength), 0, 0); meshs.Add(zAxisCone); }
public MainWindow() { _transformMatrix = new TransformMatrix(); _selectedVieportRect = new ViewportRect(); _mappingEngine = Mapper.Engine; _integralSystemSolver = new IntegralSystemSolver(); Settings = new Settings(); ViewModel = new MainWindowViewModel { FunctionF = "1", FunctionG = "1", Lambda = "1", PartitionsOnCrack = 10, PartitionsOnBound = 20, MeshSize = 20, Radius = 2 }; DataContext = ViewModel; InitializeComponent(); InitResultTable(); }
// select public virtual void Select(ViewportRect rect, TransformMatrix matrix, Viewport3D viewport3d) { }