Exemple #1
0
        public PolyTubeSO BuildSO(SOMaterial material, float scale = 1.0f)
        {
            Vector3d vCenter = curve.GetBoundingBox().Center;
            DCurve3  shifted = new DCurve3(curve);

            for (int i = 0; i < shifted.VertexCount; ++i)
            {
                shifted[i] -= vCenter;
            }
            Frame3f shiftedFrame = new Frame3f((Vector3f)vCenter, Quaternionf.Identity);

            PolyTubeSO so = new PolyTubeSO()
            {
                Curve   = shifted,
                Polygon = polygon
            };

            so.Create(material);
            so.SetLocalFrame(shiftedFrame, CoordSpace.WorldCoords);

            return(so);
        }