├── .gitattributes
├── .gitignore
├── Ab3d.PowerToys WPF net48 Samples.sln
├── Ab3d.PowerToys WPF net60 Samples.sln
├── Ab3d.PowerToys WPF net80 Samples.sln
├── Ab3d.PowerToys WPF net90 Samples.sln
├── Ab3d.PowerToys.Samples
├── Ab3d.PowerToys.Samples.net48.csproj
├── Ab3d.PowerToys.Samples.net60.csproj
├── Ab3d.PowerToys.Samples.net80.csproj
├── Ab3d.PowerToys.Samples.net90.csproj
├── Animations
│ ├── AnimationEasingSample.xaml
│ ├── AnimationEasingSample.xaml.cs
│ ├── AnimationIntroPage.xaml
│ ├── AnimationIntroPage.xaml.cs
│ ├── AnimationSettings.xaml
│ ├── AnimationSettings.xaml.cs
│ ├── CameraAnimation.xaml
│ ├── CameraAnimation.xaml.cs
│ ├── CustomAnimationSample.xaml
│ ├── CustomAnimationSample.xaml.cs
│ ├── EasingFunctions.xaml
│ ├── EasingFunctions.xaml.cs
│ ├── FreeCameraAnimation.xaml
│ ├── FreeCameraAnimation.xaml.cs
│ ├── ObjectAnimationSample.xaml
│ └── ObjectAnimationSample.xaml.cs
├── App.xaml
├── App.xaml.cs
├── Assimp
│ ├── AssimpAnimationController.cs
│ ├── AssimpLoader.cs
│ ├── AssimpNodeAnimationNode.cs
│ ├── Skeleton.cs
│ └── SkeletonNode.cs
├── AssimpLicense.txt
├── AssimpSamples
│ ├── AssimpIntroPage.xaml
│ ├── AssimpIntroPage.xaml.cs
│ ├── AssimpModelVisual3D.xaml
│ ├── AssimpModelVisual3D.xaml.cs
│ ├── AssimpWpfExporterSample.xaml
│ ├── AssimpWpfExporterSample.xaml.cs
│ ├── AssimpWpfImporterSample.xaml
│ ├── AssimpWpfImporterSample.xaml.cs
│ ├── SkeletalAnimation.xaml
│ └── SkeletalAnimation.xaml.cs
├── Cameras
│ ├── CameraAnimationSample.xaml
│ ├── CameraAnimationSample.xaml.cs
│ ├── CameraMethods.xaml
│ ├── CameraMethods.xaml.cs
│ ├── CameraOrientation.xaml
│ ├── CameraOrientation.xaml.cs
│ ├── CameraTypeSample.xaml
│ ├── CameraTypeSample.xaml.cs
│ ├── CameraTypesSample.xaml
│ ├── CameraTypesSample.xaml.cs
│ ├── CamerasIntroPage.xaml
│ ├── CamerasIntroPage.xaml.cs
│ ├── CamerasPropertiesSample.xaml
│ ├── CamerasPropertiesSample.xaml.cs
│ ├── CustomUpAxisWithFreeCamera.xaml
│ ├── CustomUpAxisWithFreeCamera.xaml.cs
│ ├── CustomUpAxisWithGlobalTransform.xaml
│ ├── CustomUpAxisWithGlobalTransform.xaml.cs
│ ├── FirstPersonCameraSample.xaml
│ ├── FirstPersonCameraSample.xaml.cs
│ ├── FitIntoViewSample.xaml
│ ├── FitIntoViewSample.xaml.cs
│ ├── FreeCameraSample.xaml
│ ├── FreeCameraSample.xaml.cs
│ ├── LimitedCameraMovementSample.xaml
│ ├── LimitedCameraMovementSample.xaml.cs
│ ├── MouseRay3DSample.xaml
│ ├── MouseRay3DSample.xaml.cs
│ ├── OffCenterCameraSample.xaml
│ ├── OffCenterCameraSample.xaml.cs
│ ├── Point3DTo2DSample.xaml
│ └── Point3DTo2DSample.xaml.cs
├── Common
│ ├── CsvDataReader.cs
│ ├── DragAndDropHelper.cs
│ ├── GradientColorLegend.cs
│ ├── InfoControl.cs
│ ├── SceneLayout.cs
│ ├── SceneViewType.cs
│ ├── SimpleGrid.cs
│ ├── StandardTransform3DEditor.xaml
│ ├── StandardTransform3DEditor.xaml.cs
│ └── TextBlockEx.cs
├── EventManager3D
│ ├── EventManagerClickSample.xaml
│ ├── EventManagerClickSample.xaml.cs
│ ├── EventManagerDragSample.xaml
│ ├── EventManagerDragSample.xaml.cs
│ ├── EventManagerIntroPage.xaml
│ ├── EventManagerIntroPage.xaml.cs
│ ├── EventManagerSample.xaml
│ ├── EventManagerSample.xaml.cs
│ ├── EventPanels
│ │ ├── EventData.cs
│ │ ├── Mouse3DEventArgsPanel.xaml
│ │ ├── Mouse3DEventArgsPanel.xaml.cs
│ │ ├── MouseButton3DEventArgsPanel.xaml
│ │ ├── MouseButton3DEventArgsPanel.xaml.cs
│ │ ├── MouseDrag3DEventArgsPanel.xaml
│ │ ├── MouseDrag3DEventArgsPanel.xaml.cs
│ │ ├── MouseWheel3DEventArgsPanel.xaml
│ │ ├── MouseWheel3DEventArgsPanel.xaml.cs
│ │ ├── Touch3DEventArgsPanel.xaml
│ │ └── Touch3DEventArgsPanel.xaml.cs
│ ├── MouseSelectionAndRotation.xaml
│ ├── MouseSelectionAndRotation.xaml.cs
│ ├── StandardWpfHitTestingDemo.xaml
│ ├── StandardWpfHitTestingDemo.xaml.cs
│ ├── TouchManipulationsSample.xaml
│ └── TouchManipulationsSample.xaml.cs
├── Graph3D
│ ├── AxesBoxVisual3DSample.xaml
│ ├── AxesBoxVisual3DSample.xaml.cs
│ ├── AxisWith3DLabelsSample.xaml
│ ├── AxisWith3DLabelsSample.xaml.cs
│ ├── AxisWithOverlayLabelsSample.xaml
│ ├── AxisWithOverlayLabelsSample.xaml.cs
│ ├── ContourLinesSample.xaml
│ ├── ContourLinesSample.xaml.cs
│ ├── Graph3D.xaml
│ ├── Graph3D.xaml.cs
│ ├── Graph3DIntroPage.xaml
│ ├── Graph3DIntroPage.xaml.cs
│ ├── Plot3DSample.xaml
│ └── Plot3DSample.xaml.cs
├── Input
│ ├── InputIntroPage.xaml
│ ├── InputIntroPage.xaml.cs
│ ├── Mouse3DSample.xaml
│ ├── Mouse3DSample.xaml.cs
│ ├── XInputCameraController.xaml
│ └── XInputCameraController.xaml.cs
├── IsStringEmptyConverter.cs
├── Lines3D
│ ├── AxesVisuals.xaml
│ ├── AxesVisuals.xaml.cs
│ ├── CurvesSample.xaml
│ ├── CurvesSample.xaml.cs
│ ├── DynamicEdgeLinesSample.xaml
│ ├── DynamicEdgeLinesSample.xaml.cs
│ ├── LineCapsSample.xaml
│ ├── LineCapsSample.xaml.cs
│ ├── Lines3DIntroPage.xaml
│ ├── Lines3DIntroPage.xaml.cs
│ ├── Lines3DSample.xaml
│ ├── Lines3DSample.xaml.cs
│ ├── Lines3DStressTest.xaml
│ ├── Lines3DStressTest.xaml.cs
│ ├── LinesSelector.xaml
│ ├── LinesSelector.xaml.cs
│ ├── MiterLimitSample.xaml
│ ├── MiterLimitSample.xaml.cs
│ ├── StaticEdgeLinesCreationSample.xaml
│ ├── StaticEdgeLinesCreationSample.xaml.cs
│ ├── StaticLineMeshesSample.xaml
│ ├── StaticLineMeshesSample.xaml.cs
│ ├── TubeLinesSample.xaml
│ ├── TubeLinesSample.xaml.cs
│ ├── WireGridVisual3DSample.xaml
│ ├── WireGridVisual3DSample.xaml.cs
│ ├── WireframePolygonLines.xaml
│ ├── WireframePolygonLines.xaml.cs
│ ├── WireframeSample.xaml
│ ├── WireframeSample.xaml.cs
│ ├── WireframeTypesSample.xaml
│ └── WireframeTypesSample.xaml.cs
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── MouseCameraControllerSamples
│ ├── CustomMouseEventsSample.xaml
│ ├── CustomMouseEventsSample.xaml.cs
│ ├── CustomRotation3DMarker.xaml
│ ├── CustomRotation3DMarker.xaml.cs
│ ├── CustomRotationMarker.xaml
│ ├── CustomRotationMarker.xaml.cs
│ ├── HorizontalCameraMovement.xaml
│ ├── HorizontalCameraMovement.xaml.cs
│ ├── MainMouseCameraControllerProperties.xaml
│ ├── MainMouseCameraControllerProperties.xaml.cs
│ ├── MouseCameraControllerIntroPage.xaml
│ ├── MouseCameraControllerIntroPage.xaml.cs
│ ├── MouseCameraControllerOptions.xaml
│ ├── MouseCameraControllerOptions.xaml.cs
│ ├── QuickZoomSample.xaml
│ ├── QuickZoomSample.xaml.cs
│ ├── RotateAroundCustomPoint.xaml
│ ├── RotateAroundCustomPoint.xaml.cs
│ ├── RotationDirectionSample.xaml
│ ├── RotationDirectionSample.xaml.cs
│ ├── ZoomToCustomPoint.xaml
│ └── ZoomToCustomPoint.xaml.cs
├── Objects3D
│ ├── AdvancedBooleanOperations.xaml
│ ├── AdvancedBooleanOperations.xaml.cs
│ ├── AdvancedObjects3DIntroPage.xaml
│ ├── AdvancedObjects3DIntroPage.xaml.cs
│ ├── AllUIElementsSample.xaml
│ ├── AllUIElementsSample.xaml.cs
│ ├── AllVisualsSample.xaml
│ ├── AllVisualsSample.xaml.cs
│ ├── ArrowVisual3DSample.xaml
│ ├── ArrowVisual3DSample.xaml.cs
│ ├── BooleanOperationsSample.xaml
│ ├── BooleanOperationsSample.xaml.cs
│ ├── BoxVisual3DSample.xaml
│ ├── BoxVisual3DSample.xaml.cs
│ ├── CircleVisual3DSample.xaml
│ ├── CircleVisual3DSample.xaml.cs
│ ├── ConeTubeVisual3DSample.xaml
│ ├── ConeTubeVisual3DSample.xaml.cs
│ ├── ConeVisual3DSample.xaml
│ ├── ConeVisual3DSample.xaml.cs
│ ├── CylinderVisual3DSample.xaml
│ ├── CylinderVisual3DSample.xaml.cs
│ ├── ExtrudeAlongPathSample.xaml
│ ├── ExtrudeAlongPathSample.xaml.cs
│ ├── ExtrudeAlongPathSettingsSample.xaml
│ ├── ExtrudeAlongPathSettingsSample.xaml.cs
│ ├── ExtrudeCreator.xaml
│ ├── ExtrudeCreator.xaml.cs
│ ├── HeightMapSample.xaml
│ ├── HeightMapSample.xaml.cs
│ ├── HierarchyWithContentVisual3D.xaml
│ ├── HierarchyWithContentVisual3D.xaml.cs
│ ├── IcosphereVisual3DSample.xaml
│ ├── IcosphereVisual3DSample.xaml.cs
│ ├── LatheCreator.xaml
│ ├── LatheCreator.xaml.cs
│ ├── MaterialTypeConverterSample.xaml
│ ├── MaterialTypeConverterSample.xaml.cs
│ ├── Model3DFactorySample.xaml
│ ├── Model3DFactorySample.xaml.cs
│ ├── MultiMaterialBoxVisual3DSample.xaml
│ ├── MultiMaterialBoxVisual3DSample.xaml.cs
│ ├── MultiMaterialBoxesSample.xaml
│ ├── MultiMaterialBoxesSample.xaml.cs
│ ├── ObjectInspector.xaml
│ ├── ObjectInspector.xaml.cs
│ ├── Objects3DIntroPage.xaml
│ ├── Objects3DIntroPage.xaml.cs
│ ├── ObjectsCheatsheet.xaml
│ ├── ObjectsCheatsheet.xaml.cs
│ ├── PlaneVisual3DSample.xaml
│ ├── PlaneVisual3DSample.xaml.cs
│ ├── SkyboxSample.xaml
│ ├── SkyboxSample.xaml.cs
│ ├── SliceSample.xaml
│ ├── SliceSample.xaml.cs
│ ├── SphereVisual3DSample.xaml
│ ├── SphereVisual3DSample.xaml.cs
│ ├── SphericalZoneVisual3DSample.xaml
│ ├── SphericalZoneVisual3DSample.xaml.cs
│ ├── StreamLinesSample.xaml
│ ├── StreamLinesSample.xaml.cs
│ ├── TorusKnotVisual3DSample.xaml
│ ├── TorusKnotVisual3DSample.xaml.cs
│ ├── TrapezoidVisual3DSample.xaml
│ ├── TrapezoidVisual3DSample.xaml.cs
│ ├── TriangulatorWithHolesSample.xaml
│ ├── TriangulatorWithHolesSample.xaml.cs
│ ├── TubeLineVisual3DSample.xaml
│ ├── TubeLineVisual3DSample.xaml.cs
│ ├── TubePathSample.xaml
│ ├── TubePathSample.xaml.cs
│ ├── TubeVisual3DSample.xaml
│ ├── TubeVisual3DSample.xaml.cs
│ ├── UIElementsToolTipSample.xaml
│ └── UIElementsToolTipSample.xaml.cs
├── Other
│ ├── BasicWpf3dObjectsTutorial.xaml
│ ├── BasicWpf3dObjectsTutorial.xaml.cs
│ ├── DXEngineSamples.xaml
│ ├── DXEngineSamples.xaml.cs
│ ├── IntroductionPage.xaml
│ ├── IntroductionPage.xaml.cs
│ ├── SupportPage.xaml
│ ├── SupportPage.xaml.cs
│ ├── WinFormsInfo.xaml
│ └── WinFormsInfo.xaml.cs
├── OtherCameraControllers
│ ├── CameraControlPanel.xaml
│ ├── CameraControlPanel.xaml.cs
│ ├── CameraControllerIntroPage.xaml
│ ├── CameraControllerIntroPage.xaml.cs
│ ├── CameraNavigationCirclesSample.xaml
│ ├── CameraNavigationCirclesSample.xaml.cs
│ ├── CameraPanelsSample.xaml
│ ├── CameraPanelsSample.xaml.cs
│ ├── CustomControlPanel.cs
│ ├── CustomControlPanelSample.xaml
│ ├── CustomControlPanelSample.xaml.cs
│ ├── MouseCameraControllerInfo.xaml
│ ├── MouseCameraControllerInfo.xaml.cs
│ ├── VerticalCameraControlPanelSample.xaml
│ └── VerticalCameraControlPanelSample.xaml.cs
├── PowerToys.ico
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── ReaderObj
│ ├── ObjModelVisual3D.xaml
│ ├── ObjModelVisual3D.xaml.cs
│ ├── ReadObjFromResources.xaml
│ ├── ReadObjFromResources.xaml.cs
│ ├── ReaderObjIntroPage.xaml
│ ├── ReaderObjIntroPage.xaml.cs
│ ├── ViewerObj.xaml
│ └── ViewerObj.xaml.cs
├── Resources
│ ├── 10x10-texture.png
│ ├── 3D-mouses-from-3Dconnexion.jpg
│ ├── AssimpViewerSample.png
│ ├── CamerasClassDiagram.png
│ ├── Collada
│ │ ├── duck.dae
│ │ └── duckCM.png
│ ├── CustomControlPanel
│ │ ├── moveBack.png
│ │ ├── moveBack_selected.png
│ │ ├── moveDown.png
│ │ ├── moveDown_selected.png
│ │ ├── moveForward.png
│ │ ├── moveForward_selected.png
│ │ ├── moveLeft.png
│ │ ├── moveLeft_selected.png
│ │ ├── moveRight.png
│ │ ├── moveRight_selected.png
│ │ ├── moveUp.png
│ │ ├── moveUp_selected.png
│ │ ├── rotateDown.png
│ │ ├── rotateDown_selected.png
│ │ ├── rotateLeft.png
│ │ ├── rotateLeft_selected.png
│ │ ├── rotateRight.png
│ │ ├── rotateRight_selected.png
│ │ ├── rotateUp.png
│ │ └── rotateUp_selected.png
│ ├── DXEngine-ArrowsSample.png
│ ├── HeightMaps
│ │ ├── europe.png
│ │ ├── europe_height.png
│ │ ├── readme.txt
│ │ ├── simpleHeightMap.png
│ │ ├── srtm_ramp2.world.500x250.png
│ │ └── world.topo.200407.3x500x250.png
│ ├── KinectSample.jpg
│ ├── ModelsDictionary.xaml
│ ├── ObjFiles
│ │ ├── Teapot.obj
│ │ ├── WaltHead.mtl
│ │ ├── WaltHead.obj
│ │ ├── dragon_vrip_res3.obj
│ │ ├── dragon_vrip_res3.obj.mtl
│ │ ├── dragon_vrip_res3_readme.txt
│ │ ├── house with trees.mtl
│ │ ├── house with trees.obj
│ │ ├── robotarm.mtl
│ │ ├── robotarm.obj
│ │ ├── robotarm.png
│ │ ├── ship_boat.mtl
│ │ ├── ship_boat.obj
│ │ ├── ship_boat_readme.txt
│ │ └── teapot-hires.obj
│ ├── PowerToysTexture.png
│ ├── PowerToysWinFormsSample.jpg
│ ├── PowerToys_Model3ds.jpg
│ ├── PowerToys_box_front.jpg
│ ├── PowerToys_box_side.jpg
│ ├── Settings.png
│ ├── SkyboxTextures
│ │ ├── CloudyLightRaysBack512.png
│ │ ├── CloudyLightRaysDown512.png
│ │ ├── CloudyLightRaysFront512.png
│ │ ├── CloudyLightRaysLeft512.png
│ │ ├── CloudyLightRaysRight512.png
│ │ ├── CloudyLightRaysUp512.png
│ │ └── readme.txt
│ ├── TransparencyUseCaseModels
│ │ ├── OAKPLY1.JPG
│ │ ├── coffee.jpg
│ │ ├── coffee_logo.jpg
│ │ └── coffee_plate.jpg
│ ├── TreeTexture.png
│ ├── XBox-controller.jpg
│ ├── ab4d-logo.png
│ ├── cannon.jpg
│ ├── grass.jpg
│ ├── landscapeTexture.jpg
│ ├── new_icon.png
│ ├── robotarm-upper-part.3DS
│ ├── robotarm.3DS
│ ├── soldier.X
│ ├── soldier.png
│ ├── streamlines.csv
│ ├── updated_icon.png
│ └── wpf3d
│ │ ├── duck.wpf3d
│ │ ├── duckCM.png
│ │ ├── house with trees.wpf3d
│ │ ├── robotarm.wpf3d
│ │ └── teapot-hires.wpf3d
├── Samples.xml
├── SceneEditor
│ ├── OverlayCanvas3D.cs
│ ├── OverlayViewport3D.cs
│ ├── SceneEditor.xaml
│ ├── SceneEditor.xaml.cs
│ └── SceneEditorContext.cs
├── Text3D
│ ├── AdjustingTextDirectionSample.xaml
│ ├── AdjustingTextDirectionSample.xaml.cs
│ ├── CustomTextBlockVisual3DSample.xaml
│ ├── CustomTextBlockVisual3DSample.xaml.cs
│ ├── LineWithTextSample.xaml
│ ├── LineWithTextSample.xaml.cs
│ ├── SymbolCharactersSample.xaml
│ ├── SymbolCharactersSample.xaml.cs
│ ├── Text3DIntroPage.xaml
│ ├── Text3DIntroPage.xaml.cs
│ ├── Text3DSample.xaml
│ ├── Text3DSample.xaml.cs
│ ├── TextBlockVisual3DProperties.xaml
│ ├── TextBlockVisual3DProperties.xaml.cs
│ ├── TextDirectionsSample.xaml
│ └── TextDirectionsSample.xaml.cs
├── UseCases
│ ├── ArrowsSample.xaml
│ ├── ArrowsSample.xaml.cs
│ ├── BillboardsSample.xaml
│ ├── BillboardsSample.xaml.cs
│ ├── CannonBallSimulation.xaml
│ ├── CannonBallSimulation.xaml.cs
│ ├── DistanceMeasurement.xaml
│ ├── DistanceMeasurement.xaml.cs
│ ├── DrawOnTextureSample.xaml
│ ├── DrawOnTextureSample.xaml.cs
│ ├── DucksLakeDemo.xaml
│ ├── DucksLakeDemo.xaml.cs
│ ├── DucksLakeMouseMoveDemo.xaml
│ ├── DucksLakeMouseMoveDemo.xaml.cs
│ ├── EarthView.xaml
│ ├── EarthView.xaml.cs
│ ├── HeatmapRenderingSample.xaml
│ ├── HeatmapRenderingSample.xaml.cs
│ ├── Interactive3DControlsSample.xaml
│ ├── Interactive3DControlsSample.xaml.cs
│ ├── InteractiveUserControl.xaml
│ ├── InteractiveUserControl.xaml.cs
│ ├── ModelingWithBooleanOperations.xaml
│ ├── ModelingWithBooleanOperations.xaml.cs
│ ├── MultipleSceneViewSample.xaml
│ ├── MultipleSceneViewSample.xaml.cs
│ ├── ObjectSelectionSample.xaml
│ ├── ObjectSelectionSample.xaml.cs
│ ├── SceneView3D.xaml
│ ├── SceneView3D.xaml.cs
│ ├── TemplatePage.xaml
│ ├── TemplatePage.xaml.cs
│ ├── UseCasesIntroPage.xaml
│ ├── UseCasesIntroPage.xaml.cs
│ ├── WindGenerator.cs
│ ├── WindPowerGeneratorsSample.xaml
│ ├── WindPowerGeneratorsSample.xaml.cs
│ ├── WireframeSelection.xaml
│ └── WireframeSelection.xaml.cs
├── Utilities
│ ├── ExtensionMethods.xaml
│ ├── ExtensionMethods.xaml.cs
│ ├── LightingRigSample.xaml
│ ├── LightingRigSample.xaml.cs
│ ├── MeshInspectorOverlaySample.xaml
│ ├── MeshInspectorOverlaySample.xaml.cs
│ ├── Model3DTransparencySortingSample.xaml
│ ├── Model3DTransparencySortingSample.xaml.cs
│ ├── ModelDecoratorSample.xaml
│ ├── ModelDecoratorSample.xaml.cs
│ ├── ModelMoverAndRotatorSample.xaml
│ ├── ModelMoverAndRotatorSample.xaml.cs
│ ├── ModelMoverInsideObjectSample.xaml
│ ├── ModelMoverInsideObjectSample.xaml.cs
│ ├── ModelMoverOverlaySample.xaml
│ ├── ModelMoverOverlaySample.xaml.cs
│ ├── ModelMoverOverlayWithZUpAxisSample.xaml
│ ├── ModelMoverOverlayWithZUpAxisSample.xaml.cs
│ ├── ModelOptimizerTest.xaml
│ ├── ModelOptimizerTest.xaml.cs
│ ├── ModelRotatorSample.xaml
│ ├── ModelRotatorSample.xaml.cs
│ ├── ModelRotatorWithStandardTransformSample.xaml
│ ├── ModelRotatorWithStandardTransformSample.xaml.cs
│ ├── ModelScalarSample.xaml
│ ├── ModelScalarSample.xaml.cs
│ ├── OtherUtilitiesInfo.xaml
│ ├── OtherUtilitiesInfo.xaml.cs
│ ├── PerspectiveTransformationSample.xaml
│ ├── PerspectiveTransformationSample.xaml.cs
│ ├── PlanarShadows.xaml
│ ├── PlanarShadows.xaml.cs
│ ├── PositionAndScaleModel3DSample.xaml
│ ├── PositionAndScaleModel3DSample.xaml.cs
│ ├── RenderToBitmapSample.xaml
│ ├── RenderToBitmapSample.xaml.cs
│ ├── SceneWithGlassesSample.xaml
│ ├── SceneWithGlassesSample.xaml.cs
│ ├── ShadingHelperSample.xaml
│ ├── ShadingHelperSample.xaml.cs
│ ├── StandardTransformSample.xaml
│ ├── StandardTransformSample.xaml.cs
│ ├── TextureCoordinatesGeneratorSample.xaml
│ ├── TextureCoordinatesGeneratorSample.xaml.cs
│ ├── TransparencyProblem.xaml
│ ├── TransparencyProblem.xaml.cs
│ ├── UtilitiesIntroPage.xaml
│ ├── UtilitiesIntroPage.xaml.cs
│ ├── Visual3DTransparencySortingSample.xaml
│ └── Visual3DTransparencySortingSample.xaml.cs
├── Wpf3DFile
│ ├── ImportWpf3DFileWindow.xaml
│ ├── ImportWpf3DFileWindow.xaml.cs
│ ├── Wpf3DFile.cs
│ ├── Wpf3DFileExportUserControl.xaml
│ ├── Wpf3DFileExportUserControl.xaml.cs
│ ├── Wpf3DFileExporterSample.xaml
│ ├── Wpf3DFileExporterSample.xaml.cs
│ ├── Wpf3DFileImporterSample.xaml
│ ├── Wpf3DFileImporterSample.xaml.cs
│ ├── Wpf3DFileInfoControl.xaml
│ ├── Wpf3DFileInfoControl.xaml.cs
│ ├── Wpf3DFileIntroPage.xaml
│ └── Wpf3DFileIntroPage.xaml.cs
├── app.config
└── packages.config
├── README.md
└── lib
├── Ab3d.PowerToys.Assimp license.txt
├── Ab3d.PowerToys.Assimp.XML
├── Ab3d.PowerToys.Assimp.dll
├── Assimp32.dll
├── Assimp64.dll
├── AssimpLicense.txt
├── AssimpNet.dll
├── AssimpNet.xml
├── net60
├── Ab3d.PowerToys.Assimp.XML
├── Ab3d.PowerToys.Assimp.deps.json
├── Ab3d.PowerToys.Assimp.dll
├── AssimpNet.XML
├── AssimpNet.deps.json
└── AssimpNet.dll
└── version readme.txt
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys WPF net48 Samples.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.29209.152
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ab3d.PowerToys.Samples", "Ab3d.PowerToys.Samples\Ab3d.PowerToys.Samples.net48.csproj", "{3A03EEA1-567C-4E18-9A3E-5951EFF558D4}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Debug|Mixed Platforms = Debug|Mixed Platforms
12 | Debug|x86 = Debug|x86
13 | Release|Any CPU = Release|Any CPU
14 | Release|Mixed Platforms = Release|Mixed Platforms
15 | Release|x86 = Release|x86
16 | EndGlobalSection
17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
18 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
19 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
20 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
21 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
22 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|x86.ActiveCfg = Debug|Any CPU
23 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
24 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Any CPU.Build.0 = Release|Any CPU
25 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
26 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Mixed Platforms.Build.0 = Release|Any CPU
27 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|x86.ActiveCfg = Release|Any CPU
28 | EndGlobalSection
29 | GlobalSection(SolutionProperties) = preSolution
30 | HideSolutionNode = FALSE
31 | EndGlobalSection
32 | EndGlobal
33 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys WPF net60 Samples.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.0.29411.108
5 | MinimumVisualStudioVersion = 17.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ab3d.PowerToys.Samples", "Ab3d.PowerToys.Samples\Ab3d.PowerToys.Samples.net60.csproj", "{3A03EEA1-567C-4E18-9A3E-5951EFF558D4}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Debug|Mixed Platforms = Debug|Mixed Platforms
12 | Debug|x86 = Debug|x86
13 | Release|Any CPU = Release|Any CPU
14 | Release|Mixed Platforms = Release|Mixed Platforms
15 | Release|x86 = Release|x86
16 | EndGlobalSection
17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
18 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
19 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
20 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
21 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
22 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|x86.ActiveCfg = Debug|Any CPU
23 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
24 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Any CPU.Build.0 = Release|Any CPU
25 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
26 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Mixed Platforms.Build.0 = Release|Any CPU
27 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|x86.ActiveCfg = Release|Any CPU
28 | EndGlobalSection
29 | GlobalSection(SolutionProperties) = preSolution
30 | HideSolutionNode = FALSE
31 | EndGlobalSection
32 | EndGlobal
33 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys WPF net80 Samples.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.0.29411.108
5 | MinimumVisualStudioVersion = 17.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ab3d.PowerToys.Samples", "Ab3d.PowerToys.Samples\Ab3d.PowerToys.Samples.net80.csproj", "{3A03EEA1-567C-4E18-9A3E-5951EFF558D4}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Debug|Mixed Platforms = Debug|Mixed Platforms
12 | Debug|x86 = Debug|x86
13 | Release|Any CPU = Release|Any CPU
14 | Release|Mixed Platforms = Release|Mixed Platforms
15 | Release|x86 = Release|x86
16 | EndGlobalSection
17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
18 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
19 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
20 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
21 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
22 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|x86.ActiveCfg = Debug|Any CPU
23 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
24 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Any CPU.Build.0 = Release|Any CPU
25 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
26 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Mixed Platforms.Build.0 = Release|Any CPU
27 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|x86.ActiveCfg = Release|Any CPU
28 | EndGlobalSection
29 | GlobalSection(SolutionProperties) = preSolution
30 | HideSolutionNode = FALSE
31 | EndGlobalSection
32 | EndGlobal
33 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys WPF net90 Samples.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.0.29411.108
5 | MinimumVisualStudioVersion = 17.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ab3d.PowerToys.Samples", "Ab3d.PowerToys.Samples\Ab3d.PowerToys.Samples.net90.csproj", "{3A03EEA1-567C-4E18-9A3E-5951EFF558D4}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Debug|Mixed Platforms = Debug|Mixed Platforms
12 | Debug|x86 = Debug|x86
13 | Release|Any CPU = Release|Any CPU
14 | Release|Mixed Platforms = Release|Mixed Platforms
15 | Release|x86 = Release|x86
16 | EndGlobalSection
17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
18 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
19 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
20 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
21 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
22 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Debug|x86.ActiveCfg = Debug|Any CPU
23 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
24 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Any CPU.Build.0 = Release|Any CPU
25 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
26 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|Mixed Platforms.Build.0 = Release|Any CPU
27 | {3A03EEA1-567C-4E18-9A3E-5951EFF558D4}.Release|x86.ActiveCfg = Release|Any CPU
28 | EndGlobalSection
29 | GlobalSection(SolutionProperties) = preSolution
30 | HideSolutionNode = FALSE
31 | EndGlobalSection
32 | EndGlobal
33 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Animations/AnimationIntroPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 | Animations
15 |
16 |
17 | Ab3d.PowerToys library support advanced camera and objects animation with using key frames and custom easing functions.\n
18 | \n
19 | The samples in this section shows some possible animation scenarios and show how to customize the animation.\n
20 | \n
21 | To get more information check the comments in the code behind.
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Animations/AnimationIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.Animation
6 | {
7 | public partial class AnimationIntroPage : Page
8 | {
9 | public AnimationIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private void link_navigate(object sender, RequestNavigateEventArgs e)
15 | {
16 | Process.Start(e.Uri.ToString());
17 | e.Handled = true;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Animations/EasingFunctions.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Windows;
7 |
8 | namespace Ab3d.PowerToys.Samples
9 | {
10 | ///
11 | /// Interaction logic for App.xaml
12 | ///
13 | public partial class App : Application
14 | {
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/AssimpSamples/AssimpIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using Ab3d.Assimp;
15 |
16 | namespace Ab3d.PowerToys.Samples.AssimpSamples
17 | {
18 | ///
19 | /// Interaction logic for AssimpIntroPage.xaml
20 | ///
21 | public partial class AssimpIntroPage : Page
22 | {
23 | public AssimpIntroPage()
24 | {
25 | InitializeComponent();
26 |
27 | // We create an instance of AssimpWpfImporter to read all supported file formats
28 | // and set that to the FileFormatsTextBlock
29 |
30 | // Use helper class (defined in this sample project) to load the native assimp libraries
31 | // IMPORTANT: See commend in the AssimpLoader class for details on how to prepare your project to use assimp library.
32 | AssimpLoader.LoadAssimpNativeLibrary();
33 |
34 | var assimpWpfImporter = new AssimpWpfImporter();
35 |
36 | string[] supportedImportFormats = assimpWpfImporter.SupportedImportFormats;
37 | FileFormatsTextBlock.Text = string.Join(", ", supportedImportFormats);
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/AssimpSamples/AssimpModelVisual3D.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using Ab3d.Assimp;
15 |
16 | namespace Ab3d.PowerToys.Samples.AssimpSamples
17 | {
18 | ///
19 | /// Interaction logic for AssimpModelVisual3D.xaml
20 | ///
21 | public partial class AssimpModelVisual3D : Page
22 | {
23 | public AssimpModelVisual3D()
24 | {
25 | // Use helper class (defined in this sample project) to load the native assimp libraries
26 | // IMPORTANT: See commend in the AssimpLoader class for details on how to prepare your project to use assimp library.
27 | AssimpLoader.LoadAssimpNativeLibrary();
28 |
29 | // It is recommended to set the TriangulatorFunc static property to provide direct access to Triangulator from Ab3d.PowerToys.
30 | // If this is not done, then Reflection is used to get the same Triangulator object.
31 | AssimpWpfConverter.TriangulatorFunc = positions =>
32 | {
33 | var triangulator3D = new Ab3d.Utilities.Triangulator(positions);
34 | return triangulator3D.CreateTriangleIndices();
35 | };
36 |
37 | InitializeComponent();
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Cameras/CameraOrientation.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.Cameras
16 | {
17 | ///
18 | /// Interaction logic for CameraOrientation.xaml
19 | ///
20 | public partial class CameraOrientation : Page
21 | {
22 | public CameraOrientation()
23 | {
24 | InitializeComponent();
25 | }
26 |
27 | private void BankSlider_OnValueChanged(object sender, RoutedEventArgs e)
28 | {
29 | if (!this.IsLoaded)
30 | return;
31 |
32 | // Because we need to negate the angle we cannot directly bind EndAngle to slider's value
33 | BankLineArc.EndAngle = -BankSlider.Value;
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Cameras/CameraTypeSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using System.Windows.Media.Media3D;
15 |
16 | namespace Ab3d.PowerToys.Samples.Cameras
17 | {
18 | ///
19 | /// Interaction logic for CameraTypeSample.xaml
20 | ///
21 | public partial class CameraTypeSample : Page
22 | {
23 | public CameraTypeSample()
24 | {
25 | InitializeComponent();
26 | }
27 |
28 | private void OnCameraTypeChanged(object sender, RoutedEventArgs e)
29 | {
30 | if (!this.IsLoaded)
31 | return;
32 |
33 | if (PerspectiveCameraRadioButton.IsChecked ?? false)
34 | {
35 | if (Camera1.CameraType != Ab3d.Cameras.BaseCamera.CameraTypes.PerspectiveCamera)
36 | Camera1.CameraType = Ab3d.Cameras.BaseCamera.CameraTypes.PerspectiveCamera;
37 | }
38 | else if (OrthographicCameraRadioButton.IsChecked ?? false)
39 | {
40 | if (Camera1.CameraType != Ab3d.Cameras.BaseCamera.CameraTypes.OrthographicCamera)
41 | Camera1.CameraType = Ab3d.Cameras.BaseCamera.CameraTypes.OrthographicCamera;
42 | }
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Cameras/CamerasIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.Cameras
6 | {
7 | public partial class CamerasIntroPage : Page
8 | {
9 | public CamerasIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private void link_navigate(object sender, RequestNavigateEventArgs e)
15 | {
16 | Process.Start(e.Uri.ToString());
17 | e.Handled = true;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Cameras/CustomUpAxisWithFreeCamera.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Media.Media3D;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 | using Ab3d.Controls;
16 | using Ab3d.Visuals;
17 |
18 | namespace Ab3d.PowerToys.Samples.Cameras
19 | {
20 | ///
21 | /// Interaction logic for CustomUpAxisWithFreeCamera.xaml
22 | ///
23 | public partial class CustomUpAxisWithFreeCamera : Page
24 | {
25 | public CustomUpAxisWithFreeCamera()
26 | {
27 | InitializeComponent();
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Cameras/CustomUpAxisWithGlobalTransform.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Media.Media3D;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 | using Ab3d.Visuals;
16 |
17 | namespace Ab3d.PowerToys.Samples.Cameras
18 | {
19 | ///
20 | /// Interaction logic for CustomUpAxisWithGlobalTransform.xaml
21 | ///
22 | public partial class CustomUpAxisWithGlobalTransform : Page
23 | {
24 | public CustomUpAxisWithGlobalTransform()
25 | {
26 | InitializeComponent();
27 |
28 | // See XAML for more comments
29 |
30 | // Set the axes so they show left handed coordinate system such Autocad (with z up)
31 | // Note: WPF uses right handed coordinate system (such as OpenGL)
32 | // DirectX also uses left handed coordinate system with y up
33 | CustomCameraAxisPanel1.CustomizeAxes(new Vector3D(1, 0, 0), "X", Colors.Red,
34 | new Vector3D(0, 1, 0), "Z", Colors.Blue,
35 | new Vector3D(0, 0, -1), "Y", Colors.Green);
36 |
37 |
38 | NavigationCircles1.UseZUpAxis();
39 |
40 | // Calling UseZUpAxis is the same as:
41 | //
42 | //cameraNavigationCircles.CustomizeAxes(xAxisVector: new Vector3D(1, 0, 0), yAxisVector: new Vector3D(0, 0, -1), zAxisVector: new Vector3D(0, 1, 0));
43 | //
44 | // or:
45 | //
46 | //cameraNavigationCircles.CustomizeAxes("X", "-X", Colors.Red, new Vector3D(1, 0, 0),
47 | // "Z", "-Z", Colors.ForestGreen, new Vector3D(0, 1, 0),
48 | // "Y", "-Y", Colors.RoyalBlue, new Vector3D(0, 0, -1));
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Cameras/FreeCameraSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Media.Media3D;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 | using Ab3d.Visuals;
16 |
17 | namespace Ab3d.PowerToys.Samples.Cameras
18 | {
19 | ///
20 | /// Interaction logic for FreeCameraSample.xaml
21 | ///
22 | public partial class FreeCameraSample : Page
23 | {
24 | public FreeCameraSample()
25 | {
26 | InitializeComponent();
27 |
28 | //Camera1.StartRotation(45, 0);
29 | }
30 |
31 | private void ResetCameraButton_OnClick(object sender, RoutedEventArgs e)
32 | {
33 | ResetCamera();
34 | }
35 |
36 | private void ResetCamera()
37 | {
38 | Camera1.TargetPosition = new Point3D(0, 10, 0);
39 | Camera1.CameraPosition = new Point3D(0, 10, -100);
40 | Camera1.UpDirection = new Vector3D(0, 1, 0);
41 | }
42 |
43 | private void OnRotationUpAxisCheckedChanged(object sender, RoutedEventArgs e)
44 | {
45 | if (!this.IsLoaded)
46 | return;
47 |
48 |
49 | // Start using new RotationUpAxis from the initial camera position
50 | ResetCamera();
51 |
52 |
53 | Vector3D? newRotationUpAxis;
54 |
55 | if (YAxisRadioButton.IsChecked ?? false)
56 | {
57 | newRotationUpAxis = new Vector3D(0, 1, 0);
58 | }
59 | else if (ZAxisRadioButton.IsChecked ?? false)
60 | {
61 | newRotationUpAxis = new Vector3D(0, 0, 1);
62 |
63 | // If we would like to use tha camera so that Z axis is up axis in the scene,
64 | // then we also need to update the CameraPosition and UpDirection
65 | Camera1.TargetPosition = new Point3D(0, 0, 10);
66 | Camera1.CameraPosition = new Point3D(0, -100, 10);
67 | Camera1.UpDirection = new Vector3D(0, 0, 1); // Set Z as up direction
68 | }
69 | else
70 | {
71 | newRotationUpAxis = null;
72 | }
73 |
74 | Camera1.RotationUpAxis = newRotationUpAxis;
75 | }
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Common/SceneViewType.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 |
4 | namespace Ab3d.PowerToys.Samples.Common
5 | {
6 | public class SceneViewType
7 | {
8 | public string Name { get; private set; }
9 | public double Heading { get; private set; }
10 | public double Attitude { get; private set; }
11 |
12 | public SceneViewType(string name, double heading, double attitude)
13 | {
14 | Name = name;
15 | Heading = heading;
16 | Attitude = attitude;
17 | }
18 |
19 | #region static StandardViews, StandardCustomSceneView, Get
20 |
21 | private static SceneViewType[] _standerViews;
22 |
23 | private static SceneViewType _standardCustomSceneView;
24 |
25 | public static SceneViewType[] StandardViews
26 | {
27 | get
28 | {
29 | if (_standerViews == null)
30 | SetupStandardViews();
31 |
32 | return _standerViews;
33 | }
34 | }
35 |
36 | public static SceneViewType StandardCustomSceneView
37 | {
38 | get
39 | {
40 | if (_standardCustomSceneView == null)
41 | SetupStandardViews();
42 |
43 | return _standardCustomSceneView;
44 | }
45 | }
46 |
47 | public static SceneViewType Get(string name)
48 | {
49 | if (_standerViews == null)
50 | SetupStandardViews();
51 |
52 | return _standerViews.FirstOrDefault(v => string.Equals(v.Name, name, StringComparison.CurrentCultureIgnoreCase));
53 | }
54 |
55 | private static void SetupStandardViews()
56 | {
57 | _standardCustomSceneView = new SceneViewType("Custom", 20, -20);
58 |
59 | _standerViews = new SceneViewType[]
60 | {
61 | _standardCustomSceneView,
62 | new SceneViewType("Top", 0, -90),
63 | new SceneViewType("Front", 0, 0),
64 | new SceneViewType("Left", 90, 0),
65 | new SceneViewType("Right", -90, 0),
66 | new SceneViewType("Back", 180, 0),
67 | new SceneViewType("Bottom", 0, 90)
68 | };
69 | }
70 |
71 | public override bool Equals(object obj)
72 | {
73 | var sceneViewType = obj as SceneViewType;
74 | if (sceneViewType == null)
75 | return false;
76 |
77 | return this.Name.Equals(sceneViewType.Name) &&
78 | this.Heading.Equals(sceneViewType.Heading) &&
79 | this.Attitude.Equals(sceneViewType.Attitude);
80 | }
81 |
82 | public override int GetHashCode()
83 | {
84 | return this.Name.GetHashCode() ^ this.Heading.GetHashCode() ^ this.Attitude.GetHashCode();
85 | }
86 |
87 | #endregion
88 | }
89 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/EventManager3D/EventManagerIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.EventManager3D
6 | {
7 | public partial class EventManagerIntroPage : Page
8 | {
9 | public EventManagerIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private void link_navigate(object sender, RequestNavigateEventArgs e)
15 | {
16 | Process.Start(e.Uri.ToString());
17 | e.Handled = true;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/EventManager3D/EventPanels/EventData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Ab3d.PowerToys.Samples.EventManager3D.EventPanels
7 | {
8 | ///
9 | /// Event data for displaying list of all triggered events
10 | ///
11 | public class EventData
12 | {
13 | public string Time { get; private set; }
14 | public string Name { get; private set; }
15 | public EventArgs Args { get; private set; }
16 |
17 | public EventData(string name, EventArgs args)
18 | {
19 | this.Name = name;
20 | this.Args = args;
21 |
22 | this.Time = DateTime.Now.ToString("HH:mm:ss.f");
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/EventManager3D/EventPanels/Mouse3DEventArgsPanel.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/EventManager3D/EventPanels/Mouse3DEventArgsPanel.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using Ab3d.Common.EventManager3D;
15 | using System.Windows.Media.Media3D;
16 | using Ab3d.Utilities;
17 |
18 | namespace Ab3d.PowerToys.Samples.EventManager3D.EventPanels
19 | {
20 | ///
21 | /// Interaction logic for Mouse3DEventArgsPanel.xaml
22 | ///
23 | public partial class Mouse3DEventArgsPanel : UserControl
24 | {
25 | public Mouse3DEventArgsPanel()
26 | {
27 | InitializeComponent();
28 |
29 | this.DataContextChanged += new DependencyPropertyChangedEventHandler(Mouse3DEventArgsPanel_DataContextChanged);
30 | }
31 |
32 | void Mouse3DEventArgsPanel_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
33 | {
34 | // Manually check if hit object was MultiModelEventSource3D or MultiVisualEventSource3D
35 | // and in this case show HitModelName / HitVisualName
36 |
37 | HitNameTitleTextBlock.Visibility = Visibility.Collapsed;
38 | HitNameValueTextBlock.Visibility = Visibility.Collapsed;
39 |
40 | if (this.DataContext is BaseMouse3DEventArgs)
41 | {
42 | BaseMouse3DEventArgs mouse3DEventArgs = this.DataContext as BaseMouse3DEventArgs;
43 |
44 | if (mouse3DEventArgs.HitEventSource3D is MultiModelEventSource3D)
45 | {
46 | MultiModelEventSource3D multiModelEventSource3D = mouse3DEventArgs.HitEventSource3D as MultiModelEventSource3D;
47 |
48 | if (!string.IsNullOrEmpty(multiModelEventSource3D.HitModelName))
49 | {
50 | HitNameValueTextBlock.Text = multiModelEventSource3D.HitModelName;
51 |
52 | HitNameTitleTextBlock.Visibility = Visibility.Visible;
53 | HitNameValueTextBlock.Visibility = Visibility.Visible;
54 | }
55 | }
56 | else if (mouse3DEventArgs.HitEventSource3D is MultiVisualEventSource3D)
57 | {
58 | MultiVisualEventSource3D multiVisualEventSource3D = mouse3DEventArgs.HitEventSource3D as MultiVisualEventSource3D;
59 |
60 | if (!string.IsNullOrEmpty(multiVisualEventSource3D.HitVisualName))
61 | {
62 | HitNameValueTextBlock.Text = multiVisualEventSource3D.HitVisualName;
63 |
64 | HitNameTitleTextBlock.Visibility = Visibility.Visible;
65 | HitNameValueTextBlock.Visibility = Visibility.Visible;
66 | }
67 | }
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/EventManager3D/EventPanels/MouseButton3DEventArgsPanel.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/EventManager3D/EventPanels/MouseButton3DEventArgsPanel.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using Ab3d.Common.EventManager3D;
15 | using Ab3d.Utilities;
16 |
17 | namespace Ab3d.PowerToys.Samples.EventManager3D.EventPanels
18 | {
19 | ///
20 | /// Interaction logic for MouseButton3DEventArgsPanel.xaml
21 | ///
22 | public partial class MouseButton3DEventArgsPanel : UserControl
23 | {
24 | public MouseButton3DEventArgsPanel()
25 | {
26 | InitializeComponent();
27 |
28 | this.DataContextChanged += new DependencyPropertyChangedEventHandler(Mouse3DEventArgsPanel_DataContextChanged);
29 | }
30 |
31 | void Mouse3DEventArgsPanel_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
32 | {
33 | // Manually check if hit object was MultiModelEventSource3D or MultiVisualEventSource3D
34 | // and in this case show HitModelName / HitVisualName
35 |
36 | HitNameTitleTextBlock.Visibility = Visibility.Collapsed;
37 | HitNameValueTextBlock.Visibility = Visibility.Collapsed;
38 |
39 | if (this.DataContext is BaseMouse3DEventArgs)
40 | {
41 | BaseMouse3DEventArgs mouse3DEventArgs = this.DataContext as BaseMouse3DEventArgs;
42 |
43 | if (mouse3DEventArgs.HitEventSource3D is MultiModelEventSource3D)
44 | {
45 | MultiModelEventSource3D multiModelEventSource3D = mouse3DEventArgs.HitEventSource3D as MultiModelEventSource3D;
46 |
47 | if (!string.IsNullOrEmpty(multiModelEventSource3D.HitModelName))
48 | {
49 | HitNameValueTextBlock.Text = multiModelEventSource3D.HitModelName;
50 |
51 | HitNameTitleTextBlock.Visibility = Visibility.Visible;
52 | HitNameValueTextBlock.Visibility = Visibility.Visible;
53 | }
54 | }
55 | else if (mouse3DEventArgs.HitEventSource3D is MultiVisualEventSource3D)
56 | {
57 | MultiVisualEventSource3D multiVisualEventSource3D = mouse3DEventArgs.HitEventSource3D as MultiVisualEventSource3D;
58 |
59 | if (!string.IsNullOrEmpty(multiVisualEventSource3D.HitVisualName))
60 | {
61 | HitNameValueTextBlock.Text = multiVisualEventSource3D.HitVisualName;
62 |
63 | HitNameTitleTextBlock.Visibility = Visibility.Visible;
64 | HitNameValueTextBlock.Visibility = Visibility.Visible;
65 | }
66 | }
67 | }
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/EventManager3D/EventPanels/MouseDrag3DEventArgsPanel.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using Ab3d.Common.EventManager3D;
15 | using System.Windows.Media.Media3D;
16 | using Ab3d.Utilities;
17 |
18 | namespace Ab3d.PowerToys.Samples.EventManager3D.EventPanels
19 | {
20 | ///
21 | /// Interaction logic for MouseDrag3DEventArgsPanel.xaml
22 | ///
23 | public partial class MouseDrag3DEventArgsPanel : UserControl
24 | {
25 | public MouseDrag3DEventArgsPanel()
26 | {
27 | InitializeComponent();
28 |
29 | this.DataContextChanged += new DependencyPropertyChangedEventHandler(Mouse3DEventArgsPanel_DataContextChanged);
30 | }
31 |
32 |
33 | void Mouse3DEventArgsPanel_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
34 | {
35 | // Manually check if hit object was MultiModelEventSource3D or MultiVisualEventSource3D
36 | // and in this case show HitModelName / HitVisualName
37 |
38 | HitNameTitleTextBlock.Visibility = Visibility.Collapsed;
39 | HitNameValueTextBlock.Visibility = Visibility.Collapsed;
40 |
41 | if (this.DataContext is BaseMouse3DEventArgs)
42 | {
43 | BaseMouse3DEventArgs mouse3DEventArgs = this.DataContext as BaseMouse3DEventArgs;
44 |
45 | if (mouse3DEventArgs.HitEventSource3D is MultiModelEventSource3D)
46 | {
47 | MultiModelEventSource3D multiModelEventSource3D = mouse3DEventArgs.HitEventSource3D as MultiModelEventSource3D;
48 |
49 | if (!string.IsNullOrEmpty(multiModelEventSource3D.HitModelName))
50 | {
51 | HitNameValueTextBlock.Text = multiModelEventSource3D.HitModelName;
52 |
53 | HitNameTitleTextBlock.Visibility = Visibility.Visible;
54 | HitNameValueTextBlock.Visibility = Visibility.Visible;
55 | }
56 | }
57 | else if (mouse3DEventArgs.HitEventSource3D is MultiVisualEventSource3D)
58 | {
59 | MultiVisualEventSource3D multiVisualEventSource3D = mouse3DEventArgs.HitEventSource3D as MultiVisualEventSource3D;
60 |
61 | if (!string.IsNullOrEmpty(multiVisualEventSource3D.HitVisualName))
62 | {
63 | HitNameValueTextBlock.Text = multiVisualEventSource3D.HitVisualName;
64 |
65 | HitNameTitleTextBlock.Visibility = Visibility.Visible;
66 | HitNameValueTextBlock.Visibility = Visibility.Visible;
67 | }
68 | }
69 | }
70 | }
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/EventManager3D/EventPanels/MouseWheel3DEventArgsPanel.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/EventManager3D/EventPanels/MouseWheel3DEventArgsPanel.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using Ab3d.Common.EventManager3D;
15 | using System.Windows.Media.Media3D;
16 | using Ab3d.Utilities;
17 |
18 | namespace Ab3d.PowerToys.Samples.EventManager3D.EventPanels
19 | {
20 | ///
21 | /// Interaction logic for MouseWheel3DEventArgsPanel.xaml
22 | ///
23 | public partial class MouseWheel3DEventArgsPanel : UserControl
24 | {
25 | public MouseWheel3DEventArgsPanel()
26 | {
27 | InitializeComponent();
28 |
29 | this.DataContextChanged += new DependencyPropertyChangedEventHandler(MouseWheel3DEventArgsPanel_DataContextChanged);
30 | }
31 |
32 | void MouseWheel3DEventArgsPanel_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
33 | {
34 | // Manually check if hit object was MultiModelEventSource3D or MultiVisualEventSource3D
35 | // and in this case show HitModelName / HitVisualName
36 |
37 | HitNameTitleTextBlock.Visibility = Visibility.Collapsed;
38 | HitNameValueTextBlock.Visibility = Visibility.Collapsed;
39 |
40 | if (this.DataContext is BaseMouse3DEventArgs)
41 | {
42 | BaseMouse3DEventArgs mouse3DEventArgs = this.DataContext as BaseMouse3DEventArgs;
43 |
44 | if (mouse3DEventArgs.HitEventSource3D is MultiModelEventSource3D)
45 | {
46 | MultiModelEventSource3D multiModelEventSource3D = mouse3DEventArgs.HitEventSource3D as MultiModelEventSource3D;
47 |
48 | if (!string.IsNullOrEmpty(multiModelEventSource3D.HitModelName))
49 | {
50 | HitNameValueTextBlock.Text = multiModelEventSource3D.HitModelName;
51 |
52 | HitNameTitleTextBlock.Visibility = Visibility.Visible;
53 | HitNameValueTextBlock.Visibility = Visibility.Visible;
54 | }
55 | }
56 | else if (mouse3DEventArgs.HitEventSource3D is MultiVisualEventSource3D)
57 | {
58 | MultiVisualEventSource3D multiVisualEventSource3D = mouse3DEventArgs.HitEventSource3D as MultiVisualEventSource3D;
59 |
60 | if (!string.IsNullOrEmpty(multiVisualEventSource3D.HitVisualName))
61 | {
62 | HitNameValueTextBlock.Text = multiVisualEventSource3D.HitVisualName;
63 |
64 | HitNameTitleTextBlock.Visibility = Visibility.Visible;
65 | HitNameValueTextBlock.Visibility = Visibility.Visible;
66 | }
67 | }
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/EventManager3D/EventPanels/Touch3DEventArgsPanel.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Graph3D/Graph3DIntroPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 | \!3D Graphs\!
15 |
16 | This section shows a few sample 3D graphs and the building blocks that you can use to show 3D axes.
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Graph3D/Graph3DIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.Graph3D
6 | {
7 | public partial class Graph3DIntroPage : Page
8 | {
9 | public Graph3DIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private void link_navigate(object sender, RequestNavigateEventArgs e)
15 | {
16 | Process.Start(e.Uri.ToString());
17 | e.Handled = true;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Input/InputIntroPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 | The Input samples section shows how to control the camera with using a \!3D mouse\! from 3D Connection or a \!XBox or similar game controller\!.\n
16 | \n
17 | Using 3D mouse can greatly improve productivity of an experienced user because it can greatly speed up navigation in 3D world.
18 |
19 |
20 |
21 |
22 |
23 |
24 | (images from www.3dconnexion.eu and www.xbox.com)\n
25 | \n
26 | The classes that allow controlling camera with 3D mouse or game controller are defined in a separate \!Ab3d.PowerToys.Input\! assembly.
27 | This means that before you can use them, you need to add reference to Ab3d.PowerToys.Input assembly.\n
28 | \n
29 | \n
30 | Note that when using the 3D mouse API, you need to agree to the 3Dconnexion SDK license (available here: http://www.3dconnexion.eu/service/software-developer/licence-agreement.html).
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Input/InputIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.Input
6 | {
7 | public partial class InputIntroPage : Page
8 | {
9 | public InputIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private void link_navigate(object sender, RequestNavigateEventArgs e)
15 | {
16 | Process.Start(e.Uri.ToString());
17 | e.Handled = true;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/IsStringEmptyConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Windows;
5 | using System.Windows.Data;
6 | using System.Xml;
7 |
8 | namespace Ab3d.PowerToys.Samples
9 | {
10 | // From: Kevin Moore's Bag-o-Tricks (http://j832.com/bagotricks)
11 | public class IsStringEmptyConverter : IValueConverter
12 | {
13 | public object Convert(
14 | object value,
15 | Type targetType,
16 | object parameter,
17 | CultureInfo culture)
18 | {
19 | var xmlElement = value as XmlElement;
20 | if (xmlElement != null)
21 | {
22 | var descriptionAttribute = xmlElement.Attributes["Description"];
23 | if (descriptionAttribute != null)
24 | {
25 | if (!string.IsNullOrEmpty(descriptionAttribute.Value))
26 | {
27 | if (targetType == typeof(Visibility))
28 | return Visibility.Visible;
29 |
30 | return true;
31 | }
32 | }
33 | }
34 |
35 | if (targetType == typeof(Visibility))
36 | return Visibility.Collapsed;
37 |
38 | return false;
39 | }
40 |
41 | public object ConvertBack(
42 | object value,
43 | Type targetType,
44 | object parameter,
45 | CultureInfo culture)
46 | {
47 | throw new NotSupportedException();
48 | }
49 | }
50 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Lines3D/AxesVisuals.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.Lines3D
16 | {
17 | ///
18 | /// Interaction logic for AxesVisuals.xaml
19 | ///
20 | public partial class AxesVisuals : Page
21 | {
22 | public AxesVisuals()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Lines3D/Lines3DIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.Lines3D
6 | {
7 | public partial class Lines3DIntroPage : Page
8 | {
9 | public Lines3DIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Lines3D/Lines3DSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using Ab3d.Utilities;
15 | using Ab3d.Visuals;
16 | using System.Windows.Media.Media3D;
17 |
18 | namespace Ab3d.PowerToys.Samples.Lines3D
19 | {
20 | ///
21 | /// Interaction logic for Lines3DSample.xaml
22 | ///
23 | public partial class Lines3DSample : Page
24 | {
25 | public Lines3DSample()
26 | {
27 | InitializeComponent();
28 |
29 | SetUpMultiPolyLineVisual3D();
30 | }
31 |
32 | private void SetUpMultiPolyLineVisual3D()
33 | {
34 | // MultiPolyLineVisual3D.PositionsList need a list of Point3DCollection to draw multiple polylines with one Visual3D
35 |
36 | var allPolylines = new List();
37 |
38 | // We will create multiple circles with 6 segments
39 | int segmentsCount = 6;
40 |
41 | var circlePositions = new List();
42 | double angleStep = 2 * Math.PI / segmentsCount;
43 | double angle = 0;
44 | for (int i = 0; i < segmentsCount; i++)
45 | {
46 | circlePositions.Add(new Point(Math.Sin(angle), Math.Cos(angle)));
47 | angle += angleStep;
48 | }
49 |
50 | // Start center position
51 | var centerPosition = new Point3D(-120, 0, -120);
52 |
53 | for (int i = 1; i < 5; i++)
54 | {
55 | var point3DCollection = new Point3DCollection(segmentsCount);
56 | for (int j = 0; j < segmentsCount; j++)
57 | {
58 | var onePosition = centerPosition + new Vector3D(circlePositions[j].X * i * 5 + 10, circlePositions[j].Y * i * 5 + 10, -i * 10);
59 | point3DCollection.Add(onePosition);
60 | }
61 |
62 | allPolylines.Add(point3DCollection);
63 | }
64 |
65 | MultiPolyLineVisual.PositionsList = allPolylines;
66 |
67 | // We can also set IsClosed to close (connect first and last point) all the polylines
68 | MultiPolyLineVisual.IsClosed = true;
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Lines3D/WireframeTypesSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.Lines3D
16 | {
17 | ///
18 | /// Interaction logic for WireframeTypesSample.xaml
19 | ///
20 | public partial class WireframeTypesSample : Page
21 | {
22 | public WireframeTypesSample()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/MouseCameraControllerSamples/HorizontalCameraMovement.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.MouseCameraControllerSamples
16 | {
17 | ///
18 | /// Interaction logic for HorizontalCameraMovement.xaml
19 | ///
20 | public partial class HorizontalCameraMovement : Page
21 | {
22 | public HorizontalCameraMovement()
23 | {
24 | InitializeComponent();
25 |
26 | UpdateCamera1RotationCenter();
27 | UpdateCamera2RotationCenter();
28 | }
29 |
30 | private void OnCamera1MoveEnded(object sender, EventArgs e)
31 | {
32 | UpdateCamera1RotationCenter();
33 | }
34 |
35 | private void OnCamera2MoveEnded(object sender, EventArgs e)
36 | {
37 | UpdateCamera2RotationCenter();
38 | }
39 |
40 | private void UpdateCamera1RotationCenter()
41 | {
42 | // Move the ColoredAxisVisual3D so that it will show the current center of camera rotation
43 | AxisTranslation1.OffsetX = Camera1.TargetPosition.X + Camera1.Offset.X;
44 | AxisTranslation1.OffsetY = Camera1.TargetPosition.Y + Camera1.Offset.Y;
45 | AxisTranslation1.OffsetZ = Camera1.TargetPosition.Z + Camera1.Offset.Z;
46 | }
47 |
48 | private void UpdateCamera2RotationCenter()
49 | {
50 | // Move the ColoredAxisVisual3D so that it will show the current center of camera rotation
51 | AxisTranslation2.OffsetX = Camera2.TargetPosition.X + Camera2.Offset.X;
52 | AxisTranslation2.OffsetY = Camera2.TargetPosition.Y + Camera2.Offset.Y;
53 | AxisTranslation2.OffsetZ = Camera2.TargetPosition.Z + Camera2.Offset.Z;
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/MouseCameraControllerSamples/MouseCameraControllerIntroPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 | Great camera control is the heart of any 3D application.\n
17 | \n
18 | It allows user of the application to control the view of the 3D scene. Simple camera control can make the application feel natural and easy to use.\n
19 | \n
20 | The main camera controller in Ab3d.PowerToys library is \!MouseCameraController\!.\n
21 | \n
22 | MouseCameraController allows user to rotate, move and zoom camera with mouse or with touch. It provides many properties that enable customizing the camera control.\n
23 | \n
24 | See the samples in this section to see a demonstration of the MouseCameraController.\n
25 | \n
26 | Note also that MouseCameraController can be used with any type of camera (TargetPositionCamera, FreeCamera, FirstPersonCamera, etc.).
27 | The type of camera greatly influences what will happen when user rotates the camera - with TargetPositionCamera the scene will rotate around TargetPosition, but with FirstPersonCamera the view will rotate around as if user would rotate the head around.
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/MouseCameraControllerSamples/MouseCameraControllerIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.MouseCameraControllerSamples
6 | {
7 | public partial class MouseCameraControllerIntroPage : Page
8 | {
9 | public MouseCameraControllerIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/AdvancedObjects3DIntroPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 | The Ab3d.PowerToys library can be also used to create some advanced 3D objects:\n
17 | \* \!HeightMap\!,\n
18 | \* \!TubePath\!,\n
19 | \* Objects \!extruded\! from a 2D shape,\n
20 | \* 2D shape \!extruded\! along a 3D path,\n
21 | \* \!Lathe\! objects that are created with rotating a 2D shape around a center axis,\n
22 | \* Objects created with \!Boolean operations\!,\n
23 | \* \!Sliced\! 3D objects.\n
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/AdvancedObjects3DIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.Objects3D
6 | {
7 | public partial class AdvancedObjects3DIntroPage : Page
8 | {
9 | public AdvancedObjects3DIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private void link_navigate(object sender, RequestNavigateEventArgs e)
15 | {
16 | Process.Start(e.Uri.ToString());
17 | e.Handled = true;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/AllUIElementsSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.Objects3D
16 | {
17 | ///
18 | /// Interaction logic for AllUIElementsSample.xaml
19 | ///
20 | public partial class AllUIElementsSample : Page
21 | {
22 | public AllUIElementsSample()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/AllVisualsSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Media.Media3D;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 | using Ab3d.Common;
16 | using Ab3d.Meshes;
17 |
18 | namespace Ab3d.PowerToys.Samples.Objects3D
19 | {
20 | ///
21 | /// Interaction logic for AllVisualsSample.xaml
22 | ///
23 | public partial class AllVisualsSample : Page
24 | {
25 | public AllVisualsSample()
26 | {
27 | InitializeComponent();
28 |
29 |
30 | //// Code to add test button:
31 | //var testButton = new Button()
32 | //{
33 | // Content = "TEST",
34 | // HorizontalAlignment = HorizontalAlignment.Right,
35 | // VerticalAlignment = VerticalAlignment.Bottom,
36 | //};
37 |
38 | //testButton.Click += delegate (object sender, RoutedEventArgs args)
39 | //{
40 | // // Place to put test code
41 | //};
42 |
43 | //MainGrid.Children.Add(testButton);
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/MaterialTypeConverterSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.Objects3D
16 | {
17 | ///
18 | /// Interaction logic for MaterialTypeConverterSample.xaml
19 | ///
20 | public partial class MaterialTypeConverterSample : Page
21 | {
22 | public MaterialTypeConverterSample()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/Model3DFactorySample.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
41 |
42 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/MultiMaterialBoxVisual3DSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using System.Windows.Media.Media3D;
15 |
16 | namespace Ab3d.PowerToys.Samples.Objects3D
17 | {
18 | ///
19 | /// Interaction logic for MultiMaterialBoxVisual3DSample.xaml
20 | ///
21 | public partial class MultiMaterialBoxVisual3DSample : Page
22 | {
23 | public MultiMaterialBoxVisual3DSample()
24 | {
25 | InitializeComponent();
26 |
27 | this.Loaded += new RoutedEventHandler(MultiMaterialBoxVisual3DSample_Loaded);
28 | }
29 |
30 | void MultiMaterialBoxVisual3DSample_Loaded(object sender, RoutedEventArgs e)
31 | {
32 | UpdateMaterial();
33 | }
34 |
35 | private void UpdateMaterial()
36 | {
37 | MultiMaterialBoxVisual3D1.TopMaterial = GetMaterial(TopMaterialComboBox);
38 | MultiMaterialBoxVisual3D1.BottomMaterial = GetMaterial(BottomMaterialComboBox);
39 | MultiMaterialBoxVisual3D1.LeftMaterial = GetMaterial(LeftMaterialComboBox);
40 | MultiMaterialBoxVisual3D1.RightMaterial = GetMaterial(RightMaterialComboBox);
41 | MultiMaterialBoxVisual3D1.FrontMaterial = GetMaterial(FrontMaterialComboBox);
42 | MultiMaterialBoxVisual3D1.BackMaterial = GetMaterial(BackMaterialComboBox);
43 |
44 | MultiMaterialBoxVisual3D1.FallbackMaterial = GetMaterial(FallbackMaterialComboBox);
45 | }
46 |
47 | private Material GetMaterial(ComboBox comboBox)
48 | {
49 | Material material;
50 |
51 | switch (comboBox.SelectedIndex)
52 | {
53 | case 0:
54 | material = null;
55 | break;
56 |
57 | case 1:
58 | material = new DiffuseMaterial(Brushes.LightBlue);
59 | break;
60 |
61 | case 2:
62 | material = new DiffuseMaterial(Brushes.Yellow);
63 | break;
64 |
65 | default:
66 | case 3:
67 | material = new DiffuseMaterial(Brushes.Red);
68 | break;
69 | }
70 |
71 | return material;
72 | }
73 |
74 | private void TopMaterialComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
75 | {
76 | if (this.IsLoaded)
77 | UpdateMaterial();
78 | }
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/MultiMaterialBoxesSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.Objects3D
16 | {
17 | ///
18 | /// Interaction logic for MultiMaterialBoxesSample.xaml
19 | ///
20 | public partial class MultiMaterialBoxesSample : Page
21 | {
22 | public MultiMaterialBoxesSample()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/Objects3DIntroPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 | The Ab3d.PowerToys library defines classes that allow creation of some basic 3D objects.\n
17 | \n
18 | The 3D models can be created in many ways. With classes under the \!Ab3d.Meshes\! namespace it is possible to create MeshGeometry3D objects.\n
19 | \n
20 | The \!Ab3d.Models.Model3DFactory\! class can be used to create basic 3D objects as GeometryModel3D objects.\n
21 | \n
22 | To create 3D objects in \!XAML\! and immediately see the results in Visual Studio designer use the classes in \!Ab3d.Visuals\! or \!Ab3d.UIElements\!.\n
23 | \n
24 | The difference between 3D objects defined under Ab3d.Visuals and Ab3d.UIElements is that the object under UIElements are derived from UIElement3D and therefore have support for input, focusing, and eventing. They also define \!ToolTip\! property that can be used to simply shown a ToolTip when mouse is over the 3D element. The 3D objects under Ab3d.Visuals are derived from ModelVisual3D and are therefore more lightweight.\n
25 | \n
26 | To make creation of 3D object in XAML even simpler, the Material and BackMaterial property can be simply set by defining its color. This is done with \!MaterialTypeConverter\! that converts color name into DiffuseMaterial with SolidColorBrush.\n
27 | \n
28 | The creation of objects is highly optimized to make the creation as fast as possible.
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/Objects3DIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.Objects3D
6 | {
7 | public partial class Objects3DIntroPage : Page
8 | {
9 | public Objects3DIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private void link_navigate(object sender, RequestNavigateEventArgs e)
15 | {
16 | Process.Start(e.Uri.ToString());
17 | e.Handled = true;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/SkyboxSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.Objects3D
16 | {
17 | ///
18 | /// Interaction logic for SkyboxSample.xaml
19 | ///
20 | public partial class SkyboxSample : Page
21 | {
22 | public SkyboxSample()
23 | {
24 | InitializeComponent();
25 | }
26 |
27 | private void Camera1_OnCameraChanged(object sender, RoutedEventArgs e)
28 | {
29 | SkyBoxCamera.Heading = Camera1.Heading;
30 | SkyBoxCamera.Attitude = Camera1.Attitude;
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/StreamLinesSample.xaml:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
26 |
27 |
35 |
36 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Objects3D/UIElementsToolTipSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.Objects3D
16 | {
17 | ///
18 | /// Interaction logic for UIElementsToolTipSample.xaml
19 | ///
20 | public partial class UIElementsToolTipSample : Page
21 | {
22 | public UIElementsToolTipSample()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Other/DXEngineSamples.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 | Ab3d.PowerToys uses WPF 3D rendering engine.\n
15 | \n
16 | This is sufficient for many use cases, but if you want much better performance, want to render millions of objects or want much better rendering quality with advanced materials,
17 | then check the Ab3d.DXEngine.\n
18 | \n
19 | \!Ab3d.DXEngine - a DirectX 11 rendering engine\! that can be easily added to an existing application that uses Ab3d.PowerToys library.
20 |
21 |
22 |
23 | Click here to open Ab3d.DXEngine samples project
24 |
25 |
26 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Other/DXEngineSamples.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.Other
16 | {
17 | ///
18 | /// Interaction logic for DXEngineSamples.xaml
19 | ///
20 | public partial class DXEngineSamples : Page
21 | {
22 | private string _sampleSolutionPath;
23 |
24 | public DXEngineSamples()
25 | {
26 | InitializeComponent();
27 |
28 | // Try to find path to DXEngine's samples solution
29 | // NOTE: This only works for installed samples and not for samples from GitHub - there we cannot know where the DXEngine samples are
30 | _sampleSolutionPath = System.IO.Path.Combine(
31 | AppDomain.CurrentDomain.BaseDirectory,
32 | @"..\..\..\..\Ab3d.DXEngine\Ab3d.DXEngine MAIN SAMPLES.sln");
33 |
34 | if (System.IO.File.Exists(_sampleSolutionPath))
35 | {
36 | OpenSolutionTextBlock.Visibility = Visibility.Visible;
37 |
38 | SampleImage.Cursor = Cursors.Hand;
39 | SampleImage.MouseLeftButtonUp += SampleImage_OnMouseLeftButtonUp;
40 | }
41 | }
42 |
43 | private void Hyperlink_OnClick(object sender, RoutedEventArgs e)
44 | {
45 | OpenSolutionHyperlink.IsEnabled = false;
46 | OpenSamplesSolution();
47 | }
48 |
49 | private void SampleImage_OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
50 | {
51 | OpenSamplesSolution();
52 | }
53 |
54 | private void OpenSamplesSolution()
55 | {
56 | try
57 | {
58 | System.Diagnostics.Process.Start(_sampleSolutionPath);
59 | }
60 | catch (Exception ex)
61 | {
62 | MessageBox.Show(ex.Message, "Error opening solution", MessageBoxButton.OK, MessageBoxImage.Error);
63 | }
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Other/IntroductionPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows;
3 | using System.Windows.Controls;
4 | using System.Windows.Data;
5 | using System.Windows.Navigation;
6 | using Ab3d.Cameras;
7 | using Ab3d.PowerToys.Samples.Common;
8 |
9 | namespace Ab3d.PowerToys.Samples.Other
10 | {
11 | public partial class IntroductionPage : Page
12 | {
13 | public IntroductionPage()
14 | {
15 | InitializeComponent();
16 |
17 | // Revision number defines the type of assembly:
18 | // version from 0 ... 999 - evaluation version from evaluation installer
19 | // version from 1000 ... 1999 - commercial version from commercial installer
20 | // version above 2000 - version from NuGet
21 |
22 | bool isNuGetVersion = typeof(BaseCamera).Assembly.GetName().Version.Revision >= 2000;
23 |
24 | // Show info that for .Net Core and .Net 5.0+ it is recommended to use versions from NuGet
25 | NuGetVersionInfoTextBlockEx.Visibility = isNuGetVersion ? Visibility.Collapsed : Visibility.Visible;
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Other/SupportPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Windows;
5 | using System.Windows.Controls;
6 | using System.Windows.Data;
7 | using System.Windows.Documents;
8 | using System.Windows.Input;
9 | using System.Windows.Media;
10 | using System.Windows.Media.Imaging;
11 | using System.Windows.Shapes;
12 | using System.IO;
13 | using System.Net;
14 | using System.Windows.Navigation;
15 | using System.Diagnostics;
16 |
17 | namespace Ab3d.PowerToys.Samples.Other
18 | {
19 | ///
20 | /// Interaction logic for SupportPage.xaml
21 | ///
22 | public partial class SupportPage : Page
23 | {
24 | public SupportPage()
25 | {
26 | InitializeComponent();
27 | }
28 |
29 | private void link_navigate(object sender, RequestNavigateEventArgs e)
30 | {
31 | Process.Start(e.Uri.ToString());
32 | e.Handled = true;
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Other/WinFormsInfo.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Other/WinFormsInfo.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.Other
16 | {
17 | ///
18 | /// Interaction logic for WinFormsInfo.xaml
19 | ///
20 | public partial class WinFormsInfo : Page
21 | {
22 | public WinFormsInfo()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/OtherCameraControllers/CameraControlPanel.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using System.Windows.Media.Media3D;
15 | using Ab3d.Controls;
16 |
17 | namespace Ab3d.PowerToys.Samples.OtherCameraControllers
18 | {
19 | ///
20 | /// Interaction logic for CameraControlPanel.xaml
21 | ///
22 | public partial class CameraControlPanel : Page
23 | {
24 | public CameraControlPanel()
25 | {
26 | InitializeComponent();
27 | }
28 |
29 | private void ResetCamera_Click(object sender, RoutedEventArgs e)
30 | {
31 | // make all the changes at once
32 | SceneCamera1.BeginInit();
33 |
34 | SceneCamera1.Heading = -30;
35 | SceneCamera1.Attitude = -15;
36 | SceneCamera1.Distance = 2;
37 | SceneCamera1.Offset = new Vector3D(0, 0, 0);
38 |
39 | SceneCamera1.EndInit();
40 | }
41 |
42 | private void MoveAmountSlider_OnValueChanged(object sender, RoutedPropertyChangedEventArgs e)
43 | {
44 | if (MoveAmountSlider.Value <= 0.1)
45 | MoveAmountValueTextBlock.Text = "(auto)";
46 | else
47 | MoveAmountValueTextBlock.Text = string.Format("{0:0}", MoveAmountSlider.Value);
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/OtherCameraControllers/CameraControllerIntroPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 | Ab3d.PowerToys also comes with other camera Controllers that can be used to control the camera or show the orientation of the camera.\n
17 | \n
18 | The following are the additional camera controllers:\n
19 | \n
20 | The \!CameraNavigationCircles\! shows camera axes with axis circles and can be used to rotate the camera.\n
21 | \n
22 | The \!CameraControlPanel\! shows nice buttons to rotate the camera and move the camera closer or farther away.\n
23 | \n
24 | The \!CameraPreviewPanel\! graphically shows at which angle the camera is looking at the object or scene.\n
25 | \n
26 | The \!CameraAxisPanel\! shows the axis orientation for the target camera.\n
27 | \n
28 | The \!MouseCameraControllerInfo\! control graphically shows which mouse button and key combination is used to rotate and move the camera.\n
29 | \n
30 | The \!XInputCameraController\! can be used to control the camera with game controller (for example XBox controller).\n
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/OtherCameraControllers/CameraControllerIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.OtherCameraControllers
6 | {
7 | public partial class CameraControllerIntroPage : Page
8 | {
9 | public CameraControllerIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private void link_navigate(object sender, RequestNavigateEventArgs e)
15 | {
16 | Process.Start(e.Uri.ToString());
17 | e.Handled = true;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/OtherCameraControllers/CustomControlPanel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows.Media.Imaging;
6 |
7 | namespace Ab3d.PowerToys.Samples.OtherCameraControllers
8 | {
9 | public class CustomControlPanel : Ab3d.Controls.CameraControlPanel
10 | {
11 | public CustomControlPanel()
12 | : base()
13 | {
14 | }
15 |
16 | protected override System.Windows.Media.Imaging.BitmapSource GetUnSelectedBitmapForImageName(string imageName)
17 | {
18 | return GetBitmapForImageName(imageName, false);
19 | }
20 |
21 | protected override System.Windows.Media.Imaging.BitmapSource GetSelectedBitmapForImageName(string imageName)
22 | {
23 | return GetBitmapForImageName(imageName, true);
24 | }
25 |
26 | protected virtual BitmapSource GetBitmapForImageName(string imageName, bool isSelected)
27 | {
28 | BitmapImage bitmap;
29 | string selectedString;
30 | string imageUri;
31 |
32 | if (isSelected)
33 | selectedString = "_selected";
34 | else
35 | selectedString = "";
36 |
37 | // NOTE: The images build action is set to Resource
38 | imageUri = string.Format("/Resources/CustomControlPanel/{0}{1}.png", imageName, selectedString);
39 |
40 | bitmap = new BitmapImage(new Uri(imageUri, UriKind.RelativeOrAbsolute));
41 |
42 | return bitmap;
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/OtherCameraControllers/CustomControlPanelSample.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
15 |
16 |
17 |
18 |
20 |
21 | Instructions to change color from original orange to blue with Adobe Photoshop:
22 |
23 |
24 | 1. Open all selected button images.
25 | 2. Desaturate colors (Saturation: -100) in all images to convert the image into grayscale.
26 | 3. In one image add color overlay. Select blend mode: Hard Light.
27 | 4. Select color: R: 38, G: 140, B: 217
28 | 5. Save the image as blue selected arrow.
29 | 6. Copy applied overlay to other images. Save other images.
30 |
31 | Create not selected images:
32 | 7. Just change the blend mode into Soft light.
33 | 8. Save the image as not selected blue arrow.
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/OtherCameraControllers/CustomControlPanelSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using System.Windows.Media.Media3D;
15 |
16 | namespace Ab3d.PowerToys.Samples.OtherCameraControllers
17 | {
18 | ///
19 | /// Interaction logic for CustomControlPanelSample.xaml
20 | ///
21 | public partial class CustomControlPanelSample : Page
22 | {
23 | public CustomControlPanelSample()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/OtherCameraControllers/VerticalCameraControlPanelSample.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/OtherCameraControllers/VerticalCameraControlPanelSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using System.Windows.Media.Media3D;
15 |
16 | namespace Ab3d.PowerToys.Samples.OtherCameraControllers
17 | {
18 | ///
19 | /// Interaction logic for VerticalCameraControlPanelSample.xaml
20 | ///
21 | public partial class VerticalCameraControlPanelSample : Page
22 | {
23 | public VerticalCameraControlPanelSample()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/PowerToys.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/PowerToys.ico
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Resources;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 | using System.Windows;
6 |
7 | // General Information about an assembly is controlled through the following
8 | // set of attributes. Change these attribute values to modify the information
9 | // associated with an assembly.
10 | [assembly: AssemblyTitle("Ab3d.PowerToys.Samples")]
11 | [assembly: AssemblyDescription("")]
12 | [assembly: AssemblyConfiguration("")]
13 | [assembly: AssemblyCompany("AB4D d.o.o.")]
14 | [assembly: AssemblyProduct("Ab3d.PowerToys.Samples")]
15 | [assembly: AssemblyCopyright("Copyright © by AB4D d.o.o. (www.ab4d.com)")]
16 | [assembly: AssemblyTrademark("")]
17 | [assembly: AssemblyCulture("")]
18 |
19 | // Setting ComVisible to false makes the types in this assembly not visible
20 | // to COM components. If you need to access a type in this assembly from
21 | // COM, set the ComVisible attribute to true on that type.
22 | [assembly: ComVisible(false)]
23 |
24 | //In order to begin building localizable applications, set
25 | //CultureYouAreCodingWith in your .csproj file
26 | //inside a . For example, if you are using US english
27 | //in your source files, set the to en-US. Then uncomment
28 | //the NeutralResourceLanguage attribute below. Update the "en-US" in
29 | //the line below to match the UICulture setting in the project file.
30 |
31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
32 |
33 |
34 | [assembly: ThemeInfo(
35 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
36 | //(used if a resource is not found in the page,
37 | // or application resource dictionaries)
38 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
39 | //(used if a resource is not found in the page,
40 | // app, or any theme specific resource dictionaries)
41 | )]
42 |
43 |
44 | // Version information for an assembly consists of the following four values:
45 | //
46 | // Major Version
47 | // Minor Version
48 | // Build Number
49 | // Revision
50 | //
51 | // You can specify all the values or you can default the Build and Revision Numbers
52 | // by using the '*' as shown below:
53 | // [assembly: AssemblyVersion("1.0.*")]
54 | [assembly: AssemblyVersion("11.1.0.0")]
55 | [assembly: AssemblyFileVersion("11.1.0.0")]
56 | [assembly: NeutralResourcesLanguageAttribute("en")]
57 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Ab3d.PowerToys.Samples.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Ab3d.PowerToys.Samples.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Ab3d.PowerToys.Samples.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.8.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/ReaderObj/ObjModelVisual3D.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.ReaderObj
16 | {
17 | ///
18 | /// Interaction logic for ObjModelVisual3D.xaml
19 | ///
20 | public partial class ObjModelVisual3D : Page
21 | {
22 | public ObjModelVisual3D()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/ReaderObj/ReadObjFromResources.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
37 |
38 |
43 |
44 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/ReaderObj/ReaderObjIntroPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 | With Ab3d.ReaderObj class it is possible to read \!3D models from obj files.\!\n
17 | \n
18 | Obj file was developed for use in Wavefront's Advanced Visualizer. Because of their simple text format it became very common file format to store 3D models.
19 | It usually comes with mtl file that defines the materials used in obj file.\n
20 | \n
21 | The main differences between obj and 3ds \!obj and 3ds\! (can be read with Ab3d.Reader3ds library) are:\n
22 | ▪ obj is a text file; 3ds is a binary file,\n
23 | ▪ 3ds file can define hierarchy of 3D objects with original transformations; obj file does not support hierarchies and transformation,\n
24 | ▪ obj file does not support animations,\n
25 | ▪ 3ds file is not capable of storing texture file names that exceed the 8.3 format; file names in obj file can be in any length.\n
26 | \n
27 | Because obj files are written in text they can be very large. Also when reading the files parse all the values can take some time.
28 | ReaderObj that comes with Ab3d.PowerToys library has been greatly optimized to make parsing the obj file very fast and to reduce the memory usage.\n
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/ReaderObj/ReaderObjIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.ReaderObj
16 | {
17 | ///
18 | /// Interaction logic for ReaderObjIntroPage.xaml
19 | ///
20 | public partial class ReaderObjIntroPage : Page
21 | {
22 | public ReaderObjIntroPage()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/10x10-texture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/10x10-texture.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/3D-mouses-from-3Dconnexion.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/3D-mouses-from-3Dconnexion.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/AssimpViewerSample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/AssimpViewerSample.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CamerasClassDiagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CamerasClassDiagram.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/Collada/duckCM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/Collada/duckCM.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveBack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveBack.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveBack_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveBack_selected.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveDown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveDown.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveDown_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveDown_selected.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveForward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveForward.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveForward_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveForward_selected.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveLeft.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveLeft_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveLeft_selected.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveRight.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveRight_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveRight_selected.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveUp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveUp.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveUp_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/moveUp_selected.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateDown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateDown.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateDown_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateDown_selected.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateLeft.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateLeft_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateLeft_selected.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateRight.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateRight_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateRight_selected.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateUp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateUp.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateUp_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/CustomControlPanel/rotateUp_selected.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/DXEngine-ArrowsSample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/DXEngine-ArrowsSample.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/HeightMaps/europe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/HeightMaps/europe.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/HeightMaps/europe_height.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/HeightMaps/europe_height.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/HeightMaps/readme.txt:
--------------------------------------------------------------------------------
1 | All Earth and Europe images are from
2 | NASA Observatory images:
3 | http://earthobservatory.nasa.gov/Features/BlueMarble/BlueMarble_monthlies.php
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/HeightMaps/simpleHeightMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/HeightMaps/simpleHeightMap.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/HeightMaps/srtm_ramp2.world.500x250.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/HeightMaps/srtm_ramp2.world.500x250.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/HeightMaps/world.topo.200407.3x500x250.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/HeightMaps/world.topo.200407.3x500x250.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/KinectSample.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/KinectSample.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/ObjFiles/WaltHead.mtl:
--------------------------------------------------------------------------------
1 | # Material Count: 1
2 | newmtl lambert2SG.001
3 | Ns 92.156863
4 | Ka 0.000000 0.000000 0.000000
5 | Kd 0.640000 0.640000 0.640000
6 | Ks 0.250000 0.250000 0.250000
7 | Ni 1.000000
8 | d 1.000000
9 | illum 2
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/ObjFiles/dragon_vrip_res3.obj.mtl:
--------------------------------------------------------------------------------
1 | # File produced by Open Asset Import Library (http://www.assimp.sf.net)
2 | # (assimp v3.1.29665513)
3 |
4 | newmtl $Material_0
5 | kd 0.6 0.6 0.6
6 | ka 0.05 0.05 0.05
7 | ks 0.6 0.6 0.6
8 | illum 1
9 |
10 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/ObjFiles/dragon_vrip_res3_readme.txt:
--------------------------------------------------------------------------------
1 | "Stanford Dragon" model is created by Stanford University and is one of the most common 3D model used for testing
2 |
3 | The model used here is a lower resolution of the original model (res3).
4 |
5 | The model is downloaded from:
6 | https://en.wikipedia.org/wiki/List_of_common_3D_test_models
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/ObjFiles/house with trees.mtl:
--------------------------------------------------------------------------------
1 | # 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
2 | # File Created: 16.09.2015 22:35:27
3 |
4 | newmtl trava
5 | Ns 9.999999
6 | Ni 1.500000
7 | d 1.000000
8 | Tr 0.000000
9 | Tf 1.000000 1.000000 1.000000
10 | illum 2
11 | Ka 0.047059 0.403922 0.019608
12 | Kd 0.047059 0.403922 0.019608
13 | Ks 0.000000 0.000000 0.000000
14 | Ke 0.000000 0.000000 0.000000
15 |
16 | newmtl face
17 | Ns 9.999999
18 | Ni 1.500000
19 | d 1.000000
20 | Tr 0.000000
21 | Tf 1.000000 1.000000 1.000000
22 | illum 2
23 | Ka 0.749020 0.698039 0.498039
24 | Kd 0.749020 0.698039 0.498039
25 | Ks 0.000000 0.000000 0.000000
26 | Ke 0.000000 0.000000 0.000000
27 |
28 | newmtl 15___Default
29 | Ns 9.999999
30 | Ni 1.500000
31 | d 1.000000
32 | Tr 0.000000
33 | Tf 1.000000 1.000000 1.000000
34 | illum 2
35 | Ka 0.090196 0.090196 0.090196
36 | Kd 0.090196 0.090196 0.090196
37 | Ks 0.000000 0.000000 0.000000
38 | Ke 0.000000 0.000000 0.000000
39 |
40 | newmtl trausers
41 | Ns 9.999999
42 | Ni 1.500000
43 | d 1.000000
44 | Tr 0.000000
45 | Tf 1.000000 1.000000 1.000000
46 | illum 2
47 | Ka 0.000000 0.247059 0.521569
48 | Kd 0.000000 0.247059 0.521569
49 | Ks 0.000000 0.000000 0.000000
50 | Ke 0.000000 0.000000 0.000000
51 |
52 | newmtl les
53 | Ns 9.999999
54 | Ni 1.500000
55 | d 1.000000
56 | Tr 0.000000
57 | Tf 1.000000 1.000000 1.000000
58 | illum 2
59 | Ka 0.674510 0.486275 0.192157
60 | Kd 0.674510 0.486275 0.192157
61 | Ks 0.000000 0.000000 0.000000
62 | Ke 0.000000 0.000000 0.000000
63 |
64 | newmtl pulover
65 | Ns 9.999999
66 | Ni 1.500000
67 | d 1.000000
68 | Tr 0.000000
69 | Tf 1.000000 1.000000 1.000000
70 | illum 2
71 | Ka 0.105882 0.666667 0.105882
72 | Kd 0.105882 0.666667 0.105882
73 | Ks 0.000000 0.000000 0.000000
74 | Ke 0.000000 0.000000 0.000000
75 |
76 | newmtl beton
77 | Ns 9.999999
78 | Ni 1.500000
79 | d 1.000000
80 | Tr 0.000000
81 | Tf 1.000000 1.000000 1.000000
82 | illum 2
83 | Ka 0.862745 0.862745 0.862745
84 | Kd 0.862745 0.862745 0.862745
85 | Ks 0.000000 0.000000 0.000000
86 | Ke 0.000000 0.000000 0.000000
87 |
88 | newmtl cegu
89 | Ns 9.999999
90 | Ni 1.500000
91 | d 1.000000
92 | Tr 0.000000
93 | Tf 1.000000 1.000000 1.000000
94 | illum 2
95 | Ka 0.662745 0.231373 0.145098
96 | Kd 0.662745 0.231373 0.145098
97 | Ks 0.000000 0.000000 0.000000
98 | Ke 0.000000 0.000000 0.000000
99 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/ObjFiles/robotarm.mtl:
--------------------------------------------------------------------------------
1 | # 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
2 | # File Created: 10.04.2017 13:55:19
3 |
4 | newmtl 09___Default
5 | Ns 10.0000
6 | Ni 1.5000
7 | d 1.0000
8 | Tr 0.0000
9 | Tf 1.0000 1.0000 1.0000
10 | illum 2
11 | Ka 0.6000 0.4235 0.2353
12 | Kd 0.6000 0.4235 0.2353
13 | Ks 0.0000 0.0000 0.0000
14 | Ke 0.0000 0.0000 0.0000
15 |
16 | newmtl 01___Default
17 | Ns 10.0000
18 | Ni 1.5000
19 | d 1.0000
20 | Tr 0.0000
21 | Tf 1.0000 1.0000 1.0000
22 | illum 2
23 | Ka 0.4275 0.4275 0.4275
24 | Kd 0.4275 0.4275 0.4275
25 | Ks 0.0000 0.0000 0.0000
26 | Ke 0.0000 0.0000 0.0000
27 |
28 | newmtl 13___Default
29 | Ns 10.0000
30 | Ni 1.5000
31 | d 1.0000
32 | Tr 0.0000
33 | Tf 1.0000 1.0000 1.0000
34 | illum 2
35 | Ka 0.6157 0.1804 0.1804
36 | Kd 0.6157 0.1804 0.1804
37 | Ks 0.5580 0.5580 0.5580
38 | Ke 0.0000 0.0000 0.0000
39 |
40 | newmtl 07___Default
41 | Ns 10.0000
42 | Ni 1.5000
43 | d 1.0000
44 | Tr 0.0000
45 | Tf 1.0000 1.0000 1.0000
46 | illum 2
47 | Ka 0.2118 0.1843 0.7529
48 | Kd 0.2118 0.1843 0.7529
49 | Ks 0.0000 0.0000 0.0000
50 | Ke 0.0000 0.0000 0.0000
51 |
52 | newmtl 02___Default
53 | Ns 10.0000
54 | Ni 1.5000
55 | d 1.0000
56 | Tr 0.0000
57 | Tf 1.0000 1.0000 1.0000
58 | illum 2
59 | Ka 0.6549 0.5725 0.0118
60 | Kd 0.6549 0.5725 0.0118
61 | Ks 0.0000 0.0000 0.0000
62 | Ke 0.0000 0.0000 0.0000
63 |
64 | newmtl 03___Default
65 | Ns 10.0000
66 | Ni 1.5000
67 | d 1.0000
68 | Tr 0.0000
69 | Tf 1.0000 1.0000 1.0000
70 | illum 2
71 | Ka 0.9765 0.9020 0.0863
72 | Kd 0.9765 0.9020 0.0863
73 | Ks 0.0000 0.0000 0.0000
74 | Ke 0.0000 0.0000 0.0000
75 |
76 | newmtl 08___Default
77 | Ns 10.0000
78 | Ni 1.5000
79 | d 1.0000
80 | Tr 0.0000
81 | Tf 1.0000 1.0000 1.0000
82 | illum 2
83 | Ka 1.0000 0.4863 0.0275
84 | Kd 1.0000 0.4863 0.0275
85 | Ks 0.0000 0.0000 0.0000
86 | Ke 0.0000 0.0000 0.0000
87 |
88 | newmtl 15___Default
89 | Ns 10.0000
90 | Ni 1.5000
91 | d 1.0000
92 | Tr 0.0000
93 | Tf 1.0000 1.0000 1.0000
94 | illum 2
95 | Ka 0.9373 0.9373 0.9373
96 | Kd 0.9373 0.9373 0.9373
97 | Ks 0.0000 0.0000 0.0000
98 | Ke 0.0000 0.0000 0.0000
99 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/ObjFiles/robotarm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/ObjFiles/robotarm.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/ObjFiles/ship_boat_readme.txt:
--------------------------------------------------------------------------------
1 | Ship boat model was created by joao, lisboa
2 | http://artist-3d.com/free_3d_models/dnm/model_disp.php?uid=2859
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/PowerToysTexture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/PowerToysTexture.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/PowerToysWinFormsSample.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/PowerToysWinFormsSample.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/PowerToys_Model3ds.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/PowerToys_Model3ds.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/PowerToys_box_front.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/PowerToys_box_front.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/PowerToys_box_side.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/PowerToys_box_side.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/Settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/Settings.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/CloudyLightRaysBack512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/CloudyLightRaysBack512.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/CloudyLightRaysDown512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/CloudyLightRaysDown512.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/CloudyLightRaysFront512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/CloudyLightRaysFront512.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/CloudyLightRaysLeft512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/CloudyLightRaysLeft512.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/CloudyLightRaysRight512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/CloudyLightRaysRight512.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/CloudyLightRaysUp512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/CloudyLightRaysUp512.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/SkyboxTextures/readme.txt:
--------------------------------------------------------------------------------
1 | Skybox images from:
2 | https://www.93i.de/products/media/skybox-texture-set-1
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/TransparencyUseCaseModels/OAKPLY1.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/TransparencyUseCaseModels/OAKPLY1.JPG
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/TransparencyUseCaseModels/coffee.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/TransparencyUseCaseModels/coffee.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/TransparencyUseCaseModels/coffee_logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/TransparencyUseCaseModels/coffee_logo.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/TransparencyUseCaseModels/coffee_plate.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/TransparencyUseCaseModels/coffee_plate.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/TreeTexture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/TreeTexture.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/XBox-controller.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/XBox-controller.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/ab4d-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/ab4d-logo.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/cannon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/cannon.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/grass.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/grass.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/landscapeTexture.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/landscapeTexture.jpg
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/new_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/new_icon.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/robotarm-upper-part.3DS:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/robotarm-upper-part.3DS
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/robotarm.3DS:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/robotarm.3DS
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/soldier.X:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/soldier.X
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/soldier.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/soldier.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/updated_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/updated_icon.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/wpf3d/duck.wpf3d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/wpf3d/duck.wpf3d
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/wpf3d/duckCM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/wpf3d/duckCM.png
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/wpf3d/house with trees.wpf3d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/wpf3d/house with trees.wpf3d
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/wpf3d/robotarm.wpf3d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/wpf3d/robotarm.wpf3d
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Resources/wpf3d/teapot-hires.wpf3d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/Ab3d.PowerToys.Samples/Resources/wpf3d/teapot-hires.wpf3d
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Text3D/AdjustingTextDirectionSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Media.Media3D;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 | using Ab3d.Common.Cameras;
16 |
17 | namespace Ab3d.PowerToys.Samples.Text3D
18 | {
19 | ///
20 | /// Interaction logic for AdjustingTextDirectionSample.xaml
21 | ///
22 | public partial class AdjustingTextDirectionSample : Page
23 | {
24 | public AdjustingTextDirectionSample()
25 | {
26 | InitializeComponent();
27 |
28 | Camera1.StartRotation(45, 0);
29 |
30 | Camera1.CameraChanged += Camera1OnCameraChanged;
31 | }
32 |
33 |
34 | private void Camera1OnCameraChanged(object o, CameraChangedRoutedEventArgs cameraChangedRoutedEventArgs)
35 | {
36 | // To check if we need to flip TextDirection,
37 | // we first calculate the 3D vector that points into the direction from which the text is correctly seen.
38 | // This can be get with calculating cross product from TextDirection and UpDirection - getting perpendicular vector to those two vectors.
39 | Vector3D textFaceVector = Vector3D.CrossProduct(CenteredTextVisual2.TextDirection, CenteredTextVisual2.UpDirection);
40 |
41 | // Now calculate dot product from textFaceVector and camera's LookDirection
42 | // If the result is negative, then those two vectors are facing in opposite direction.
43 | // This is a desired result - text is facing towards camera and camera towards text.
44 | // But if the result is positive, then text is seen correctly from the other side.
45 | // In this case we flip the TextDirection by multiplying it with -1.
46 | // In our case this flips between initial (1, 0, 0) and (-1, 0, 0) vectors.
47 | if (Vector3D.DotProduct(textFaceVector, Camera1.LookDirection) > 0)
48 | CenteredTextVisual2.TextDirection = CenteredTextVisual2.TextDirection * (-1);
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Text3D/LineWithTextSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using Ab3d.Visuals;
15 |
16 | namespace Ab3d.PowerToys.Samples.Text3D
17 | {
18 | ///
19 | /// Interaction logic for LineWithTextSample.xaml
20 | ///
21 | public partial class LineWithTextSample : Page
22 | {
23 | public LineWithTextSample()
24 | {
25 | InitializeComponent();
26 |
27 | UseTextBlockVisual3DInfoControl.InfoText =
28 | @"When checked, then LineWithTextVisual3D is using a TextBlockVisual3D to show 3D text. When unchecked then 3D lines are used to show the text (using an old plotter font).
29 |
30 | Using TextBlockVisual3D provides much more text rendering options and allows using any font but may produce some problems because of showing semi-transparent texture (sorting objects by camera distance; or using Ab3d.DXEngine and alpha-clip threshold).";
31 | }
32 |
33 | private void OnUseTextBlockVisual3DCheckedChanged(object sender, RoutedEventArgs e)
34 | {
35 | if (!this.IsLoaded)
36 | return;
37 |
38 |
39 | var useTextBlockVisual3D = UseTextBlockVisual3DCheckBox.IsChecked ?? false;
40 |
41 | foreach (var lineWithTextVisual3D in MainViewport.Children.OfType())
42 | {
43 | lineWithTextVisual3D.UseTextBlockVisual3D = useTextBlockVisual3D;
44 |
45 | if (useTextBlockVisual3D)
46 | {
47 | // When UseTextBlockVisual3D is set to true, we can change text rendering options on UsedTextBlockVisual3D property:
48 | // The following properties are already set by the LineWithTextVisual3D:
49 | //Text = this.Text,
50 | //Position = textCenterPosition,
51 | //PositionType = PositionTypes.Center,
52 | //TextDirection = lineDirection,
53 | //UpDirection = this.TextUpDirection,
54 | //Size = new Size(0, this.FontSize), // Set only height; width will be set automatically by the TextBlockVisual3D
55 | //Foreground = new SolidColorBrush(this.LineColor),
56 |
57 | lineWithTextVisual3D.UsedTextBlockVisual3D.FontFamily = new FontFamily("Arial");
58 | lineWithTextVisual3D.UsedTextBlockVisual3D.RenderBitmapSize = new Size(256, 64);
59 | }
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Text3D/SymbolCharactersSample.xaml:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
33 |
34 |
40 |
41 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Text3D/Text3DIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.Text3D
6 | {
7 | public partial class Text3DIntroPage : Page
8 | {
9 | public Text3DIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Text3D/TextDirectionsSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using System.Windows.Media.Media3D;
15 |
16 | namespace Ab3d.PowerToys.Samples.Text3D
17 | {
18 | ///
19 | /// Interaction logic for TextDirectionsSample.xaml
20 | ///
21 | public partial class TextDirectionsSample : Page
22 | {
23 | public TextDirectionsSample()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/UseCases/ArrowsSample.xaml:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/UseCases/InteractiveUserControl.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/UseCases/InteractiveUserControl.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace Ab3d.PowerToys.Samples.UseCases
17 | {
18 | ///
19 | /// Interaction logic for InteractiveUserControl.xaml
20 | ///
21 | public partial class InteractiveUserControl : UserControl
22 | {
23 | private TypeConverter _colorTypeConverter;
24 |
25 | public event EventHandler ObjectSettingsChanged;
26 |
27 | public event EventHandler AddNewButtonClicked;
28 |
29 | public Color SelectedColor
30 | {
31 | get { return GetSelectedColor(); }
32 | }
33 |
34 | public bool IsBox
35 | {
36 | get { return BoxRadioButton.IsChecked ?? false; }
37 | }
38 |
39 | public InteractiveUserControl()
40 | {
41 | InitializeComponent();
42 |
43 | _colorTypeConverter = System.ComponentModel.TypeDescriptor.GetConverter(typeof(Color));
44 | }
45 |
46 | private Color GetSelectedColor()
47 | {
48 | Color selectedColor = Colors.Black;
49 |
50 | var listBoxItem = (ListBoxItem)ColorListBox.SelectedItem;
51 |
52 | if (listBoxItem != null)
53 | {
54 | string colorText = listBoxItem.Content as string;
55 |
56 | try
57 | {
58 | selectedColor = (Color) _colorTypeConverter.ConvertFromString(colorText);
59 | }
60 | catch
61 | {
62 | }
63 | }
64 |
65 | return selectedColor;
66 | }
67 |
68 | protected void OnObjectSettingsChanged()
69 | {
70 | if (ObjectSettingsChanged != null)
71 | ObjectSettingsChanged(this, null);
72 | }
73 |
74 | private void AddNewButton_OnClick(object sender, RoutedEventArgs e)
75 | {
76 | if (AddNewButtonClicked != null)
77 | AddNewButtonClicked(this, null);
78 | }
79 |
80 | private void ColorListBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
81 | {
82 | if (!this.IsLoaded)
83 | return;
84 |
85 | OnObjectSettingsChanged();
86 | }
87 |
88 | private void OnShapeTypeCheckedChanged(object sender, RoutedEventArgs e)
89 | {
90 | if (!this.IsLoaded)
91 | return;
92 |
93 | OnObjectSettingsChanged();
94 | }
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/UseCases/ModelingWithBooleanOperations.xaml:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
43 |
44 |
49 |
50 |
52 |
53 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/UseCases/MultipleSceneViewSample.xaml:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/UseCases/UseCasesIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.UseCases
6 | {
7 | public partial class UseCasesIntroPage : Page
8 | {
9 | public UseCasesIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private void link_navigate(object sender, RequestNavigateEventArgs e)
15 | {
16 | Process.Start(e.Uri.ToString());
17 | e.Handled = true;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/UseCases/WireframeSelection.xaml:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
26 |
27 |
28 |
29 |
33 |
34 |
40 |
41 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Utilities/LightingRigSample.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using Ab3d.Visuals;
15 |
16 | namespace Ab3d.PowerToys.Samples.Utilities
17 | {
18 | ///
19 | /// Interaction logic for LightingRigSample.xaml
20 | ///
21 | public partial class LightingRigSample : Page
22 | {
23 | public LightingRigSample()
24 | {
25 | InitializeComponent();
26 | }
27 |
28 | private void KeyLightDirectionSliderChanged(object sender, RoutedPropertyChangedEventArgs e)
29 | {
30 | if (!this.IsLoaded)
31 | return;
32 |
33 | LigthingRig.SetKeyLightDirection(heading: KeyLightHeadingSlider.Value, attitude: KeyLightAttitudeSlider.Value);
34 | }
35 |
36 | private void LightBrightnessSliderChanged(object sender, RoutedPropertyChangedEventArgs e)
37 | {
38 | if (!this.IsLoaded)
39 | return;
40 |
41 | LigthingRig.KeyLightColor = LightingRigVisual3D.GetColorFromBrightness(KeyLightBrightnessSlider.Value);
42 | LigthingRig.FillLightColor = LightingRigVisual3D.GetColorFromBrightness(FillLightBrightnessSlider.Value);
43 | LigthingRig.BackLightColor = LightingRigVisual3D.GetColorFromBrightness(BackLightBrightnessSlider.Value);
44 | LigthingRig.AmbientLightColor = LightingRigVisual3D.GetColorFromBrightness(AmbientLightBrightnessSlider.Value);
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Utilities/ModelMoverAndRotatorSample.xaml:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
37 |
38 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Utilities/OtherUtilitiesInfo.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 | Other utilities
14 |
15 |
16 | Ab3d.PowerToys library also defines many general purpose utility classes and helper methods.\n
17 | You can get more information about them on the \!Online Reference Help\!:\n
18 | \n
19 | \*\@MathUtils:https://www.ab4d.com/help/PowerToys/html/T_Ab3d_Utilities_MathUtils.htm|\n
20 | \*\@CameraUtils:https://www.ab4d.com/help/PowerToys/html/T_Ab3d_Utilities_CameraUtils.htm|\n
21 | \*\@MeshUtils:https://www.ab4d.com/help/PowerToys/html/T_Ab3d_Utilities_MeshUtils.htm|\n
22 | \*\@ModelUtils:https://www.ab4d.com/help/PowerToys/html/T_Ab3d_Utilities_ModelUtils.htm|\n
23 | \*\@ModelIterator:https://www.ab4d.com/help/PowerToys/html/T_Ab3d_Utilities_ModelIterator.htm|\n
24 | \*\@ModelOptimizer:https://www.ab4d.com/help/PowerToys/html/T_Ab3d_Utilities_ModelOptimizer.htm|\n
25 | \*\@TransformationsHelper:https://www.ab4d.com/help/PowerToys/html/T_Ab3d_Utilities_TransformationsHelper.htm|\n
26 | \*\@CompositionRenderingHelper:https://www.ab4d.com/help/PowerToys/html/T_Ab3d_Utilities_CompositionRenderingHelper.htm|\n
27 | \*\@TransparencyHelper:https://www.ab4d.com/help/PowerToys/html/T_Ab3d_Utilities_TransparencyHelper.htm|\n
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Utilities/OtherUtilitiesInfo.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace Ab3d.PowerToys.Samples.Utilities
16 | {
17 | ///
18 | /// Interaction logic for OtherUtilitiesInfo.xaml
19 | ///
20 | public partial class OtherUtilitiesInfo : Page
21 | {
22 | public OtherUtilitiesInfo()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Utilities/PositionAndScaleModel3DSample.xaml:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
42 |
43 |
50 |
51 |
52 |
53 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Utilities/UtilitiesIntroPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 | \!Ab3d.Utilities\!
16 |
17 | The \!Ab3d.Utilities\! namespace contains many WPF 3D helper classes.
18 | Some of the classes like \!LinesUpdates\! and \!EventManager\! have already been demonstrated in other sections. This section shows some other samples.
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Utilities/UtilitiesIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Controls;
3 | using System.Windows.Navigation;
4 |
5 | namespace Ab3d.PowerToys.Samples.Utilities
6 | {
7 | public partial class UtilitiesIntroPage : Page
8 | {
9 | public UtilitiesIntroPage()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private void link_navigate(object sender, RequestNavigateEventArgs e)
15 | {
16 | Process.Start(e.Uri.ToString());
17 | e.Handled = true;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Wpf3DFile/ImportWpf3DFileWindow.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Wpf3DFile/Wpf3DFileExporterSample.xaml:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Wpf3DFile/Wpf3DFileImporterSample.xaml:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
31 |
32 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Wpf3DFile/Wpf3DFileInfoControl.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Wpf3DFile/Wpf3DFileInfoControl.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace Ab3d.PowerToys.Samples.Wpf3DFile
17 | {
18 | ///
19 | /// Interaction logic for Wpf3DFileInfoControl.xaml
20 | ///
21 | public partial class Wpf3DFileInfoControl : UserControl
22 | {
23 | public Wpf3DFileInfoControl()
24 | {
25 | InitializeComponent();
26 |
27 | this.DataContextChanged += delegate(object sender, DependencyPropertyChangedEventArgs args)
28 | {
29 | // Get only file name without path from wpf3DFile.SourceFileName.
30 | // This can be surely done in a nicer way, but I am not an expert for DataBinding...
31 |
32 | var wpf3DFile = this.DataContext as Ab3d.Utilities.Wpf3DFile;
33 |
34 | if (wpf3DFile != null)
35 | {
36 | if (wpf3DFile.SourceFileName != null)
37 | FileNameTextBlock.Text = System.IO.Path.GetFileName(wpf3DFile.SourceFileName);
38 |
39 | TrianglesTextBlock.Text = string.Format("Triangles: {0:#,##0}", wpf3DFile.TotalTriangleIndices / 3);
40 | }
41 | };
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Wpf3DFile/Wpf3DFileIntroPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 | wpf3d file reader and writer
17 |
18 |
19 |
20 | \!wpf3d\! is a custom binary file format that can store Model3D (GeometryModel3D and Model3DGroup) objects. The file format is designed by AB3D company and is created to work best with WPF 3D objects.\n
21 | \n
22 | The \!source code\! for the file reader and writer is available in the Wpf3DFile.cs file that is part of this sample project. The source code can be changed if you want to extent the capabilities of the file format. The source code also provides the description of the file format.\n
23 | \n
24 | The wpf3d file can store the full hierarchy of Model3DGroup and GeometryModel3D objects. It can also store a \!thumbnail image\! of the 3D model and a \!description\! of the model. If you want to add some additional data about the model, you can serialize it to text and store that in a \!Comment property\!. File format also provides option to save positions, normals and texture coordinates as \!double or float\! values (using float reduces the file size by almost half). The file format cannot store animations and do not embed textures (only texture file names can be saved).\n
25 | \n
26 | Saving 3D models into wpf3d file is useful so you do not need to distribute \!assimp importer\! with your application. You can convert all 3D models from fbx and other files into wpf3d files and then load the models in your application with a very efficient and 100% managed file loader.
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/Wpf3DFile/Wpf3DFileIntroPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using Ab3d.Assimp;
15 |
16 | namespace Ab3d.PowerToys.Samples.Wpf3DFile
17 | {
18 | ///
19 | /// Interaction logic for Wpf3DFileIntroPage.xaml
20 | ///
21 | public partial class Wpf3DFileIntroPage : Page
22 | {
23 | public Wpf3DFileIntroPage()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Ab3d.PowerToys.Samples/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Ab3d.PowerToys.Wpf.Samples
2 |
3 | 
4 |
5 | [Ab3d.PowerToys](https://www.ab4d.com/PowerToys.aspx) is the **ultimate WPF and WinForms 3D toolkit** library that greatly simplifies developing desktop applications with scientific, technical, CAD or other 3D graphics.
6 |
7 | Ab3d.PowerToys is using WPF 3D rendering engine (DirectX 9). Check [Ab3d.DXEngine](https://www.ab4d.com/DXEngine.aspx) for super fast DirectX 11 rendering engine that can render the existing WPF 3D scene much faster and with better visual quality.
8 |
9 | The samples in this repository demonstrate many features of the library and show that with .Net it is easily possible to create applications with complex 3D graphics.
10 |
11 | The Ab3d.PowerToys is a commercial library. You can start a 60-day trial when it is first used.
12 |
13 | ## Repository solutions
14 |
15 | The Ab3d.DXEngine.Wpf.Samples repository contains the following Visual Studio solutions:
16 | * Ab3d.PowerToys WPF net48 Samples.sln (**.NET Framework 4.8**)
17 | * Ab3d.PowerToys WPF net60 Samples.sln (**.NET 6.0**)
18 | * Ab3d.PowerToys WPF net80 Samples.sln (**.NET 8.0**)
19 |
20 | ## Dependencies
21 |
22 | The sample project is using Ab3d.PowerToys library from NuGet - https://www.nuget.org/packages/Ab3d.PowerToys.
23 |
24 | The Ab3d.PowerToys library includes an obj file importer that can import 3D objects defined in obj files. To import 3D objects from other file formats, the samples project uses a third-party Assimp library. Assimp library is an open source and native importer that can import 3D models from almost any 3D file format (see more: https://github.com/assimp/assimp).
25 |
26 | The compiled versions of assimp library for 32-bit and for 64-bit process are included in the lib folder. In the lib folder there is also Assimp.Net.dll - a manager wrapper for native assimp importer. There is also Ab3d.PowerToys.Assimp.dll - a library that can convert imported 3D objects into WPF 3D objects.
27 |
28 | ## Support
29 |
30 | * Online reference help: https://www.ab4d.com/help/PowerToys/html/R_Project_Ab3d_PowerToys.htm
31 | * Change log: https://www.ab4d.com/PowerToys-history.aspx
32 | * Forum: https://forum.ab4d.com/forumdisplay.php?fid=9
33 | * Related blog posts: http://blog.ab4d.com/category/Ab3dPowerToys.aspx
34 | * Feedback: https://www.ab4d.com/Feedback.aspx
35 |
36 | ## See also
37 |
38 | * [AB4D Homepage](https://www.ab4d.com/)
39 | * [Ab3d.DXEngine](https://www.ab4d.com/DXEngine.aspx) library
40 | * [Ab3d.DXEngine Samples on GitHub](https://github.com/ab4d/Ab3d.DXEngine.Wpf.Samples)
41 | * [AB4D products price list](https://www.ab4d.com/Purchase.aspx#PowerToys)
42 |
--------------------------------------------------------------------------------
/lib/Ab3d.PowerToys.Assimp license.txt:
--------------------------------------------------------------------------------
1 | When Ab3d.PowerToys.Assimp library is used with commercial Ab3d.PowerToys license,
2 | then it is used under the license that comes with Ab3d.PowerToys library.
3 |
4 | When Ab3d.PowerToys.Assimp library is used without a commercial Ab3d.PowerToys license,
5 | then it is distributed under the following MIT license (only the text below should be
6 | included in all copies or substantial portions of the Software; without this and the previous sentence):
7 |
8 |
9 | Copyright (c) 2020 Ab3d.PowerToys.Assimp - AB4D d.o.o.
10 |
11 | Permission is hereby granted, free of charge, to any person obtaining a copy
12 | of this software and associated documentation files (the "Software"), to deal
13 | in the Software without restriction, including without limitation the rights
14 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15 | copies of the Software, and to permit persons to whom the Software is
16 | furnished to do so, subject to the following conditions:
17 |
18 | The above copyright notice and this permission notice shall be included in
19 | all copies or substantial portions of the Software.
20 |
21 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
27 | THE SOFTWARE.
--------------------------------------------------------------------------------
/lib/Ab3d.PowerToys.Assimp.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/lib/Ab3d.PowerToys.Assimp.dll
--------------------------------------------------------------------------------
/lib/Assimp32.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/lib/Assimp32.dll
--------------------------------------------------------------------------------
/lib/Assimp64.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/lib/Assimp64.dll
--------------------------------------------------------------------------------
/lib/AssimpNet.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/lib/AssimpNet.dll
--------------------------------------------------------------------------------
/lib/net60/Ab3d.PowerToys.Assimp.deps.json:
--------------------------------------------------------------------------------
1 | {
2 | "runtimeTarget": {
3 | "name": ".NETCoreApp,Version=v6.0",
4 | "signature": ""
5 | },
6 | "compilationOptions": {},
7 | "targets": {
8 | ".NETCoreApp,Version=v6.0": {
9 | "Ab3d.PowerToys.Assimp/11.1.8864": {
10 | "dependencies": {
11 | "AssimpNet": "5.3.1.0"
12 | },
13 | "runtime": {
14 | "Ab3d.PowerToys.Assimp.dll": {}
15 | }
16 | },
17 | "AssimpNet/5.3.1.0": {
18 | "runtime": {
19 | "AssimpNet.dll": {
20 | "assemblyVersion": "5.3.1.0",
21 | "fileVersion": "5.3.1.0"
22 | }
23 | }
24 | }
25 | }
26 | },
27 | "libraries": {
28 | "Ab3d.PowerToys.Assimp/11.1.8864": {
29 | "type": "project",
30 | "serviceable": false,
31 | "sha512": ""
32 | },
33 | "AssimpNet/5.3.1.0": {
34 | "type": "reference",
35 | "serviceable": false,
36 | "sha512": ""
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/lib/net60/Ab3d.PowerToys.Assimp.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/lib/net60/Ab3d.PowerToys.Assimp.dll
--------------------------------------------------------------------------------
/lib/net60/AssimpNet.deps.json:
--------------------------------------------------------------------------------
1 | {
2 | "runtimeTarget": {
3 | "name": ".NETCoreApp,Version=v6.0",
4 | "signature": ""
5 | },
6 | "compilationOptions": {},
7 | "targets": {
8 | ".NETCoreApp,Version=v6.0": {
9 | "AssimpNet/5.3.1.0": {
10 | "runtime": {
11 | "AssimpNet.dll": {}
12 | }
13 | }
14 | }
15 | },
16 | "libraries": {
17 | "AssimpNet/5.3.1.0": {
18 | "type": "project",
19 | "serviceable": false,
20 | "sha512": ""
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/lib/net60/AssimpNet.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab3d.PowerToys.Wpf.Samples/764d6bcfed4bdefbbcce7ffef14d4c34d2fa8721/lib/net60/AssimpNet.dll
--------------------------------------------------------------------------------
/lib/version readme.txt:
--------------------------------------------------------------------------------
1 | This is a compiled official version 5.4.3 of Assimp from 2024-08-30:
2 | https://github.com/assimp/assimp/releases/tag/v5.4.3
3 |
--------------------------------------------------------------------------------