本文整理汇总了C#中Scene.Remove方法的典型用法代码示例。如果您正苦于以下问题:C# Scene.Remove方法的具体用法?C# Scene.Remove怎么用?C# Scene.Remove使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Scene
的用法示例。
在下文中一共展示了Scene.Remove方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Run
public async Task Run(Scene worldScene)
{
using (Disposable.Create(() => worldScene.Remove(ColoredChessboard)))
using (Disposable.Create(() => Circles.Run(circle => worldScene.Remove(circle))))
{
Projector.Scene.Add(ColoredChessboard);
worldScene.Add(Circles);
var imagePoints = Chessboard.Saddles;
WorldToProjectorHom.ProjectPoints(imagePoints);
await new CalibrateTask(Window, Projector, Chessboard).Run(async () =>
{
var captureCameraPoints = await new ChessboardSearchTask(Window, CaptureCameras.First(), Chessboard).Run();
if (captureCameraPoints == null)
return null;
var worldPoints = CaptureCameras.First().ToWorld(captureCameraPoints);
for (var i = 0; i < worldPoints.Length; ++i)
Circles[i].Position = worldPoints[i].ToVector3(z: 0.01f);
return new CalibrateTask.ImageAndWorldPoints()
{
ImagePoints = imagePoints,
WorldPoints = worldPoints,
};
});
var whenTrigger = Program.WhenInput
.Where(input => input.KeyDown(Keys.Space) || input.KeyDown(Keys.Enter) || input.KeyDown(Keys.Escape));
}
}
示例2: ProgramTask
public ProgramTask()
{
Monitor.ClientSize = new Size(640, 480);
ColoredChessboard = new ColoredChessboard(Chessboard, Color.CornflowerBlue.Alpha(0.9f), Color.Orange.Alpha(0.3f));
var maybeSecondaryScreen = Screen.AllScreens.Where(s => s != Screen.PrimaryScreen).FirstOrDefault() ?? Screen.PrimaryScreen;
// Projector = new RealProjector("Optoma EW1610", "1018", maybeSecondaryScreen.Bounds.Size, maybeSecondaryScreen);
var virtualProjectorOrbit = new OrbitCamera("Virtual Projector Orbit", "N/A", new Size(1280, 800), new PointF(640, 850), 100, 2, 134);
Projector = new VirtualProjector(Monitor, virtualProjectorOrbit);
WorldCamera = new OrbitCamera("World Orbit", "1018", Monitor.Size, Monitor.Size.CenterF(), Monitor.Size.Width, 0.1f, 100)
{
Center = Chessboard.VertexCenter,
Distance = 56,
YawPitch = new Vector2(0.2f, -0.2f),
};
WorldScene = new Scene(WorldCamera)
{
// MakeColoredAxisOfLength(Vector3.UnitX, Color.Red, length: 20.0f),
// MakeColoredAxisOfLength(Vector3.UnitY, Color.Green, length: 20.0f),
// MakeColoredAxisOfLength(Vector3.UnitZ, Color.Blue, length: 20.0f),
// ColoredChessboard,
// new Grid(Matrix.CreateRotationX(MathHelper.PiOver2), Color.Red.Lerp(Color.White, 0.9f).Alpha(0.3f), Color.Red.Alpha(0.5f)),
// new Grid(Matrix.CreateRotationY(-MathHelper.PiOver2), Color.Green.Lerp(Color.White, 0.9f).Alpha(0.1f), Color.Green.Alpha(0.3f)),
// new Grid(Matrix.Identity, Color.Blue.Lerp(Color.White, 0.9f).Alpha(0.1f), Color.Blue.Alpha(0.4f)),
new MeshModel("ManStanding", Matrix.CreateScale(0.1f) * Matrix.CreateRotationY(-MathHelper.PiOver2) * Matrix.CreateTranslation(4, 0, 2)) { ProjectorViewProject = Projector },
new MeshModel("MutantStanding", Matrix.CreateScale(0.4f) * Matrix.CreateRotationY(0) * Matrix.CreateTranslation(8, 0, 1)) { ProjectorViewProject = Projector },
new MeshModel("HeadFemale", Matrix.CreateScale(0.2f) * Matrix.CreateRotationX(-MathHelper.PiOver2) * Matrix.CreateTranslation(-3, 6, 0)) { ProjectorViewProject = Projector },
};
CaptureCameras = CreateCaptureCameras().ToList();
if (CaptureCameras.IsEmpty())
AddVirtualCaptureCamera("VirCam 1", "1018", Color.Red);
CaptureCameraSelectionPictureGray = new Picture2D(CaptureCameraSelected.Intrinsics.ImageSize.LimitProportional(290, 290).AnchorWithin(Monitor.ClientRectangle, AnchorPoints.BottomLeft), CaptureCameraSelected.Capture.GrayTexture2D);
CaptureCameraSelectionPictureRgba = new Picture2D(CaptureCameraSelected.Intrinsics.ImageSize.LimitProportional(290, 290).ToRect(CaptureCameraSelectionPictureGray.Rectangle.Left, CaptureCameraSelectionPictureGray.Rectangle.Top, AnchorPoints.BottomLeft), CaptureCameraSelected.Capture.RgbaTexture2D);
CaptureCameraSelected.Highlight = true;
WorldScene.Add(CaptureCameras);
WorldScene.Add(Projector);
Monitor.Scene = new Scene(new ScreenCamera(Monitor))
{
new Clear(Color.LightGray),
WorldScene,
CaptureCameraSelectionPictureGray,
CaptureCameraSelectionPictureRgba,
};
LocateTrigger = new Trigger(() => new LocateTask(Monitor, CaptureCameraSelected, Chessboard).Run(), Keys.L);
CalibrateTrigger = new Trigger(() => new CalibrateTask(Monitor, CaptureCameraSelected, Chessboard).Run(CaptureCameraSelected), Keys.C);
ChessboardShapeTrigger = new Trigger(() => new ChessboardShapeTask(Monitor, Projector, Chessboard).Run(), Keys.S);
CalibrateIndirectlyTrigger = new Trigger(() => { WorldScene.Remove(ColoredChessboard); return new CalibrateIndirectlyTask(Monitor, CaptureCameras, Projector, Chessboard).Run(WorldScene); }, Keys.I);
GrayScanTrigger = new Trigger(() => new GrayScanTask(Monitor, CaptureCameras.First(), Projector).Run(WorldScene), Keys.G);
AttachInputToCamera(Program.WhenInput.Where(input => !input.KeyPressed(Keys.LeftAlt)), Monitor, WorldCamera);
AttachInputToCamera(Program.WhenInput.Where(input => input.KeyPressed(Keys.LeftAlt)), Monitor, virtualProjectorOrbit);
AttachPerformanceBar();
Program.WhenInput.Where(input => input.KeyDown(Keys.Tab)).Subscribe(input =>
{
CaptureCameraSelected.Highlight = false;
CaptureCameraSelectionIdx = (CaptureCameraSelectionIdx + 1) % CaptureCameras.Count;
CaptureCameraSelected.Highlight = true;
CaptureCameraSelectionPictureGray.Texture2D = CaptureCameraSelected.Capture.GrayTexture2D;
CaptureCameraSelectionPictureRgba.Texture2D = CaptureCameraSelected.Capture.RgbaTexture2D;
});
}