public override void SetUp(NodePoint start, NodePoint end, float thickness = 0.1f)
        {
            Start      = start.position;
            End        = end.position;
            startPoint = start;
            endPoint   = end;
            var d = End - Start;

            defaultGeometryLength = d.magnitude;
            length = defualtLimitLength;

            defaultPosition    = 0.5f * d + Start;
            defaultRotation    = Quaternion.LookRotation(d);
            defaultObjectScale = new Vector3(thickness, thickness, defaultGeometryLength);

            transform.position = defaultPosition;
            transform.rotation = defaultRotation;
            m_stringObject.transform.localScale = defaultObjectScale;
        }
        public override void SetUp(NodePoint start, NodePoint end, float thickness = 0.1f)
        {
            Start      = start.position;
            End        = end.position;
            startPoint = start;
            endPoint   = end;
            var d = End - Start;



            defaultLength = d.magnitude;

            defaultPosition    = 0.5f * d + Start;
            defaultRotation    = Quaternion.LookRotation(d);
            defaultObjectScale = new Vector3(thickness, thickness, defaultLength);

            transform.position = defaultPosition;
            transform.rotation = defaultRotation;
            m_BarObject.transform.localScale = defaultObjectScale;

            start.AttatchToBar(this, NodePoint.EndPointType.IsStart);
            end.AttatchToBar(this, NodePoint.EndPointType.IsEnd);
        }
Exemplo n.º 3
0
        public override void SetupStrings()
        {
            int index   = 0;
            int toIndex = 0;

            for (int i = 0; i < elements.Bars.Count; i += 1)
            {
                if (i % 2 == 0)
                {
                    toIndex = i + 2 >= elements.Bars.Count ? 0 : i + 2;
                }
                var fromBar = elements.Bars[i];
                var toBar0  = elements.Bars[toIndex];
                var toBar1  = elements.Bars[toIndex + 1];

                NodePoint fromPoint0 = fromBar.startPoint;
                NodePoint fromPoint1 = fromBar.endPoint;

                NodePoint toPoint0;
                NodePoint toPoint1;

                if (i % 2 == 0)
                {
                    toPoint0 = toBar0.startPoint;
                    toPoint1 = toBar1.startPoint;
                }
                else
                {
                    toPoint0 = toBar0.endPoint;
                    toPoint1 = toBar1.endPoint;
                }

                var str0 = Instantiate(prefabs.m_StringPrefab, transform);
                str0.SetUp(fromPoint0, toPoint0, param.StringThickness);
                str0.index = index++;
                str0.name  = $"String_{str0.index}_s{fromPoint0.index}_e{toPoint0.index}";


                var str1 = Instantiate(prefabs.m_StringPrefab, transform);
                str1.SetUp(fromPoint0, toPoint1, param.StringThickness);
                str1.index = index++;
                str1.name  = $"String_{str1.index}_s{fromPoint0.index}_e{toPoint1.index}";

                var str2 = Instantiate(prefabs.m_StringPrefab, transform);
                str2.SetUp(fromPoint1, toPoint0, param.StringThickness);
                str2.index = index++;
                str2.name  = $"String_{str2.index}_s{fromPoint1.index}_e{toPoint0.index}";

                var str3 = Instantiate(prefabs.m_StringPrefab, transform);
                str3.SetUp(fromPoint1, toPoint1, param.StringThickness);
                str3.index = index++;
                str3.name  = $"String_{str3.index}_s{fromPoint1.index}_e{toPoint1.index}";

                str0.AddSymmetry(str2);
                str0.AddOpposite(str1);

                str3.AddSymmetry(str1);
                str3.AddOpposite(str2);

                elements.Strings.Add(str0);
                elements.Strings.Add(str1);
                elements.Strings.Add(str2);
                elements.Strings.Add(str3);
            }
        }
 public abstract void SetUp(NodePoint start, NodePoint end, float thickness = 0.1f);