本文整理汇总了C#中ShapeCollection.CloneForClipboard方法的典型用法代码示例。如果您正苦于以下问题:C# ShapeCollection.CloneForClipboard方法的具体用法?C# ShapeCollection.CloneForClipboard怎么用?C# ShapeCollection.CloneForClipboard使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ShapeCollection
的用法示例。
在下文中一共展示了ShapeCollection.CloneForClipboard方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CopySelection
/// <summary>
/// Creates a clipboard object that holds the clone of relevant terrain data
/// </summary>
/// <param name="selection">Selection to clone. Can be null to use TerrainEditor.CurrentSelection</param>
/// <returns>The clipboard data object</returns>
public ITerrainClipboardObject CopySelection(TerrainSelection selection)
{
if (!HasEngineInstance())
return null;
if (selection == null)
selection = TerrainEditor.CurrentSelection;
if (selection == null || !selection.Valid)
return null;
ITerrainClipboardObject data = EngineTerrain.CopySelection(selection);
// add shapes to clone
if ((selection.SelectionFilter & TerrainSelection.SelectionFilter_e.Shapes) != 0)
{
ShapeCollection shapesOnTerrain = new ShapeCollection();
ShapeCollection roots = EditorManager.Scene.RootShapes;
Rectangle2D rect = selection.WorldSpaceExtent;
foreach (ShapeBase root in roots)
AddShapesRecursive(shapesOnTerrain, root, rect);
if (shapesOnTerrain.Count > 0)
{
data.ShapesToPaste = shapesOnTerrain.CloneForClipboard();
// remap position xy to [0..1] range inside the selection
float fInvX = 1.0f / rect.GetSizeX();
float fInvY = 1.0f / rect.GetSizeY();
foreach (Shape3D shape in data.ShapesToPaste)
shape.Position = new Vector3F((shape.x - rect.X1) * fInvX, (shape.y - rect.Y1) * fInvY, shape.z);
}
}
return data;
}