コード例 #1
0
    private void getBulgeVertices(List <Vector3> listVertices, JigsawBulgeEnum jigsawBulge, Direction2DEnum direction, float withX, float highY)
    {
        List <Vector3> convex;
        List <Vector3> concave;
        List <Vector3> leftConcavePositionList = new List <Vector3>();

        leftConcavePositionList.Add(new Vector3(-withX, -1.4f));
        leftConcavePositionList.Add(new Vector3(-withX + sawtoothHigh, -1.2f));
        leftConcavePositionList.Add(new Vector3(-withX - sawtoothHigh, -1f));
        leftConcavePositionList.Add(new Vector3(-withX + sawtoothHigh, -0.8f));
        leftConcavePositionList.Add(new Vector3(-withX - sawtoothHigh, -0.6f));
        leftConcavePositionList.Add(new Vector3(-withX + sawtoothHigh, -0.4f));
        leftConcavePositionList.Add(new Vector3(-withX - sawtoothHigh, -0.2f));

        leftConcavePositionList.Add(new Vector3(-withX + sawtoothHigh, 0f));

        leftConcavePositionList.Add(new Vector3(-withX - sawtoothHigh, 0.2f));
        leftConcavePositionList.Add(new Vector3(-withX + sawtoothHigh, 0.4f));
        leftConcavePositionList.Add(new Vector3(-withX - sawtoothHigh, 0.6f));
        leftConcavePositionList.Add(new Vector3(-withX + sawtoothHigh, 0.8f));
        leftConcavePositionList.Add(new Vector3(-withX - sawtoothHigh, 1f));
        leftConcavePositionList.Add(new Vector3(-withX + sawtoothHigh, 1.2f));
        leftConcavePositionList.Add(new Vector3(-withX, 1.4f));

        GameUtil.getJigsawPuzzlescCCPositon(leftConcavePositionList, direction, withX, highY, out convex, out concave);

        if (jigsawBulge.Equals(JigsawBulgeEnum.Bulge))
        {
            listVertices.AddRange(convex);
        }
        else if (jigsawBulge.Equals(JigsawBulgeEnum.Sunken))
        {
            listVertices.AddRange(concave);
        }
    }
コード例 #2
0
    /// <summary>
    /// 生成一个随机凹凸的拼图
    /// </summary>
    /// <param name="jigsawStyle"></param>
    /// <param name="jigsawW"></param>
    /// <param name="jigsawH"></param>
    /// <returns></returns>
    public static JigsawBean createJigsaw(JigsawStyleEnum jigsawStyle, float jigsawW, float jigsawH, Texture2D jigsawPic)
    {
        JigsawBean jigsawBean = new JigsawBean();
        //按样式生成不同的拼图碎片
        IBaseJigsawBuilder jigsawBuilder;

        JigsawBulgeEnum[] bulge;

        if (jigsawStyle == JigsawStyleEnum.Def)
        {
            jigsawBuilder = new NomralJigsawBuilder();
            bulge         = new JigsawBulgeEnum[4]
            {
                (JigsawBulgeEnum)DevUtil.getRandomInt(0, 2),
                (JigsawBulgeEnum)DevUtil.getRandomInt(0, 2),
                (JigsawBulgeEnum)DevUtil.getRandomInt(0, 2),
                (JigsawBulgeEnum)DevUtil.getRandomInt(0, 2)
            };
        }
        else
        {
            LogUtil.logError("没有相对于样式的拼图");
            return(null);
        }
        return(jigsawBuilder.buildJigsaw(jigsawW, jigsawH, bulge, jigsawPic));
    }
コード例 #3
0
    private void getBulgeVertices(List <Vector3> listVertices, JigsawBulgeEnum jigsawBulge, Direction2DEnum direction, float withX, float highY)
    {
        List <Vector3> convex;
        List <Vector3> concave;
        List <Vector3> leftConcavePositionList = new List <Vector3>();

        //TODO 添加传统拼图形状
        leftConcavePositionList.Add(new Vector3(-withX, -crossWith / 2f));
        leftConcavePositionList.Add(new Vector3(-withX - 0.45f, -crossWith / 2f));
        leftConcavePositionList.Add(new Vector3(-withX - 0.45f, -crossWith / 2f - 0.3f));
        leftConcavePositionList.Add(new Vector3(-withX - 0.45f - crossWith, -crossWith / 2f - 0.3f));
        leftConcavePositionList.Add(new Vector3(-withX - 0.45f - crossWith, -crossWith / 2f));
        leftConcavePositionList.Add(new Vector3(-withX - 1f, -crossWith / 2f));

        leftConcavePositionList.Add(new Vector3(-withX - 1f, crossWith / 2f));
        leftConcavePositionList.Add(new Vector3(-withX - 0.45f - crossWith, crossWith / 2f));
        leftConcavePositionList.Add(new Vector3(-withX - 0.45f - crossWith, crossWith / 2f + 0.3f));
        leftConcavePositionList.Add(new Vector3(-withX - 0.45f, crossWith / 2f + 0.3f));
        leftConcavePositionList.Add(new Vector3(-withX - 0.45f, crossWith / 2f));
        leftConcavePositionList.Add(new Vector3(-withX, crossWith / 2f));

        GameUtil.getJigsawPuzzlescCCPositon(leftConcavePositionList, direction, withX, highY, out convex, out concave);

        if (jigsawBulge.Equals(JigsawBulgeEnum.Bulge))
        {
            listVertices.AddRange(convex);
        }
        else if (jigsawBulge.Equals(JigsawBulgeEnum.Sunken))
        {
            listVertices.AddRange(concave);
        }
    }
コード例 #4
0
    /// <summary>
    /// 设置拼图块所有边的凹凸情况
    /// </summary>
    /// <param name="listJigsaw">所有的拼图块</param>
    /// <param name="jigsawItem">当前拼图块</param>
    protected void setBulgeEdgeForItem(List <JigsawBean> listJigsaw, JigsawBean jigsawItem)
    {
        JigsawBulgeEnum leftBulge  = JigsawBulgeEnum.Smooth;
        JigsawBulgeEnum rightBulge = JigsawBulgeEnum.Smooth;
        JigsawBulgeEnum belowBulge = JigsawBulgeEnum.Smooth;
        JigsawBulgeEnum aboveBulge = JigsawBulgeEnum.Smooth;

        int     listJigsawCount = listJigsaw.Count;
        Vector2 markLocation    = jigsawItem.MarkLocation;

        if (markLocation == null)
        {
            return;
        }

        for (int childposition = 0; childposition < listJigsawCount; childposition++)
        {
            JigsawBean childJigsaw       = listJigsaw[childposition];
            Vector2    childMarkLocation = childJigsaw.MarkLocation;
            if (markLocation == null)
            {
                continue;
            }
            if (childMarkLocation.y.Equals(markLocation.y))
            {
                if ((childMarkLocation.x - markLocation.x) == 1)
                {
                    rightBulge = compareBulge(childJigsaw, JigsawStyleNormalEdgeEnum.Right);
                }
                else if ((childMarkLocation.x - markLocation.x) == -1)
                {
                    leftBulge = compareBulge(childJigsaw, JigsawStyleNormalEdgeEnum.Left);
                }
            }
            if (childMarkLocation.x.Equals(markLocation.x))
            {
                if ((childMarkLocation.y - markLocation.y) == 1)
                {
                    aboveBulge = compareBulge(childJigsaw, JigsawStyleNormalEdgeEnum.Above);
                }
                else if ((childMarkLocation.y - markLocation.y) == -1)
                {
                    belowBulge = compareBulge(childJigsaw, JigsawStyleNormalEdgeEnum.Below);
                }
            }
        }

        setBulgeEdge(jigsawItem, new JigsawBulgeEnum[4] {
            leftBulge, aboveBulge, rightBulge, belowBulge
        });
    }
コード例 #5
0
    public override void setListVerticesForItem(JigsawBean jigsawItem)
    {
        base.baseSetListVerticesForItem(jigsawItem);

        float withX = jigsawItem.JigsawWith / 2f;
        float highY = jigsawItem.JigsawHigh / 2f;

        //根据凹凸属性生成坐标点
        List <Vector3> listVertices = new List <Vector3>();

        JigsawBulgeEnum[] listBulge  = jigsawItem.ListBulge;
        JigsawBulgeEnum   leftBulge  = listBulge[0];
        JigsawBulgeEnum   aboveBulge = listBulge[1];
        JigsawBulgeEnum   rightBulge = listBulge[2];
        JigsawBulgeEnum   belowBulge = listBulge[3];

        //添加起始点
        listVertices.Add(jigsawItem.CenterVector);

        //添加左下角点
        listVertices.Add(new Vector3(-withX, -highY));
        //添加左边点
        getTrapezoidVertices(listVertices, leftBulge, Direction2DEnum.Left, withX, highY);

        //添加左上角点
        listVertices.Add(new Vector3(-withX, highY));
        //添加上边点
        getTrapezoidVertices(listVertices, aboveBulge, Direction2DEnum.Above, withX, highY);

        //添加右上角点
        listVertices.Add(new Vector3(withX, highY));
        //添加右边
        getTrapezoidVertices(listVertices, rightBulge, Direction2DEnum.Right, withX, highY);

        //添加右下角点
        listVertices.Add(new Vector3(withX, -highY));
        //添加下边
        getTrapezoidVertices(listVertices, belowBulge, Direction2DEnum.Below, withX, highY);

        setListVertices(jigsawItem, listVertices);
    }
コード例 #6
0
    private void getHeartVertices(List <Vector3> listVertices, JigsawBulgeEnum jigsawBulge, Direction2DEnum direction, float withX, float highY)
    {
        List <Vector3> convex;
        List <Vector3> concave;
        List <Vector3> leftConcavePositionList = new List <Vector3>();

        leftConcavePositionList.Add(new Vector3(-withX, -m_HeartFoot / 2f));
        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh / 2f, -m_HeartWith / 2f));
        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 4.5f / 6f, -m_HeartWith * 5.5f / 12f));
        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 5.5f / 6f, -m_HeartWith * 4.5f / 12f));

        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 5.8f / 6f, -m_HeartWith * 3.2f / 12f));
        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 5.8f / 6f, -m_HeartWith * 2.8f / 12f));

        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 5.5f / 6f, -m_HeartWith * 1.5f / 12f));
        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 5f / 6f, -m_HeartWith * 0.5f / 12f));

        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 3f / 4f, 0f));

        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 5f / 6f, m_HeartWith * 0.5f / 12f));
        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 5.5f / 6f, m_HeartWith * 1.5f / 12f));

        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 5.8f / 6f, m_HeartWith * 2.8f / 12f));
        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 5.8f / 6f, m_HeartWith * 3.2f / 12f));

        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 5.5f / 6f, m_HeartWith * 4.5f / 12f));
        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh * 4.5f / 6f, m_HeartWith * 5.5f / 12f));
        leftConcavePositionList.Add(new Vector3(-withX + -m_HeartHigh / 2f, m_HeartWith / 2f));
        leftConcavePositionList.Add(new Vector3(-withX, m_HeartFoot / 2f));

        GameUtil.getJigsawPuzzlescCCPositon(leftConcavePositionList, direction, withX, highY, out convex, out concave);

        if (jigsawBulge.Equals(JigsawBulgeEnum.Bulge))
        {
            listVertices.AddRange(convex);
        }
        else if (jigsawBulge.Equals(JigsawBulgeEnum.Sunken))
        {
            listVertices.AddRange(concave);
        }
    }
コード例 #7
0
    private void getTriangleVertices(List <Vector3> listVertices, JigsawBulgeEnum jigsawBulge, Direction2DEnum direction, float withX, float highY)
    {
        List <Vector3> convex;
        List <Vector3> concave;
        List <Vector3> leftConcavePositionList = new List <Vector3>();

        leftConcavePositionList.Add(new Vector3(-withX, -m_TriangleWith / 2f));
        leftConcavePositionList.Add(new Vector3(-withX + -m_TriangleHigh, 0));
        leftConcavePositionList.Add(new Vector3(-withX, m_TriangleWith / 2f));

        GameUtil.getJigsawPuzzlescCCPositon(leftConcavePositionList, direction, withX, highY, out convex, out concave);

        if (jigsawBulge.Equals(JigsawBulgeEnum.Bulge))
        {
            listVertices.AddRange(convex);
        }
        else if (jigsawBulge.Equals(JigsawBulgeEnum.Sunken))
        {
            listVertices.AddRange(concave);
        }
    }
コード例 #8
0
    private void getPentagramVertices(List <Vector3> listVertices, JigsawBulgeEnum jigsawBulge, Direction2DEnum direction, float withX, float highY)
    {
        List <Vector3> convex;
        List <Vector3> concave;
        List <Vector3> leftConcavePositionList = new List <Vector3>();

        leftConcavePositionList.Add(new Vector3(-withX, -m_PentagramFoot));

        leftConcavePositionList.Add(new Vector3(-withX + 0.2f * m_PentagramZoom - m_PentagramWith / 2f, -0.15f * m_PentagramZoom));

        leftConcavePositionList.Add(new Vector3(-withX + 0.15f * m_PentagramZoom - m_PentagramWith / 2f, -0.47f * m_PentagramZoom));

        leftConcavePositionList.Add(new Vector3(-withX + -0.08f * m_PentagramZoom - m_PentagramWith / 2f, -0.24f * m_PentagramZoom));

        leftConcavePositionList.Add(new Vector3(-withX + -0.4f * m_PentagramZoom - m_PentagramWith / 2f, -0.29f * m_PentagramZoom));

        leftConcavePositionList.Add(new Vector3(-withX + -0.25f * m_PentagramZoom - m_PentagramWith / 2f, 0f));

        leftConcavePositionList.Add(new Vector3(-withX + -0.4f * m_PentagramZoom - m_PentagramWith / 2f, 0.29f * m_PentagramZoom));

        leftConcavePositionList.Add(new Vector3(-withX + -0.08f * m_PentagramZoom - m_PentagramWith / 2f, 0.24f * m_PentagramZoom));

        leftConcavePositionList.Add(new Vector3(-withX + 0.15f * m_PentagramZoom - m_PentagramWith / 2f, 0.47f * m_PentagramZoom));

        leftConcavePositionList.Add(new Vector3(-withX + 0.2f * m_PentagramZoom - m_PentagramWith / 2f, 0.15f * m_PentagramZoom));

        leftConcavePositionList.Add(new Vector3(-withX, m_PentagramFoot));
        GameUtil.getJigsawPuzzlescCCPositon(leftConcavePositionList, direction, withX, highY, out convex, out concave);

        if (jigsawBulge.Equals(JigsawBulgeEnum.Bulge))
        {
            listVertices.AddRange(convex);
        }
        else if (jigsawBulge.Equals(JigsawBulgeEnum.Sunken))
        {
            listVertices.AddRange(concave);
        }
    }
コード例 #9
0
    /// <summary>
    /// 比较相邻拼图碎片的凹凸情况 获取自身的凹凸情况
    /// </summary>
    /// <param name="jigsawBean"></param>
    /// <returns></returns>
    protected JigsawBulgeEnum compareBulge(JigsawBean compareJigsaw, JigsawStyleNormalEdgeEnum edgeEnum)
    {
        if (compareJigsaw == null)
        {
            return(JigsawBulgeEnum.Smooth);
        }
        //获取相邻拼图的凹凸情况
        JigsawBulgeEnum[] compareBulgeList = compareJigsaw.ListBulge;
        if (compareBulgeList == null || compareBulgeList.Length != 4)
        {
            int randonBulge = DevUtil.getRandomInt(1, 2);
            if (randonBulge == 1)
            {
                return(JigsawBulgeEnum.Bulge);
            }
            else
            {
                return(JigsawBulgeEnum.Sunken);
            }
        }

        int bulgeposition;

        if (edgeEnum == JigsawStyleNormalEdgeEnum.Left)
        {
            bulgeposition = 2;
        }
        else if (edgeEnum == JigsawStyleNormalEdgeEnum.Above)
        {
            bulgeposition = 3;
        }
        else if (edgeEnum == JigsawStyleNormalEdgeEnum.Right)
        {
            bulgeposition = 0;
        }
        else if (edgeEnum == JigsawStyleNormalEdgeEnum.Below)
        {
            bulgeposition = 1;
        }
        else
        {
            return(JigsawBulgeEnum.Smooth);
        }


        JigsawBulgeEnum compareBulgeEnum = compareBulgeList[bulgeposition];

        if (compareBulgeEnum == JigsawBulgeEnum.Smooth)
        {
            return(JigsawBulgeEnum.Smooth);
        }
        else if (compareBulgeEnum == JigsawBulgeEnum.Bulge)
        {
            return(JigsawBulgeEnum.Sunken);
        }
        else if (compareBulgeEnum == JigsawBulgeEnum.Sunken)
        {
            return(JigsawBulgeEnum.Bulge);
        }
        else
        {
            return(JigsawBulgeEnum.Smooth);
        }
    }
コード例 #10
0
    /// <summary>
    /// 设置顶点
    /// </summary>
    /// <param name="jigsawItem"></param>
    public override void setListVerticesForItem(JigsawBean jigsawItem)
    {
        JigsawBulgeEnum[] listBulge = jigsawItem.ListBulge;

        if (listBulge == null)
        {
            throw new Exception("没有凹凸参数");
        }

        base.baseSetListVerticesForItem(jigsawItem);

        //根据凹凸属性生成坐标点
        List <Vector3> listVertices = new List <Vector3>();

        JigsawBulgeEnum leftBulge  = listBulge[0];
        JigsawBulgeEnum aboveBulge = listBulge[1];
        JigsawBulgeEnum rightBulge = listBulge[2];
        JigsawBulgeEnum belowBulge = listBulge[3];

        float withX = jigsawItem.JigsawWith / 2f;
        float highY = jigsawItem.JigsawHigh / 2f;

        //添加起始点
        listVertices.Add(jigsawItem.CenterVector);
        //添加左下角点
        listVertices.Add(new Vector3(-withX, -highY));
        //添加左边凸出部分坐标点
        Vector3        lefgEdgeCenterVector = new Vector3(-withX, 0);
        List <Vector3> leftCircleVertices   = getCircleVertices(lefgEdgeCenterVector, m_JigsawBulgeR, JigsawStyleNormalEdgeEnum.Left, leftBulge);
        List <Vector3> leftVertices         = getCirclePartEdgeVerticesForNormal(leftCircleVertices, lefgEdgeCenterVector, JigsawStyleNormalEdgeEnum.Left, leftBulge);

        listVertices.AddRange(leftVertices);

        //添加左上角点
        listVertices.Add(new Vector3(-withX, highY));
        //添加上边凸出部分坐标点
        Vector3        aboveEdgeCenterVector = new Vector3(0, highY);
        List <Vector3> aboveCircleVertices   = getCircleVertices(aboveEdgeCenterVector, m_JigsawBulgeR, JigsawStyleNormalEdgeEnum.Above, aboveBulge);
        List <Vector3> aboveVertices         = getCirclePartEdgeVerticesForNormal(aboveCircleVertices, aboveEdgeCenterVector, JigsawStyleNormalEdgeEnum.Above, aboveBulge);

        listVertices.AddRange(aboveVertices);

        //添加右上角点
        listVertices.Add(new Vector3(withX, highY));
        //添加右边凸出部分坐标点
        Vector3        rightEdgeCenterVector = new Vector3(withX, 0);
        List <Vector3> rightCircleVertices   = getCircleVertices(rightEdgeCenterVector, m_JigsawBulgeR, JigsawStyleNormalEdgeEnum.Right, rightBulge);
        List <Vector3> rightVertices         = getCirclePartEdgeVerticesForNormal(rightCircleVertices, rightEdgeCenterVector, JigsawStyleNormalEdgeEnum.Right, rightBulge);

        listVertices.AddRange(rightVertices);

        //添加右下角点
        listVertices.Add(new Vector3(withX, -highY));
        //添加下边凸出部分坐标点
        Vector3        belowEdgeCenterVector = new Vector3(0, -highY);
        List <Vector3> belowCircleVertices   = getCircleVertices(belowEdgeCenterVector, m_JigsawBulgeR, JigsawStyleNormalEdgeEnum.Below, belowBulge);
        List <Vector3> belowVertices         = getCirclePartEdgeVerticesForNormal(belowCircleVertices, belowEdgeCenterVector, JigsawStyleNormalEdgeEnum.Below, belowBulge);

        listVertices.AddRange(belowVertices);

        setListVertices(jigsawItem, listVertices);
    }
コード例 #11
0
    /// <summary>
    /// 获取普通拼图凸出部分点坐标
    /// </summary>
    /// <param name="circleVertices"></param>
    /// <param name="edgeEnum"></param>
    /// <returns></returns>
    private List <Vector3> getCirclePartEdgeVerticesForNormal(List <Vector3> circleVertices, Vector3 centerVecotr, JigsawStyleNormalEdgeEnum edgeEnum, JigsawBulgeEnum bulgeEnum)
    {
        List <Vector3> listVertices = new List <Vector3>();

        foreach (Vector3 itemVector in circleVertices)
        {
            if (edgeEnum == JigsawStyleNormalEdgeEnum.Left)
            {
                if (bulgeEnum == JigsawBulgeEnum.Bulge)
                {
                    if (itemVector.x <= centerVecotr.x)
                    {
                        listVertices.Add(itemVector);
                    }
                }
                else if (bulgeEnum == JigsawBulgeEnum.Sunken)
                {
                    if (itemVector.x >= centerVecotr.x)
                    {
                        listVertices.Add(itemVector);
                    }
                }
            }
            else if (edgeEnum == JigsawStyleNormalEdgeEnum.Above)
            {
                if (bulgeEnum == JigsawBulgeEnum.Bulge)
                {
                    if (itemVector.y >= centerVecotr.y)
                    {
                        listVertices.Add(itemVector);
                    }
                }
                else if (bulgeEnum == JigsawBulgeEnum.Sunken)
                {
                    if (itemVector.y <= centerVecotr.y)
                    {
                        listVertices.Add(itemVector);
                    }
                }
            }
            else if (edgeEnum == JigsawStyleNormalEdgeEnum.Right)
            {
                if (bulgeEnum == JigsawBulgeEnum.Bulge)
                {
                    if (itemVector.x >= centerVecotr.x)
                    {
                        listVertices.Add(itemVector);
                    }
                }
                else if (bulgeEnum == JigsawBulgeEnum.Sunken)
                {
                    if (itemVector.x <= centerVecotr.x)
                    {
                        listVertices.Add(itemVector);
                    }
                }
            }
            else if (edgeEnum == JigsawStyleNormalEdgeEnum.Below)
            {
                if (bulgeEnum == JigsawBulgeEnum.Bulge)
                {
                    if (itemVector.y <= centerVecotr.y)
                    {
                        listVertices.Add(itemVector);
                    }
                }
                else if (bulgeEnum == JigsawBulgeEnum.Sunken)
                {
                    if (itemVector.y >= centerVecotr.y)
                    {
                        listVertices.Add(itemVector);
                    }
                }
            }
        }
        return(listVertices);
    }
コード例 #12
0
    /// <summary>
    /// 获取凸出部分的圆所有坐标
    /// </summary>
    /// <param name="CenterVector"></param>
    /// <param name="edgeEnum"></param>
    ///  <param name="bulgeEnum"></param>
    /// <returns></returns>
    private List <Vector3> getCircleVertices(Vector3 centerVector, float bulgeR, JigsawStyleNormalEdgeEnum edgeEnum, JigsawBulgeEnum bulgeEnum)
    {
        if (edgeEnum == JigsawStyleNormalEdgeEnum.Left)
        {
            if (bulgeEnum == JigsawBulgeEnum.Bulge)
            {
                return(GeometryUtil.getCircleVertices(centerVector, bulgeR, m_JigsawTriangleNumber, true, CircleStartVectorEnum.Below));
            }
            else if (bulgeEnum == JigsawBulgeEnum.Sunken)
            {
                return(GeometryUtil.getCircleVertices(centerVector, bulgeR, m_JigsawTriangleNumber, false, CircleStartVectorEnum.Below));
            }
        }
        else if (edgeEnum == JigsawStyleNormalEdgeEnum.Above)
        {
            if (bulgeEnum == JigsawBulgeEnum.Bulge)
            {
                return(GeometryUtil.getCircleVertices(centerVector, bulgeR, m_JigsawTriangleNumber, true, CircleStartVectorEnum.Left));
            }
            else if (bulgeEnum == JigsawBulgeEnum.Sunken)
            {
                return(GeometryUtil.getCircleVertices(centerVector, bulgeR, m_JigsawTriangleNumber, false, CircleStartVectorEnum.Left));
            }
        }
        else if (edgeEnum == JigsawStyleNormalEdgeEnum.Right)
        {
            if (bulgeEnum == JigsawBulgeEnum.Bulge)
            {
                return(GeometryUtil.getCircleVertices(centerVector, bulgeR, m_JigsawTriangleNumber, true, CircleStartVectorEnum.Above));
            }
            else if (bulgeEnum == JigsawBulgeEnum.Sunken)
            {
                return(GeometryUtil.getCircleVertices(centerVector, bulgeR, m_JigsawTriangleNumber, false, CircleStartVectorEnum.Above));
            }
        }
        else if (edgeEnum == JigsawStyleNormalEdgeEnum.Below)
        {
            if (bulgeEnum == JigsawBulgeEnum.Bulge)
            {
                return(GeometryUtil.getCircleVertices(centerVector, bulgeR, m_JigsawTriangleNumber, true, CircleStartVectorEnum.Right));
            }
            else if (bulgeEnum == JigsawBulgeEnum.Sunken)
            {
                return(GeometryUtil.getCircleVertices(centerVector, bulgeR, m_JigsawTriangleNumber, false, CircleStartVectorEnum.Right));
            }
        }

        return(new List <Vector3>());
    }