Fixed style merging problem

This commit is contained in:
Alexander Nozik 2019-10-06 22:30:12 +03:00
parent b8b8606371
commit 28625ebe58
2 changed files with 12 additions and 9 deletions

View File

@ -56,13 +56,13 @@ abstract class AbstractVisualObject : VisualObject {
config[name] = value config[name] = value
} }
private var styleCache: Laminate? = null private var styleCache: Meta? = null
/** /**
* Collect all styles for this object in a laminate * Collect all styles for this object in a laminate
*/ */
val appliedStyles: Laminate protected val appliedStyles: Meta
get() = styleCache ?: Laminate(style.map { it.toName() }.mapNotNull(::findStyle)).also { styleCache = it } get() = styleCache ?: Laminate(style.map { it.toName() }.mapNotNull(::findStyle)).merge().also { styleCache = it }
/** /**

View File

@ -4,7 +4,10 @@ import hep.dataforge.context.Global
import hep.dataforge.vis.common.VisualGroup import hep.dataforge.vis.common.VisualGroup
import hep.dataforge.vis.hmr.ApplicationBase import hep.dataforge.vis.hmr.ApplicationBase
import hep.dataforge.vis.hmr.startApplication import hep.dataforge.vis.hmr.startApplication
import hep.dataforge.vis.spatial.* import hep.dataforge.vis.spatial.Visual3DPlugin
import hep.dataforge.vis.spatial.VisualGroup3D
import hep.dataforge.vis.spatial.VisualObject3D
import hep.dataforge.vis.spatial.attachChildren
import hep.dataforge.vis.spatial.gdml.GDMLTransformer import hep.dataforge.vis.spatial.gdml.GDMLTransformer
import hep.dataforge.vis.spatial.gdml.LUnit import hep.dataforge.vis.spatial.gdml.LUnit
import hep.dataforge.vis.spatial.gdml.toVisual import hep.dataforge.vis.spatial.gdml.toVisual
@ -137,15 +140,15 @@ private class GDMLDemoApp : ApplicationBase() {
} }
solidConfiguration = { parent, solid -> solidConfiguration = { parent, solid ->
if (!parent.physVolumes.isEmpty()) { if (parent.physVolumes.isNotEmpty()
opacity = 0.3 || solid.name.startsWith("Coil")
}
if (solid.name.startsWith("Coil")
|| solid.name.startsWith("Yoke") || solid.name.startsWith("Yoke")
|| solid.name.startsWith("Magnet") || solid.name.startsWith("Magnet")
|| solid.name.startsWith("Pole") || solid.name.startsWith("Pole")
) { ) {
opacity = 0.3 useStyle("opaque") {
VisualObject3D.OPACITY_KEY to 0.3
}
} }
} }
} }