예제 #1
0
                private void GetInfoCylindre()
                {
                    if (Surface.IsCylinder())
                    {
                        Double[] Param = Surface.CylinderParams;

                        Origine   = new gPoint(Param[0], Param[1], Param[2]);
                        Direction = new gVecteur(Param[3], Param[4], Param[5]);
                        Rayon     = Param[6];

                        var     UV      = (Double[])SwFace.GetUVBounds();
                        Boolean Reverse = SwFace.FaceInSurfaceSense();

                        var ev1 = (Double[])Surface.Evaluate((UV[0] + UV[1]) * 0.5, (UV[2] + UV[3]) * 0.5, 0, 0);
                        if (Reverse)
                        {
                            ev1[3] = -ev1[3];
                            ev1[4] = -ev1[4];
                            ev1[5] = -ev1[5];
                        }

                        Normale = new gVecteur(ev1[3], ev1[4], ev1[5]);
                    }
                }