zoukankan      html  css  js  c++  java
  • NMM3DViewer 设计

         在FrameworkInterfaces工程的INMM3DServer.cs中定义了

        岩石材料结构 BlockMaterial  -----> StrBLOCKProperty
         public struct StrBLOCKProperty
            {
                public int      nID;
                public double   dbDensity;        //密度       [0]
                public double   dbYoungModulus;        //杨氏模量 [0]
            public double     dbPoissonRadio;        //泊松比   [0]
            public double[] dbGravityDirection;     //重力方向 [0,0,-1]
            public double     dbGravityAcceleration;    //重力加速度[9.8]
            public double[] dbInitialStress;    //初始应力  [0,0,0]
            public double     dbStressGradient;    //应力梯度  [0]
        }
        节理材料结构 faceMaterial  ----> StrFaceProperty
        public struct StrFACEProperty
        {
            public int nID;
            public double dbCohesion;        //粘聚力   [0]
            public double dbFriction;        //摩擦角   [0]
            public double dbTensileStrength;    //抗拉强度 [0]
            public double dbAperture;        //节理宽度 [0]
        }

        关键块结构 keyblock
        public struct StrTARGETBLOCKMODEL
        {
            public StrBLOCK[]   ObjBlockArr;
                public StrFACET[]   ObjFACETArr;
                public StrVERTEX[]  ObjVERTEXArr;
        }
            public struct StrBLOCK
            {
                    public int      nID;
                     public int      nEDGECOUNT;
                    public int[]    nFACEIDs;
                    public int[]    nVERTEXIDs;
                    public int      nBLOCKTYPEIndex;
                    public int      nBLOCKMATERIALIndexID;
           }
            public struct StrKEYBLOCK
            {
                    public int      nBLOCKID;
                     public int      nITERATION;
                   public double[] dbVECTOR;
                     public double   dbFORCE;
                     public double   dbVOLUME;
            }
            public struct StrFACET
            {
                public int      nID;
                public int[]    nVERTEXIDs;
                public double[] dbNORMALVECTOR;
                public double   dbDISTANCE;
                public double   dbAREA;
                    public int      dbFACETMATERIALIndexID;
                public int      dbFACETIndexID;
            }
            public struct StrVERTEX
            {
                public int      nID;
                public double[] dbCOORD;
            }

    2. 界面部分摘主要的重新写 - 2周时间 (8个工作日内)                                                           
        
    3. 确定交换数据定义和接口  -- 1周时间
        a. 定义岩石材料和节理材料的接口 ----》 调用接口传给底层
        b. 定义 切割 接口          ----》 调用接口传给底层
        c. 定义 分析 接口        ----》 动用接口传给底层

    4. 渲染和选择    --  3周时间(10个工作日)
        改用osg作为3D渲染平台

    5. 集成测试        -- 2周时间

    6. 操作手册和说明文档    -- 1周时间(并行)
    ////////////////////////////////////////////////////

    系统架构
    架构1 :
            ///////////////////////////////////////////////////////////    
            //         “系统界面框架模块”
            //    使用Virtual C#开发.NetFrameWork 4.0(doNet控件)
            //          程序名:NMM3DVIEWER.exe
            //        工程名:MainUI
            //////////////////////////////////////////////////////////
                        /
                        ||
                        /
        //////////////////////////////////////////////////////////////////////////////
        //                "中间层模块"
        //        功能:采用托管C++将底层的C++类封装以便上层C#调用
        //        一个或多个dll,以N打头
        //            
        //////////////////////////////////////////////////////////////////////////////
                        /
                        ||
                        /"核心层模块"
        /////////////////////////////////////////////////////////////////////////////////////
        //                    "逻辑模块"
        //                定义显示控制和专业应用的逻辑接口
        //                实现业务逻辑与具体实现技术分离
        //                                     模块名称:RockInterface.dll
        //                 调用业务模块和渲染模块相关接口实现
        //    --------------------------------------------------------------------------
        //        |                 |             |                                                            
        //       "专业业务模块"                         |        "3D渲染模块"
        //C++封装的dll负责切割,分析等专业算法的实现 |负责渲染“岩石”“节理面”等专业对象
        //在此模块中定义基础数据结构             |场景操控,用户交互,选择反馈,漫游等
        //       模块名称:???.dll                     |       模块名称:RockScene.dll
        //                         |    
        /////////////////////////////////////////////////////////////////////////////////////

    架构2

            ///////////////////////////////////////////////////////////    
            //         “系统界面框架模块”
            //    使用Virtual C++开发 office风格的窗口界面
            //          程序名:NMM3DVIEWER.exe
            //        工程名:  NMMRockExplore
            //////////////////////////////////////////////////////////
                        /
                        ||
                        /"核心层模块"
        /////////////////////////////////////////////////////////////////////////////////////
        //                    "逻辑模块"
        //                定义显示控制和专业应用的逻辑接口
        //                实现业务逻辑与具体实现技术分离
        //                                     模块名称:RockInterface.dll
        //                 调用业务模块和渲染模块相关接口实现
        //    --------------------------------------------------------------------------
        //        |                 |             |                                                            
        //       "专业业务模块"                         |        "3D渲染模块"
        //C++封装的dll负责切割,分析等专业算法的实现 |负责渲染“岩石”“节理面”等专业对象
        //在此模块中定义基础数据结构             |场景操控,用户交互,选择反馈,漫游等
        //       模块名称:???.dll                     |       模块名称:RockScene.dll
        //                         |    
        /////////////////////////////////////////////////////////////////////////////////////

  • 相关阅读:
    hdu6229 Wandering Robots 2017沈阳区域赛M题 思维加map
    hdu6223 Infinite Fraction Path 2017沈阳区域赛G题 bfs加剪枝(好题)
    hdu6438 Buy and Resell 买卖物品 ccpc网络赛 贪心
    hdu6441 Find Integer 求勾股数 费马大定理
    bzoj 1176 Mokia
    luogu 3415 祭坛
    bzoj 1010 玩具装箱
    bzoj 3312 No Change
    luogu 3383【模板】线性筛素数
    bzoj 1067 降雨量
  • 原文地址:https://www.cnblogs.com/mazhenyu/p/4686583.html
Copyright © 2011-2022 走看看