Exemple #1
0
    /// <summary>
    /// Initialise the spring
    /// </summary>
    public void Init(VectorGridPoint point1, VectorGridPoint point2, GridSpringType springType, float stiffness, float damping, float restDistanceScalar)
    {
        m_Point1     = point1;
        m_Point2     = point2;
        m_SpringType = springType;

        m_Stiffness    = stiffness;
        m_Damping      = damping;
        m_RestDistance = Vector3.Distance(m_Point1.m_OriginalPosition, m_Point2.m_OriginalPosition) * restDistanceScalar;
    }
	/// <summary>
	/// Initialise the spring
	/// </summary>
	public void Init(VectorGridPoint point1, VectorGridPoint point2, GridSpringType springType, float stiffness, float damping, float restDistanceScalar)
	{
		m_Point1 = point1;
		m_Point2 = point2;
		m_SpringType = springType;
		
		m_Stiffness = stiffness;
		m_Damping = damping;
		m_RestDistance = Vector3.Distance(m_Point1.m_OriginalPosition, m_Point2.m_OriginalPosition) * restDistanceScalar;
	}
Exemple #3
0
	/// <summary>
	/// Inits the grid - creates a grid of points at the appropriate positions
	/// </summary>
	public void InitGrid()
	{
		m_ThickLineSpacingX = Mathf.Max(m_ThickLineSpacingX, 1);
		m_ThickLineSpacingY = Mathf.Max(m_ThickLineSpacingY, 1);

		if(m_RenderMode == RenderMode.Sphere)
		{
			int latitudes = m_GridWidth;
			int longitudes = m_GridHeight;
			float radius = m_GridScale;
			
			float latitudeIncrement = 360.0f / latitudes;
			float longitudeIncrement = 180.0f / longitudes;

			m_VectorGridPoints = new VectorGridPoint[m_GridWidth + 1, m_GridHeight + 1];
			int uIndex = 0;
			int tIndex = 0;
			
			for (float u = 0; u < 360.0f; u += latitudeIncrement) 
			{
				for (float t = 0; t < 180.0f; t += longitudeIncrement) 
				{			
					float rad = radius;		
					Vector3 position;
					Color spawnColor = (uIndex % m_ThickLineSpacingX == 0 || tIndex % m_ThickLineSpacingY == 0) ? m_ThickLineSpawnColor : m_ThinLineSpawnColor;
					position.x = (float) (rad * Mathf.Sin(Mathf.Deg2Rad * t) * Mathf.Sin(Mathf.Deg2Rad * u));
					position.y = (float) (rad * Mathf.Cos(Mathf.Deg2Rad * t));
					position.z = (float) (rad * Mathf.Sin(Mathf.Deg2Rad * t) * Mathf.Cos(Mathf.Deg2Rad * u));
					m_VectorGridPoints[uIndex, tIndex] = new VectorGridPoint(position, m_VectorGridPointMass, m_VelocityDamping, spawnColor, m_MaxFogDistance, m_MaxFogAlphaScale, m_TwoWayFog);
					tIndex++;
				}

				tIndex = 0;
				uIndex++;
			}
		}
		else
		{
			m_VectorGridPoints = new VectorGridPoint[m_GridWidth, m_GridHeight];

			for(int x = 0; x < m_GridWidth; x++)
			{
				for(int y = 0; y < m_GridHeight; y++)
				{
					Color spawnColor = (x % m_ThickLineSpacingX == 0 || y % m_ThickLineSpacingY == 0) ? m_ThickLineSpawnColor : m_ThinLineSpawnColor;
					Vector3 position = new Vector3((x * m_GridScale) - (m_GridScale * m_GridWidth * 0.5f), (y * m_GridScale) - (m_GridScale * m_GridHeight * 0.5f), 0.0f);
					m_VectorGridPoints[x, y] = new VectorGridPoint(position, m_VectorGridPointMass, m_VelocityDamping, spawnColor, m_MaxFogDistance, m_MaxFogAlphaScale, m_TwoWayFog);
				}
			}
		}

		InitSprings();
		BuildMesh();
	}
 /// <summary>
 /// Connect this grid point to another with a spring
 /// </summary>
 public void ConnectTo(VectorGridPoint other, VectorGridSpring.GridSpringType springType, float stiffness, float damping, float restDistanceScalar)
 {
     m_GridSpring[(int)springType].Init(this, other, springType, stiffness, damping, restDistanceScalar);
 }
 /// <summary>
 /// Connect this grid point to another with a spring
 /// </summary>
 public void ConnectTo(VectorGridPoint other, VectorGridSpring.GridSpringType springType, float stiffness, float damping, float restDistanceScalar)
 {
     m_GridSpring[(int)springType].Init(this, other, springType, stiffness, damping, restDistanceScalar);
 }
Exemple #6
0
 /// <summary>
 /// Resets the bodies, thereby disconnecting the spring
 /// </summary>
 public void Reset()
 {
     m_Point1 = null;
     m_Point2 = null;
 }
	/// <summary>
	/// Resets the bodies, thereby disconnecting the spring
	/// </summary>
	public void Reset()
	{
		m_Point1 = null;
		m_Point2 = null;
	}