v0.2.0-dev-22 #47
@ -1,5 +1,3 @@
|
|||||||
import ru.mipt.npm.gradle.useFx
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("ru.mipt.npm.project")
|
id("ru.mipt.npm.project")
|
||||||
}
|
}
|
||||||
@ -32,7 +30,6 @@ subprojects {
|
|||||||
afterEvaluate {
|
afterEvaluate {
|
||||||
extensions.findByType<ru.mipt.npm.gradle.KScienceExtension>()?.run {
|
extensions.findByType<ru.mipt.npm.gradle.KScienceExtension>()?.run {
|
||||||
useSerialization()
|
useSerialization()
|
||||||
useFx(ru.mipt.npm.gradle.FXModule.CONTROLS, version = fxVersion)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,11 @@ kotlin {
|
|||||||
implementation(project(":visionforge-gdml"))
|
implementation(project(":visionforge-gdml"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
jvmMain{
|
||||||
|
dependencies{
|
||||||
|
implementation(project(":visionforge-fx"))
|
||||||
|
}
|
||||||
|
}
|
||||||
jsMain {
|
jsMain {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":ui:bootstrap"))
|
implementation(project(":ui:bootstrap"))
|
||||||
|
@ -5,10 +5,10 @@ import hep.dataforge.vision.VisionManager
|
|||||||
import hep.dataforge.vision.editor.VisualObjectEditorFragment
|
import hep.dataforge.vision.editor.VisualObjectEditorFragment
|
||||||
import hep.dataforge.vision.editor.VisualObjectTreeFragment
|
import hep.dataforge.vision.editor.VisualObjectTreeFragment
|
||||||
import hep.dataforge.vision.gdml.toVision
|
import hep.dataforge.vision.gdml.toVision
|
||||||
|
import hep.dataforge.vision.solid.FX3DPlugin
|
||||||
|
import hep.dataforge.vision.solid.FXCanvas3D
|
||||||
import hep.dataforge.vision.solid.Solid
|
import hep.dataforge.vision.solid.Solid
|
||||||
import hep.dataforge.vision.solid.SolidMaterial
|
import hep.dataforge.vision.solid.SolidMaterial
|
||||||
import hep.dataforge.vision.solid.fx.FX3DPlugin
|
|
||||||
import hep.dataforge.vision.solid.fx.FXCanvas3D
|
|
||||||
import javafx.geometry.Orientation
|
import javafx.geometry.Orientation
|
||||||
import javafx.scene.Parent
|
import javafx.scene.Parent
|
||||||
import javafx.stage.FileChooser
|
import javafx.stage.FileChooser
|
||||||
|
@ -29,6 +29,11 @@ kotlin {
|
|||||||
implementation(project(":visionforge-gdml"))
|
implementation(project(":visionforge-gdml"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
jvmMain{
|
||||||
|
dependencies{
|
||||||
|
implementation(project(":visionforge-fx"))
|
||||||
|
}
|
||||||
|
}
|
||||||
jsMain{
|
jsMain{
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("org.jetbrains:kotlin-css:1.0.0-pre.129-kotlin-1.4.10")
|
implementation("org.jetbrains:kotlin-css:1.0.0-pre.129-kotlin-1.4.10")
|
||||||
|
@ -5,9 +5,9 @@ import hep.dataforge.meta.Meta
|
|||||||
import hep.dataforge.names.Name
|
import hep.dataforge.names.Name
|
||||||
import hep.dataforge.vision.layout.Output
|
import hep.dataforge.vision.layout.Output
|
||||||
import hep.dataforge.vision.layout.Page
|
import hep.dataforge.vision.layout.Page
|
||||||
|
import hep.dataforge.vision.solid.FX3DPlugin
|
||||||
|
import hep.dataforge.vision.solid.FXCanvas3D
|
||||||
import hep.dataforge.vision.solid.Solid
|
import hep.dataforge.vision.solid.Solid
|
||||||
import hep.dataforge.vision.solid.fx.FX3DPlugin
|
|
||||||
import hep.dataforge.vision.solid.fx.FXCanvas3D
|
|
||||||
import javafx.collections.FXCollections
|
import javafx.collections.FXCollections
|
||||||
import javafx.scene.Parent
|
import javafx.scene.Parent
|
||||||
import javafx.scene.control.Tab
|
import javafx.scene.control.Tab
|
||||||
|
@ -38,6 +38,7 @@ include(
|
|||||||
":ui:bootstrap",
|
":ui:bootstrap",
|
||||||
":visionforge-core",
|
":visionforge-core",
|
||||||
":visionforge-solid",
|
":visionforge-solid",
|
||||||
|
":visionforge-fx",
|
||||||
":visionforge-gdml",
|
":visionforge-gdml",
|
||||||
":visionforge-server",
|
":visionforge-server",
|
||||||
":demo:spatial-showcase",
|
":demo:spatial-showcase",
|
||||||
|
@ -15,18 +15,6 @@ kotlin {
|
|||||||
api("org.jetbrains.kotlinx:kotlinx-html:$htmlVersion")
|
api("org.jetbrains.kotlinx:kotlinx-html:$htmlVersion")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
jvmMain {
|
|
||||||
dependencies {
|
|
||||||
api("no.tornado:tornadofx:1.7.20")
|
|
||||||
//api("no.tornado:tornadofx-controlsfx:0.1.1")
|
|
||||||
api("de.jensd:fontawesomefx-fontawesome:4.7.0-11") {
|
|
||||||
exclude(group = "org.openjfx")
|
|
||||||
}
|
|
||||||
api("de.jensd:fontawesomefx-commons:11.0") {
|
|
||||||
exclude(group = "org.openjfx")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
jsMain {
|
jsMain {
|
||||||
dependencies {
|
dependencies {
|
||||||
api("org.jetbrains:kotlin-extensions:1.0.1-$kotlinWrappersVersion")
|
api("org.jetbrains:kotlin-extensions:1.0.1-$kotlinWrappersVersion")
|
||||||
|
@ -4,7 +4,7 @@ import kotlinx.coroutines.flow.Flow
|
|||||||
import kotlinx.coroutines.flow.collect
|
import kotlinx.coroutines.flow.collect
|
||||||
import java.util.concurrent.atomic.AtomicInteger
|
import java.util.concurrent.atomic.AtomicInteger
|
||||||
|
|
||||||
suspend fun <T, K> Flow<T>.countDistinctBy(selector: (T) -> K): Map<K, Int> {
|
public suspend fun <T, K> Flow<T>.countDistinctBy(selector: (T) -> K): Map<K, Int> {
|
||||||
val counter = LinkedHashMap<K, AtomicInteger>()
|
val counter = LinkedHashMap<K, AtomicInteger>()
|
||||||
collect {
|
collect {
|
||||||
val key = selector(it)
|
val key = selector(it)
|
||||||
@ -13,4 +13,4 @@ suspend fun <T, K> Flow<T>.countDistinctBy(selector: (T) -> K): Map<K, Int> {
|
|||||||
return counter.mapValues { it.value.toInt() }
|
return counter.mapValues { it.value.toInt() }
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun <T> Flow<T>.countDistinct(): Map<T, Int> = countDistinctBy { it }
|
public suspend fun <T> Flow<T>.countDistinct(): Map<T, Int> = countDistinctBy { it }
|
37
visionforge-fx/build.gradle.kts
Normal file
37
visionforge-fx/build.gradle.kts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import ru.mipt.npm.gradle.useFx
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("ru.mipt.npm.jvm")
|
||||||
|
}
|
||||||
|
|
||||||
|
val dataforgeVersion: String by rootProject.extra
|
||||||
|
val kotlinWrappersVersion: String by rootProject.extra
|
||||||
|
val htmlVersion: String by rootProject.extra
|
||||||
|
val fxVersion: String by rootProject.extra
|
||||||
|
|
||||||
|
kscience{
|
||||||
|
useFx(ru.mipt.npm.gradle.FXModule.CONTROLS, version = fxVersion)
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
api(project(":visionforge-solid"))
|
||||||
|
|
||||||
|
api("no.tornado:tornadofx:1.7.20")
|
||||||
|
|
||||||
|
api("de.jensd:fontawesomefx-fontawesome:4.7.0-11") {
|
||||||
|
exclude(group = "org.openjfx")
|
||||||
|
}
|
||||||
|
|
||||||
|
api("de.jensd:fontawesomefx-commons:11.0") {
|
||||||
|
exclude(group = "org.openjfx")
|
||||||
|
}
|
||||||
|
|
||||||
|
api("org.fxyz3d:fxyz3d:0.5.2") {
|
||||||
|
exclude(module = "slf4j-simple")
|
||||||
|
}
|
||||||
|
api("org.jetbrains.kotlinx:kotlinx-coroutines-javafx:${ru.mipt.npm.gradle.KScienceVersions.coroutinesVersion}")
|
||||||
|
|
||||||
|
implementation("eu.mihosoft.vrl.jcsg:jcsg:0.5.7") {
|
||||||
|
exclude(module = "slf4j-simple")
|
||||||
|
}
|
||||||
|
}
|
@ -1,13 +1,12 @@
|
|||||||
package hep.dataforge.vision.solid.fx
|
package hep.dataforge.vision.solid
|
||||||
|
|
||||||
import hep.dataforge.context.*
|
import hep.dataforge.context.*
|
||||||
import hep.dataforge.meta.Meta
|
import hep.dataforge.meta.Meta
|
||||||
import hep.dataforge.meta.boolean
|
import hep.dataforge.meta.boolean
|
||||||
import hep.dataforge.provider.Type
|
import hep.dataforge.provider.Type
|
||||||
import hep.dataforge.vision.solid.*
|
import hep.dataforge.vision.solid.FX3DFactory.Companion.TYPE
|
||||||
import hep.dataforge.vision.solid.SolidMaterial.Companion.MATERIAL_KEY
|
import hep.dataforge.vision.solid.SolidMaterial.Companion.MATERIAL_KEY
|
||||||
import hep.dataforge.vision.solid.SolidMaterial.Companion.MATERIAL_WIREFRAME_KEY
|
import hep.dataforge.vision.solid.SolidMaterial.Companion.MATERIAL_WIREFRAME_KEY
|
||||||
import hep.dataforge.vision.solid.fx.FX3DFactory.Companion.TYPE
|
|
||||||
import javafx.scene.Group
|
import javafx.scene.Group
|
||||||
import javafx.scene.Node
|
import javafx.scene.Node
|
||||||
import javafx.scene.shape.CullFace
|
import javafx.scene.shape.CullFace
|
@ -1,10 +1,9 @@
|
|||||||
package hep.dataforge.vision.solid.fx
|
package hep.dataforge.vision.solid
|
||||||
|
|
||||||
import hep.dataforge.context.Context
|
import hep.dataforge.context.Context
|
||||||
import hep.dataforge.context.ContextAware
|
import hep.dataforge.context.ContextAware
|
||||||
import hep.dataforge.meta.empty
|
import hep.dataforge.meta.empty
|
||||||
import hep.dataforge.vision.layout.Output
|
import hep.dataforge.vision.layout.Output
|
||||||
import hep.dataforge.vision.solid.Solid
|
|
||||||
import hep.dataforge.vision.solid.specifications.Canvas3DOptions
|
import hep.dataforge.vision.solid.specifications.Canvas3DOptions
|
||||||
import javafx.application.Platform
|
import javafx.application.Platform
|
||||||
import javafx.beans.property.ObjectProperty
|
import javafx.beans.property.ObjectProperty
|
@ -1,10 +1,8 @@
|
|||||||
package hep.dataforge.vision.solid.fx
|
package hep.dataforge.vision.solid
|
||||||
|
|
||||||
import eu.mihosoft.jcsg.CSG
|
import eu.mihosoft.jcsg.CSG
|
||||||
import eu.mihosoft.jcsg.Polygon
|
import eu.mihosoft.jcsg.Polygon
|
||||||
import eu.mihosoft.vvecmath.Vector3d
|
import eu.mihosoft.vvecmath.Vector3d
|
||||||
import hep.dataforge.vision.solid.Composite
|
|
||||||
import hep.dataforge.vision.solid.CompositeType
|
|
||||||
import javafx.scene.Group
|
import javafx.scene.Group
|
||||||
import javafx.scene.Node
|
import javafx.scene.Node
|
||||||
import javafx.scene.shape.MeshView
|
import javafx.scene.shape.MeshView
|
@ -1,9 +1,8 @@
|
|||||||
package hep.dataforge.vision.solid.fx
|
package hep.dataforge.vision.solid
|
||||||
|
|
||||||
import eu.mihosoft.jcsg.PropertyStorage
|
import eu.mihosoft.jcsg.PropertyStorage
|
||||||
import eu.mihosoft.jcsg.ext.quickhull3d.HullUtil
|
import eu.mihosoft.jcsg.ext.quickhull3d.HullUtil
|
||||||
import eu.mihosoft.vvecmath.Vector3d
|
import eu.mihosoft.vvecmath.Vector3d
|
||||||
import hep.dataforge.vision.solid.Convex
|
|
||||||
import javafx.scene.Node
|
import javafx.scene.Node
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package hep.dataforge.vision.solid.fx
|
package hep.dataforge.vision.solid
|
||||||
|
|
||||||
import hep.dataforge.meta.MetaItem
|
import hep.dataforge.meta.MetaItem
|
||||||
import hep.dataforge.meta.double
|
import hep.dataforge.meta.double
|
||||||
@ -6,7 +6,6 @@ import hep.dataforge.meta.get
|
|||||||
import hep.dataforge.meta.int
|
import hep.dataforge.meta.int
|
||||||
import hep.dataforge.values.ValueType
|
import hep.dataforge.values.ValueType
|
||||||
import hep.dataforge.vision.Colors
|
import hep.dataforge.vision.Colors
|
||||||
import hep.dataforge.vision.solid.SolidMaterial
|
|
||||||
import javafx.scene.paint.Color
|
import javafx.scene.paint.Color
|
||||||
import javafx.scene.paint.Material
|
import javafx.scene.paint.Material
|
||||||
import javafx.scene.paint.PhongMaterial
|
import javafx.scene.paint.PhongMaterial
|
@ -1,8 +1,7 @@
|
|||||||
package hep.dataforge.vision.solid.fx
|
package hep.dataforge.vision.solid
|
||||||
|
|
||||||
import hep.dataforge.names.*
|
import hep.dataforge.names.*
|
||||||
import hep.dataforge.vision.Vision
|
import hep.dataforge.vision.Vision
|
||||||
import hep.dataforge.vision.solid.SolidReference
|
|
||||||
import javafx.scene.Group
|
import javafx.scene.Group
|
||||||
import javafx.scene.Node
|
import javafx.scene.Node
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
@ -1,9 +1,6 @@
|
|||||||
package hep.dataforge.vision.solid.fx
|
package hep.dataforge.vision.solid
|
||||||
|
|
||||||
import hep.dataforge.meta.Meta
|
import hep.dataforge.meta.Meta
|
||||||
import hep.dataforge.vision.solid.GeometryBuilder
|
|
||||||
import hep.dataforge.vision.solid.GeometrySolid
|
|
||||||
import hep.dataforge.vision.solid.Point3D
|
|
||||||
import javafx.scene.shape.Mesh
|
import javafx.scene.shape.Mesh
|
||||||
import javafx.scene.shape.MeshView
|
import javafx.scene.shape.MeshView
|
||||||
import javafx.scene.shape.TriangleMesh
|
import javafx.scene.shape.TriangleMesh
|
@ -1,4 +1,4 @@
|
|||||||
package hep.dataforge.vision.solid.fx
|
package hep.dataforge.vision.solid
|
||||||
|
|
||||||
import javafx.beans.InvalidationListener
|
import javafx.beans.InvalidationListener
|
||||||
import javafx.beans.property.SimpleDoubleProperty
|
import javafx.beans.property.SimpleDoubleProperty
|
@ -1,4 +1,4 @@
|
|||||||
package hep.dataforge.vision.solid.fx
|
package hep.dataforge.vision.solid
|
||||||
|
|
||||||
import hep.dataforge.meta.*
|
import hep.dataforge.meta.*
|
||||||
import hep.dataforge.names.Name
|
import hep.dataforge.names.Name
|
@ -1,5 +1,3 @@
|
|||||||
import ru.mipt.npm.gradle.KScienceVersions.coroutinesVersion
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("ru.mipt.npm.mpp")
|
id("ru.mipt.npm.mpp")
|
||||||
}
|
}
|
||||||
@ -16,17 +14,6 @@ kotlin {
|
|||||||
api(project(":visionforge-core"))
|
api(project(":visionforge-core"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
jvmMain {
|
|
||||||
dependencies {
|
|
||||||
api("org.fxyz3d:fxyz3d:0.5.2") {
|
|
||||||
exclude(module = "slf4j-simple")
|
|
||||||
}
|
|
||||||
api("org.jetbrains.kotlinx:kotlinx-coroutines-javafx:${coroutinesVersion}")
|
|
||||||
implementation("eu.mihosoft.vrl.jcsg:jcsg:0.5.7") {
|
|
||||||
exclude(module = "slf4j-simple")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
jsMain {
|
jsMain {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(npm("three", "0.122.0"))
|
implementation(npm("three", "0.122.0"))
|
||||||
|
@ -40,13 +40,13 @@ public class SolidMaterial : Scheme() {
|
|||||||
public companion object : SchemeSpec<SolidMaterial>(::SolidMaterial) {
|
public companion object : SchemeSpec<SolidMaterial>(::SolidMaterial) {
|
||||||
|
|
||||||
public val MATERIAL_KEY: Name = "material".asName()
|
public val MATERIAL_KEY: Name = "material".asName()
|
||||||
internal val COLOR_KEY = "color".asName()
|
public val COLOR_KEY: Name = "color".asName()
|
||||||
public val MATERIAL_COLOR_KEY: Name = MATERIAL_KEY + COLOR_KEY
|
public val MATERIAL_COLOR_KEY: Name = MATERIAL_KEY + COLOR_KEY
|
||||||
internal val SPECULAR_COLOR_KEY = "specularColor".asName()
|
public val SPECULAR_COLOR_KEY: Name = "specularColor".asName()
|
||||||
public val MATERIAL_SPECULAR_COLOR_KEY: Name = MATERIAL_KEY + SPECULAR_COLOR_KEY
|
public val MATERIAL_SPECULAR_COLOR_KEY: Name = MATERIAL_KEY + SPECULAR_COLOR_KEY
|
||||||
internal val OPACITY_KEY = "opacity".asName()
|
public val OPACITY_KEY: Name = "opacity".asName()
|
||||||
public val MATERIAL_OPACITY_KEY: Name = MATERIAL_KEY + OPACITY_KEY
|
public val MATERIAL_OPACITY_KEY: Name = MATERIAL_KEY + OPACITY_KEY
|
||||||
internal val WIREFRAME_KEY = "wireframe".asName()
|
public val WIREFRAME_KEY: Name = "wireframe".asName()
|
||||||
public val MATERIAL_WIREFRAME_KEY: Name = MATERIAL_KEY + WIREFRAME_KEY
|
public val MATERIAL_WIREFRAME_KEY: Name = MATERIAL_KEY + WIREFRAME_KEY
|
||||||
|
|
||||||
public override val descriptor: NodeDescriptor by lazy {
|
public override val descriptor: NodeDescriptor by lazy {
|
||||||
|
Loading…
Reference in New Issue
Block a user