public virtual Bounds convertToNodeSpace(Bounds bounds){
transformAncestors ();
var min = bounds.min;
var max = bounds.max;
var transform = this.transform;
var center = transform.InverseTransformPoint(bounds.center);
var point1 = transform.InverseTransformPoint(new Vector3(min.x, min.y, min.z));
var point2 = transform.InverseTransformPoint(new Vector3(min.x, min.y, max.z));
var point3 = transform.InverseTransformPoint(new Vector3(min.x, max.y, min.z));
var point4 = transform.InverseTransformPoint(new Vector3(min.x, max.y, max.z));
var point5 = transform.InverseTransformPoint(new Vector3(max.x, min.y, min.z));
var point6 = transform.InverseTransformPoint(new Vector3(max.x, min.y, max.z));
var point7 = transform.InverseTransformPoint(new Vector3(max.x, max.y, min.z));
var point8 = transform.InverseTransformPoint(new Vector3(max.x, max.y, max.z));
var result = new Bounds(center, Vector3.zero);
result.Encapsulate(point1);
result.Encapsulate(point2);
result.Encapsulate(point3);
result.Encapsulate(point4);
result.Encapsulate(point5);
result.Encapsulate(point6);
result.Encapsulate(point7);
result.Encapsulate(point8);
return result;
}