private void GetUnflattenedHandleMatrixes( BoundingBoxManipulate.OperationEnum permittedOperations, Vector3[] positions, Quaternion rotation, Vector3 scale, List <Matrix4x4> cubeMatrixes, List <Matrix4x4> sphereMatrixes, int targetIndex) { // Get all our handle positions for cubes if ((permittedOperations & BoundingBoxManipulate.OperationEnum.ScaleUniform) == BoundingBoxManipulate.OperationEnum.ScaleUniform) { for (int i = BoundsExtentions.LBF; i <= BoundsExtentions.RTB; i++) { if (i == targetIndex) { continue; } cubeMatrixes.Add(Matrix4x4.TRS(handlePositions[i], rotation, scale)); } } // Get all our handle positions for rotation if ((permittedOperations & BoundingBoxManipulate.OperationEnum.RotateX) == BoundingBoxManipulate.OperationEnum.RotateX) { for (int i = BoundsExtentions.LTF_RTF; i <= BoundsExtentions.RBB_LBB; i++) { if (i == targetIndex) { continue; } sphereMatrixes.Add(Matrix4x4.TRS(handlePositions[i], rotation, scale)); } } if ((permittedOperations & BoundingBoxManipulate.OperationEnum.RotateY) == BoundingBoxManipulate.OperationEnum.RotateY) { for (int i = BoundsExtentions.LTF_LBF; i <= BoundsExtentions.RTF_RBF; i++) { if (i == targetIndex) { continue; } sphereMatrixes.Add(Matrix4x4.TRS(handlePositions[i], rotation, scale)); } } if ((permittedOperations & BoundingBoxManipulate.OperationEnum.RotateZ) == BoundingBoxManipulate.OperationEnum.RotateZ) { for (int i = BoundsExtentions.RBF_RBB; i <= BoundsExtentions.LTF_LTB; i++) { if (i == targetIndex) { continue; } sphereMatrixes.Add(Matrix4x4.TRS(handlePositions[i], rotation, scale)); } } }
private void GetFlattenedHandleMatrixes( BoundingBoxManipulate.OperationEnum permittedOperations, BoundingBoxManipulate.FlattenModeEnum flattenAxis, Vector3[] positions, Quaternion rotation, Vector3 scale, List <Matrix4x4> cubeMatrixes, List <Matrix4x4> sphereMatrixes, int targetIndex) { // Get all our handle positions for cubes if ((permittedOperations & BoundingBoxManipulate.OperationEnum.ScaleUniform) == BoundingBoxManipulate.OperationEnum.ScaleUniform) { for (int i = BoundsExtentions.LT; i <= BoundsExtentions.RB; i++) { if (i == targetIndex) { continue; } cubeMatrixes.Add(Matrix4x4.TRS(handlePositions[i], rotation, scale)); } } switch (flattenAxis) { case BoundingBox.FlattenModeEnum.FlattenX: default: break; case BoundingBox.FlattenModeEnum.FlattenY: break; case BoundingBox.FlattenModeEnum.FlattenZ: break; } // Get all our handle positions for rotation if ((permittedOperations & BoundingBoxManipulate.OperationEnum.RotateX) == BoundingBoxManipulate.OperationEnum.RotateX) { if (BoundsExtentions.LT_RT != targetIndex) { sphereMatrixes.Add(Matrix4x4.TRS(handlePositions[BoundsExtentions.LT_RT], rotation, scale)); } if (BoundsExtentions.RB_LB != targetIndex) { sphereMatrixes.Add(Matrix4x4.TRS(handlePositions[BoundsExtentions.RB_LB], rotation, scale)); } } if ((permittedOperations & BoundingBoxManipulate.OperationEnum.RotateY) == BoundingBoxManipulate.OperationEnum.RotateY) { if (BoundsExtentions.LB_LT != targetIndex) { sphereMatrixes.Add(Matrix4x4.TRS(handlePositions[BoundsExtentions.LB_LT], rotation, scale)); } if (BoundsExtentions.RT_RB != targetIndex) { sphereMatrixes.Add(Matrix4x4.TRS(handlePositions[BoundsExtentions.RT_RB], rotation, scale)); } } if ((permittedOperations & BoundingBoxManipulate.OperationEnum.RotateZ) == BoundingBoxManipulate.OperationEnum.RotateZ) { if (BoundsExtentions.LT_RT != targetIndex) { sphereMatrixes.Add(Matrix4x4.TRS(handlePositions[BoundsExtentions.LT_RT], rotation, scale)); } if (BoundsExtentions.RB_LB != targetIndex) { sphereMatrixes.Add(Matrix4x4.TRS(handlePositions[BoundsExtentions.RB_LB], rotation, scale)); } } }