Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
W
web3dscans1
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 17
    • Issues 17
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Web3DScans
  • web3dscans1
  • Wiki
  • BOM

Last edited by Benno Schmidt Nov 13, 2022
Page history
This is an old version of this page. You can view the most recent version or browse the history.

BOM

BOM

Quellcode (USE-Modell; die SOIL-Testumgebung folgt demnächst...):

----------------------------------------------------------------------------- -- UML/OCL-Modellierung für das Projekt "Web3dScans" -- Lehrveranstaltung "Datenmodellierung für raumbezogene Fachanwendungen" -- des Masterstudiengangs Geoinformatik der Hochschule Bochum im SoSe 2022 -- Angelegt von: Sofia Segers

model Web3dScans


-- Wesentliche Anwendungsobjekte sind: -- Betrachtungsobjekt (das kann zunächst ein Handstück, Bohrkern oder Fossil -- sein), der zugehörige 3D-Scan und der zugehörige Steckbrief sowie ein -- Objekt mit punktförmiger Geometrie und einem thmatischen Attribut, das -- eine ID zur Verknüpfung der Geometrie mit den anderen genannten zewntralen -- Anwendungsobjekten enthält.

class Betrachtungsobjekt attributes id : Integer -- Reale Objektgröße gegeben in Millimetern (Länge, Breite, Höhe): extentX : Integer extentY : Integer extentZ : Integer end

-- Spezielle Typen von Betrachtungsobjekten: class Handstueck < Betrachtungsobjekt end class Bohrkern < Betrachtungsobjekt end class Fossil < Handstueck end

class Scan3dModel attributes uri : String end

class Steckbrief attributes uri : String end

class PktObjekt attributes id: Integer -- im Shape des HLNUG das Attribut PROBE xCoord: Real yCoord: Real zCoord: Real crs: String end

association Betrachtungsobjekt_PktObjekt between Betrachtungsobjekt[1] role bobj PktObjekt[0..1] role location end

association Betrachtungsobjekt_Steckbrief between Betrachtungsobjekt[1] role bobj Steckbrief[0..1] role profile end

association Betrachtungsobjekt_Scan3dModel between Betrachtungsobjekt[1] role bobj Scan3dModel[0..*] role scan end


-- Einige grundlegende fachliche Konzepte und Constraints der Anwendung:

constraints

-- Alle Betrachtungsobjekte und Punktobjekte haben eine eindeutige ID: context Betrachtungsobjekt inv uniqueID: Betrachtungsobjekt.allInstances -> isUnique(id) context PktObjekt inv uniqueID: PktObjekt.allInstances -> isUnique(id)

context Handstueck -- Als Handstück wird in der Geologie eine Gesteinsprobe und in der Minera- -- logie eine Mineralstufe in "Handgröße" bezeichnet, was etwa einer Größe -- zwischen 8,5 cm × 11,5 cm und 10 cm × 15 cm entspricht. inv sizeHandstueck: self.extentX > 85 and self.extentX < 100 and self.extentY > 115 and self.extentY < 150

class Erdzeitalter attributes zeitalter: String end

association Steckbrief_Zeitalter between Steckbrief[1] role profile Erdzeitalter[1..*] role age end

constraints context Erdzeitalter -- Erzeitalter kann nur einen der in der nachstehenden (unvollständigen) -- Liste angegebenen Werte enthalten: inv ageNameList: Set{ 'Praekambrium', 'Kambrium', 'Ordovizium', 'Silur', 'Devon', 'Karbon', 'Perm', 'Trias', 'Jura', 'Teritaer', 'Quartaer'} ->includes(zeitalter)

-- Jedes Handstück bezieht sich auf ein Erdzeitalter: context Handstueck inv handSampleHasAge: self.profile.age->size() = 1

-- Bohrkerne können mehr als ein Erdzeitalter abdecken: context Bohrkern inv handSampleHasAges: let ages = self.profile.age in ages->size() >= 1


class Geodienst end

class WMS < Geodienst end

class WFS < Geodienst end

class Map end

class Tag end

class TagVerzeichnis end

-- Klasse DI-Paar beinhaltet die Key-Value Paare, die im Steckbrief enthalten sein können class DIPair end

class KeyData < DIPair end

class InputValue < DIPair end

association Pkt_Geodienst between PktObjekt[0..*] Geodienst[1] role services end

association Map_Geodienst between Map[1] Geodienst[1..*] role mapping end

association Steckbrief_Tag between Steckbrief[1..] role profile Tag[0..] role tagging end

association Tag_TagVerzeichnis between Tag[0..*] TagVerzeichnis[1] role tagRegister end

association Steckbrief_DIPair between Steckbrief[1] role profile DIPair[1..*] role InputPairs end


-- Weitere spezielle Constraints:

constraints

context PktObjekt -- x- und y-Koordinate müssen gesetzt sein: inv xyCoordsSet: self.xCoord.oclIsUndefined() = false and self.yCoord.oclIsUndefined() = false -- Falls z gesetzt ist, muss der Wert unterhalb der Geländeoberfläche -- liegen (Ausnahmen?): inv ZCoordBelowGround: self.zCoord.oclIsUndefined() = true or self.zCoord < 0 -- wäre noch zu prüfen/vereinbaren... -> ToDo

context Betrachtungsobjekt inv extentsSet: --Koordinatendimension == 3 -- Maße für das Betrachtungsobjekt müssen gesetzt sein self.extentX.oclIsUndefined() = false and self.extentY.oclIsUndefined() = false and self.extentZ.oclIsUndefined() = false

-- eof

Clone repository
  • 3.3 3D Viewer
  • 3D Darstellungsparameter
  • 3D Formate
  • 3D Viewer Komponente
  • 3D Viewer
  • Anzeigefenster
  • Arbeitsumgebung
  • Aufgabenbeschreibung
  • BOM
  • Bohrprofil Anzeige
  • CrossReferencer
  • Desktop und mobile Version
  • Endbericht
  • Generierung der 3D Modelle
  • Geodatengrundlage beim HLNUG
View All Pages