public GridControlPoint(MetaballSurface surface, int startValuePointIndex, int endValuePointIndex)
            {
                m_surface = surface;

                this.m_startValuePointIndex = startValuePointIndex;
                this.m_endValuePointIndex   = endValuePointIndex;
                this.valid = startValuePointIndex >= 0 && endValuePointIndex >= 0;
            }
 public GridValuePoint(MetaballSurface surface, Vector2 position)
 {
     m_surface     = surface;
     this.position = position;
     m_dataFrame   = surface.m_frame;
     m_value       = 0.0f;
     m_active      = false;
 }
            public GridCell(MetaballSurface surface, int cellIndex)
            {
                m_surface = surface;
                m_index   = cellIndex;

                m_valuePointsWorldIndices = new int[sm_valuePointsCount];
                for (var i = 0; i < m_valuePointsWorldIndices.Length; i++)
                {
                    m_valuePointsWorldIndices[i] = m_surface.LocalToWorldValuePointIndex(m_index, i);
                }
            }
 private void Awake()
 {
     m_surface = GetComponentInParent <MetaballSurface>();
 }