All Downloads are FREE. Search and download functionalities are using the official Maven repository.

local.Test.scala Maven / Gradle / Ivy

/*
 * Copyright (C) 2016  University of Basel, Graphics and Vision Research Group
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see .
 */

package local

import java.awt.Image

import scalismo.ui.model.Scene
import scalismo.ui.model.capabilities.RenderableSceneNode
import scalismo.ui.resources.icons.BundledIcon
import scalismo.ui.util.EdtUtil
import scalismo.ui.view.{ScalismoFrame, ScalismoLookAndFeel}
import scalismo.ui.api.Viewport
import scalismo.ui.api.ObjectView
import scalismo.ui.api.ScalismoUI
import scalismo.io.MeshIO
import scalismo.ui.api._3DMain

class MyScalismoUI(title: String) extends ScalismoUI(title) {

  def setBackgroundColor(color: java.awt.Color): Unit = {
    frame.sceneControl.backgroundColor.value = color
  }

  def screenshot(viewport: Viewport, file: java.io.File): Unit = {
    frame.perspective.viewports
      .find(_.name == viewport.name)
      .foreach(v => v.rendererPanel.screenshot(file))
  }

}

object MyScalismoUI {

  def apply(title: String = ""): MyScalismoUI = {
    scalismo.initialize()
    ScalismoLookAndFeel.initializeWith(ScalismoLookAndFeel.DefaultLookAndFeelClassName)
    new MyScalismoUI(title)
  }

}

object Test {

  def main(args: Array[String]): Unit = {

    val ui = MyScalismoUI()
    ui.setBackgroundColor(java.awt.Color.WHITE)
    val mesh = MeshIO.readMesh(new java.io.File("C:/Users/marce/data/faces/F0006_NE00WH_RAW.ply")).get
    ui.show(mesh, "mesh")
    Thread.sleep(3000) // needed to make sure that the mesh is rendered before the screenshot is taken
    ui.screenshot(_3DMain, new java.io.File("x.png"))

  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy