示例#1
0
    public sLine AddLine(sVertex point1, sVertex point2)
    {
        if (listLine.Exists(L => L.IsLine(point1, point2)))
        {
            // Linha já existe na estrutura
            return(null);
        }

        sLine l = new sLine(point1, point2);

        listLine.Add(l);
        switch (sHelper.GetInstance().newLineMaterial)
        {
        case 1:
            l.SetSoftHardness();
            break;

        case 2:
            l.SetMidHardness();
            break;

        case 3:
            l.SetHardHardness();
            break;
        }
        return(l);
    }
示例#2
0
        //Добавить линию
        public void AddLine(Point p1, Point p2)
        {
            sLine line = new sLine(GetDeleateContainer(), p1, p2);

            shapelist.Add(line);

            line.Draw();
            SynchronizeImage();
        }
示例#3
0
        public sFrame(sLine axln)
        {
            this.node0          = new sNode();
            this.node0.location = axln.startPoint;
            this.node1          = new sNode();
            this.node1.location = axln.endPoint;

            this.axis = axln;
        }
示例#4
0
    public void SegmentLine(int X, int Y)
    {
        sLine   original = listLine.Find(l => l.Contains(X, Y));
        sVertex newPoint = new sVertex(X, Y);

        listLine.Add(new sLine(original.Vertex1, newPoint, original.GetHardness()));
        listLine.Add(new sLine(newPoint, original.Vertex2, original.GetHardness()));
        Destroy(original.GameObject());
        listLine.Remove(original);
        AddVertex(X, Y);
    }
示例#5
0
 public void RemoveLine(sLine line)
 {
     if (listLine.Remove(line))
     {
         Destroy(line.GameObject());
     }
     else
     {
         throw (new UnityException("RemoveLine() -> Objeto inexistente"));
     }
 }
示例#6
0
        public sFrame(sLine axln, sXYZ upVec)
        {
            this.node0          = new sNode();
            this.node0.location = axln.startPoint;
            this.node1          = new sNode();
            this.node1.location = axln.endPoint;

            this.axis = axln;

            this.AwareLocalPlane(upVec);
        }
示例#7
0
        public void EnsureBeamElement()
        {
            if (this.frames.Count == 0)
            {
                sCurve bc = this.parentCrv;
                if (bc.curveType == eCurveType.LINE)
                {
                    sLine ln = bc as sLine;
                    //??? UPVECTOR???
                    this.AddBeamElement(new sLine(ln.startPoint, ln.PointAt(0.5)), sXYZ.Zaxis(), 0);
                    this.AddBeamElement(new sLine(ln.PointAt(0.5), ln.endPoint), sXYZ.Zaxis(), 1);
                }
            }
            else if (this.frames.Count == 1)
            {
                sFrame sTemp = this.frames[0].DuplicatesFrame();
                this.frames.Clear();

                this.AddBeamElement(new sLine(sTemp.axis.startPoint, sTemp.axis.PointAt(0.5)), sTemp.upVector, 0);
                this.AddBeamElement(new sLine(sTemp.axis.PointAt(0.5), sTemp.axis.endPoint), sTemp.upVector, 1);
            }
        }
示例#8
0
        public void AddBeamElement(sLine sln, sXYZ upvec, int id)
        {
            sFrame sb = new sFrame(sln, upvec.DuplicatesXYZ());

            sb.parentGuid = this.objectGUID;
            sb.frameName  = this.frameSetName + "_" + this.setId + "_" + id;
            sb.frameID    = id;

            sb.crossSection = this.crossSection;

            //load
            if (this.lineLoads != null)
            {
                sb.lineLoads = new List <sLineLoad>();
                foreach (sLineLoad ll in this.lineLoads)
                {
                    sb.lineLoads.Add(ll.DuplicatesLineLoad());
                }
            }


            this.frames.Add(sb);
        }
示例#9
0
 internal Dyn.Line ToDynamoLine(sLine sln)
 {
     return(Dyn.Line.ByStartPointEndPoint(ToDynamoPoint(sln.startPoint), ToDynamoPoint(sln.endPoint)));
 }
 public Line ToRhinoLine(sLine sl)
 {
     return(new Line(ToRhinoPoint3d(sl.startPoint), ToRhinoPoint3d(sl.endPoint)));
 }
示例#11
0
 public bool ContainsLine(sLine line)
 {
     return(listLine.Exists(l => l.IsLine(line.Vertex1, line.Vertex2)));
 }