Module Developer's Guide to Freecad Source Code for Freecad Version

Total Page:16

File Type:pdf, Size:1020Kb

Module Developer's Guide to Freecad Source Code for Freecad Version Module developer’s guide to FreeCAD source code for FreeCAD version 0.17-dev 1 Module developer’s guide to FreeCAD source code by Qingfeng Xia http://www.iesensor.com • 2015-09-18 version 0.1 for FreeCAD version 0.16-dev • 2016-09-18 version 0.2 for FreeCAD version 0.17-dev License of this book This ebook is licensed the same as FreeCAD document license CC-BY 3.0 http://creativecommons.org/licenses/by/3.0/ Acknowledge to developers of FreeCAD Original/lead developers: • Jürgen Riegel • Werner Mayer • yorik van havre Add all contributors see http://www.freecadweb.org/wiki/index.php?title= Contributors Target audiances: new module developers Make sure you are familiar with FreeCAD workbench GUI and API as a user: • Foundamental document on official wiki for FreeCAD • FreeCAD python API document • single file PDF user manual for quick start Doxygen documents links Doxygen generated online documentation of source for 0.16dev Why I want to write this book • Learn the software architecture of FreeCAD: a large open source project • Learn to use git to contribute to open source projects like FreeCAD • Save time for new developers to explore the source codde of FreeCAD • Record personal note and lesson during writing/contributing code to FreeCAD • Some chapters of this ebook is seeking to be merged into official wiki after reviewed as usable 1 Organisation of this book • Chapters are written in markdown and PDF is generated by pandoc • Python scripts to link Introduction to header files: *_folder_desc.py • Python script merge.py merges chapters into single md file then PDF How to contribute to this ebook • git clone https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide.git 2 Contents 1 FreeCAD overview and architecture 7 1.1 Introduction to FreeCAD...............................................7 1.2 Key features.......................................................7 1.3 Software architecture..................................................7 1.3.1 Key software libaries..............................................7 1.3.2 Mixed python and c++............................................7 1.3.3 GPL code will not be included into installler................................8 1.4 How 3D model are renderred.............................................8 1.4.1 Selection of 3D visualization libarary.....................................8 1.4.2 Discussion of 3D rendering library selection on FreeCAD Forum.....................8 1.5 Roadmap........................................................9 1.5.1 Keep updated with main components:....................................9 1.5.2 Pyside 2 project for Qt 5.x..........................................9 2 Organisation of FreeCAD source code 11 2.1 Build system for FreeCAD............................................... 11 2.1.1 Analysis of src/cMake/SMesh.cMake ..................................... 11 2.2 List of files and folders in FreeCAD source folder.................................. 12 2.3 List of modules in FreeCAD Mod folder....................................... 13 2.4 Learning path...................................................... 14 2.5 Learning OpenInventor/Coin3D............................................ 14 2.5.1 OpenInventor in FreeCAD’s ViewProvider.................................. 14 2.5.2 important classes in OpenInventor...................................... 14 2.5.3 Window System integration.......................................... 18 2.5.4 Pivy: Coin3D ’s python wrapping...................................... 19 3 Base and App module (Standalone App without GUI) and Main module 21 3.1 List of header files in Base folder........................................... 21 3.1.1 Frequently included headers files....................................... 23 3.1.2 Correct way of using Sequencer in try-catch block............................. 23 3.1.3 String enconding utf8 and conversion into QString............................. 24 3.2 Type, BaseClass, PyObjectBase............................................ 24 3.2.1 Type system.................................................. 24 3.2.2 Base::BaseClass................................................. 25 3.2.3 PyObjectBase.................................................. 28 3.2.4 src/Base/Persistence.h............................................. 28 3.2.5 GeoFeature: Base class of all geometric document objects......................... 28 3.3 Unit scheme for physial quantity........................................... 28 3.3.1 src/Base/Unit.h................................................ 29 3.3.2 src/Base/Quantity.h.............................................. 29 3.4 List of header files in App folder........................................... 29 3.5 Property framewrok.................................................. 31 3.5.1 src/App/Property.h.............................................. 31 3.5.2 src/App/PropertyStandard.h......................................... 31 3.5.3 Geometry related property.......................................... 32 3.5.4 File related property.............................................. 32 3.5.5 Links related property............................................. 32 3.5.6 Units for physical Quantities......................................... 32 1 2 CONTENTS 3.5.7 src/App/PropertyContainer.h......................................... 32 3.5.8 Macro functions for Property......................................... 33 3.5.9 Naming of property.............................................. 34 3.5.10 PropertyMap.................................................. 34 3.6 Document-View-Observer Pattern.......................................... 34 3.6.1 src/App/Document.h............................................. 34 3.6.2 src/App/DocumentObject.h.......................................... 34 3.6.3 Observer and Subject pattern for documentObject............................. 35 3.6.4 App::DocumentObjectExecReturn...................................... 35 3.6.5 FeaturePython................................................. 36 3.6.6 FeaturePythonPy template class....................................... 36 3.7 Startup process of FreeCADCmd........................................... 38 3.7.1 skeleton of main() function in src/Main/MainCmd.cpp........................... 38 3.7.2 src/Main/MainPy.py.............................................. 38 3.7.3 App::Application class............................................. 38 3.7.4 How Python interpreter is integrated..................................... 39 3.8 FreeCADGui start up process............................................. 40 3.8.1 main() in src/Main/MainGui.cpp....................................... 40 3.8.2 runApplication() in src/Gui/Application.cpp............................... 41 3.8.3 src/Main/FreeCADGuiPy.cpp......................................... 42 4 Overview of Gui module 43 4.1 List of header files in Gui folder............................................ 43 4.2 Important classes in Gui namespace......................................... 46 4.2.1 Gui::Application................................................ 46 4.2.2 Gui::Document................................................. 46 4.2.3 GUI components................................................ 46 4.2.4 Gui Services API................................................ 46 4.3 ViewProvider framework and 3D rederring...................................... 48 4.3.1 Gui::ViewProvider .............................................. 48 4.3.2 Gui::DocumentObjectViewProvider ..................................... 49 4.3.3 Gui::ViewProviderGeometryObject ..................................... 50 4.3.4 Fem::ViewProviderFemConstraint ..................................... 50 4.3.5 3D CAD Part rendering............................................ 50 4.3.6 View3DInventor class............................................. 51 4.3.7 ViewProivder and 3DViewer......................................... 52 4.3.8 2D drawing rendering using Qt native QGraphicsView........................... 53 4.3.9 further reading on ViewProvider....................................... 53 4.4 selection framework.................................................. 53 4.4.1 src/Gui/Selection.h.............................................. 53 4.4.2 src/Gui/SelectionObject.h thin wrapper of DocumentObject pointer................... 53 4.4.3 src/Gui/SelectionView.h show present selection in QListWidget of DockWindow............ 54 4.4.4 src/Gui/SelectionFilter.h expression based filtering............................. 54 4.4.5 src/Gui/MouseSelection.h........................................... 54 4.4.6 Example of getSelection............................................ 54 4.5 Command framework................................................. 54 4.5.1 Overview of command framework....................................... 55 4.5.2 Drawbacks of QAction............................................. 55 4.5.3 Way out..................................................... 55 4.5.4 Boost::signal is used.............................................. 56 4.6 TaskView Framework: UI for interactive design................................... 56 4.6.1 Important classed related to TaskView.................................... 56 4.6.2 Controller of TaskView and TaskDialog................................... 56 4.7 Internationalization with FreeCAD.......................................... 58 4.7.1 Overview of FreeCAD i18n.......................................... 58 4.7.2 integrate a new language into FreeCAD................................... 58 4.7.3 Update of FreeCAD translation.......................................
Recommended publications
  • English Translation of the German by Tom Hammond
    Richard Strauss Susan Bullock Sally Burgess John Graham-Hall John Wegner Philharmonia Orchestra Sir Charles Mackerras CHAN 3157(2) (1864 –1949) © Lebrecht Music & Arts Library Photo Music © Lebrecht Richard Strauss Salome Opera in one act Libretto by the composer after Hedwig Lachmann’s German translation of Oscar Wilde’s play of the same name, English translation of the German by Tom Hammond Richard Strauss 3 Herod Antipas, Tetrarch of Judea John Graham-Hall tenor COMPACT DISC ONE Time Page Herodias, his wife Sally Burgess mezzo-soprano Salome, Herod’s stepdaughter Susan Bullock soprano Scene One Jokanaan (John the Baptist) John Wegner baritone 1 ‘How fair the royal Princess Salome looks tonight’ 2:43 [p. 94] Narraboth, Captain of the Guard Andrew Rees tenor Narraboth, Page, First Soldier, Second Soldier Herodias’s page Rebecca de Pont Davies mezzo-soprano 2 ‘After me shall come another’ 2:41 [p. 95] Jokanaan, Second Soldier, First Soldier, Cappadocian, Narraboth, Page First Jew Anton Rich tenor Second Jew Wynne Evans tenor Scene Two Third Jew Colin Judson tenor 3 ‘I will not stay there. I cannot stay there’ 2:09 [p. 96] Fourth Jew Alasdair Elliott tenor Salome, Page, Jokanaan Fifth Jew Jeremy White bass 4 ‘Who spoke then, who was that calling out?’ 3:51 [p. 96] First Nazarene Michael Druiett bass Salome, Second Soldier, Narraboth, Slave, First Soldier, Jokanaan, Page Second Nazarene Robert Parry tenor 5 ‘You will do this for me, Narraboth’ 3:21 [p. 98] First Soldier Graeme Broadbent bass Salome, Narraboth Second Soldier Alan Ewing bass Cappadocian Roger Begley bass Scene Three Slave Gerald Strainer tenor 6 ‘Where is he, he, whose sins are now without number?’ 5:07 [p.
    [Show full text]
  • Drawing in 3D in a Realistic 3D World the Observer Becomes an Actor Whose Actions Provoke Reactions That Leave Tracks in Virtual Reality
    PROGRAMMING Coin 3D – Interaction Interactive 3D Worlds with Coin and Qt Drawing in 3D In a realistic 3D world the observer becomes an actor whose actions provoke reactions that leave tracks in virtual reality. Qt and Coin allow you to program animated and interactive 3D worlds quickly and easily.We take a look at how you can interact with your new 3D world and create new effects. BY STEPHAN SIEMEN scene. This illustration is right mouse button deletes all the dots based on an example from the scene. from Inventor Mentor ([3], Chapter 10, The Right Choice example 2), how- A program that needs to reflect a user’s ever, we have wishes interactively, needs to select and expanded on it modify individual objects in the scene and moved from graph. This example adds new dots to Motif to using dotCoordinates and tells the dots node to Qt and SoQt. draw the new dots. Figure 2 Nodes can be accessed and selected by shows the reference to their position in the graph. scene graph for the drawing Each group node provides a method program. It requires only four called getChild() for this purpose. Figure nodes, and the user can edit three of 2 shows how the program references them dynamically (only the lighting individual nodes via the root of the remains constant). Pressing the center scene graph. However, this simple mouse button rotates the camera about method is extremely error-prone: if three dimensional scene appears the source. dotCoor- far more realistic if it is animated dinates and dots are Aand the user can interact with it.
    [Show full text]
  • Algebraic Methods for Geometric Modeling Julien Wintz
    Algebraic Methods for Geometric Modeling Julien Wintz To cite this version: Julien Wintz. Algebraic Methods for Geometric Modeling. Mathematics [math]. Université Nice Sophia Antipolis, 2008. English. tel-00347162 HAL Id: tel-00347162 https://tel.archives-ouvertes.fr/tel-00347162 Submitted on 14 Dec 2008 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Universit´ede Nice Sophia-Antipolis Ecole´ Doctorale STIC THESE` Pr´esent´ee pour obtenir le titre de : Docteur en Sciences de l’Universit´ede Nice Sophia-Antipolis Sp´ecialit´e: Informatique par Julien Wintz Algebraic Methods for Geometric Modeling Soutenue publiquement `al’INRIA le 5 Mai 2008 devant le jury compos´ede : Pr´esident : Andr´e Galligo Universit´ede Nice, France Rapporteurs : Gershon Elber Technion, Israel Tor Dokken Sintef, Norway Examinateurs : Pascal Schreck Universit´eLouis Pasteur, France Christian Arber Missler, France Directeur : Bernard Mourrain Inria Sophia-Antipolis, France Algebraic methods for geometric modeling Julien Wintz Abstract The two fields of algebraic geometry and algorithmic geometry, though closely related, are traditionally represented by almost disjoint communi- ties. Both fields deal with curves and surfaces but objects are represented in different ways. While algebraic geometry defines objects by the mean of equations, algorithmic geometry use to work with linear models.
    [Show full text]
  • Avatud Lähtekoodiga Vahendite Kohandamine Microsoft Visual C++ Tarkvaralahenduste Kvaliteedi Analüüsiks Sonarqube Serveris
    TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Tarkvarateaduse instituut Anton Ašot Roolaid 980774IAPB AVATUD LÄHTEKOODIGA VAHENDITE KOHANDAMINE MICROSOFT VISUAL C++ TARKVARALAHENDUSTE KVALITEEDI ANALÜÜSIKS SONARQUBE SERVERIS Bakalaureusetöö Juhendaja: Juhan-Peep Ernits PhD Tallinn 2019 Autorideklaratsioon Kinnitan, et olen koostanud antud lõputöö iseseisvalt ning seda ei ole kellegi teise poolt varem kaitsmisele esitatud. Kõik töö koostamisel kasutatud teiste autorite tööd, olulised seisukohad, kirjandusallikatest ja mujalt pärinevad andmed on töös viidatud. Autor: Anton Ašot Roolaid 21.05.2019 2 Annotatsioon Käesolevas bakalaureusetöös uuritakse, kuidas on võimalik saavutada suure hulga C++ lähtekoodi kvaliteedi paranemist, kui ettevõttes kasutatakse arenduseks Microsoft Visual Studiot ning koodikaetuse ja staatilise analüüsi ülevaate saamiseks SonarQube serverit (Community Edition). Seejuures SonarSource'i poolt pakutava tasulise SonarCFamily for C/C++ analüsaatori (mille eelduseks on SonarQube serveri Developer Edition) asemel kasutatakse tasuta ja vaba alternatiivi: SonarQube C++ Community pluginat. Analüüsivahenditena eelistatakse avatud lähtekoodiga vabu tarkvaravahendeid. Valituks osutuvad koodi kaetuse analüüsi utiliit OpenCppCoverage ja staatilise analüüsi utiliit Cppcheck. Siiski selgub, et nende utiliitide töö korraldamiseks ja väljundi sobitamiseks SonarQube Scanneri vajadustega tuleb kirjutada paar skripti: üks PowerShellis ja teine Windowsi pakkfailina. Regulaarselt ajastatud analüüside käivitamist tagab QuickBuild,
    [Show full text]
  • Optimization Design by Coupling Computational Fluid Dynamics and Genetic Algorithm 125
    DOI: 10.5772/intechopen.72316 Provisional chapter Chapter 5 Optimization Design by Coupling Computational Fluid OptimizationDynamics and Design Genetic by Algorithm Coupling Computational Fluid Dynamics and Genetic Algorithm Jong-Taek Oh and Nguyen Ba Chien Jong-TaekAdditional information Oh and is availableNguyen at Bathe endChien of the chapter Additional information is available at the end of the chapter http://dx.doi.org/10.5772/intechopen.72316 Abstract Nowadays, optimal design of equipment is one of the most practical issues in modem industry. Due to the requirements of deploying time, reliability, and design cost, bet- ter approaches than the conventional ones like experimental procedures are required. Moreover, the rapid development of computing power in recent decades opens a chance for researchers to employ calculation tools in complex configurations. In this chapter, we demonstrate a kind of modern optimization method by coupling computational fluid dynamics (CFD) and genetic algorithms (GAs). The brief introduction of GAs and CFD package OpenFOAM will be performed. The advantage of this approach as well as the difficulty that we must tackle will be analyzed. In addition, this chapter performs a study case in which an automated procedure to optimize the flow distribution in a manifold is established. The design point is accomplished by balancing the liquid-phase flow rate at each outlet, and the controlled parameter is a dimension of baffle between each chan- nel. Using this methodology, we finally find a set of results improving the distribution of flow. Keywords: computational fluid dynamics, VOF, optimization, OpenFOAM, genetic algorithm, open sourced 1. Introduction Computational fluid dynamics (CFD)-based optimization approach has been growing rap- idly in the past decades.
    [Show full text]
  • OCCT V.6.5.4 Release Notes
    Open CASCADE Technology & Products Products Version6. features, Highlights Technology CASCADE Open Overview , so applications linked against a previous version must berecompiled to run with this Version 6. Open CASCADE Technology & Products Technology Open CASCADE improvements and bug fixes over 6 Universal locale global current on independent made export / Import TKOpenGl libraries support plotter and viewer 2D obsolete of Removal Accelerated text visualization management texture of Redesign R and XCode Cocoa API with native visualization X, Mac OS On of support Official New automated testing system testing New automated and 3D graphics 2D both to way render unified the become input parameters and results and generation of data for bug rep bug for data of generation and results and parameters input . 0 efactored is binary incompatible withtheprevious versions CMake build scripts build CMake is nowis link Open CASCADE Open Boolean operations algorithm operations Boolean andProducts Mac OS X and Products Products and www. www. ed at build time, not at run time run at not time, build at ed opencascad Release Notes Notes Release opencascade M , Windows 8 and Visual Studio 2012 Studio Visual , and Windows 8 maintenance ; use of FTGL library is dropped FTGL of library ; use in version or e .co Release .org 6. m releas . Possibility to enable automatic check of of check automatic enable to Possibility . 6 . 0 ver. 6. ver. Technology is a Copyright © 2013 by OPEN CASCADE Page Copyright OPEN CASCADE 2013by © e 6. minor 5. 5 of . release, which includes 6 OpenCASCADE Technology . 0 4 project files files project ort . 3Dviewer over libraries 1 2 5 of 0 32 new 6 and and .
    [Show full text]
  • Development of a Coupling Approach for Multi-Physics Analyses of Fusion Reactors
    Development of a coupling approach for multi-physics analyses of fusion reactors Zur Erlangung des akademischen Grades eines Doktors der Ingenieurwissenschaften (Dr.-Ing.) bei der Fakultat¨ fur¨ Maschinenbau des Karlsruher Instituts fur¨ Technologie (KIT) genehmigte DISSERTATION von Yuefeng Qiu Datum der mundlichen¨ Prufung:¨ 12. 05. 2016 Referent: Prof. Dr. Stieglitz Korreferent: Prof. Dr. Moslang¨ This document is licensed under the Creative Commons Attribution – Share Alike 3.0 DE License (CC BY-SA 3.0 DE): http://creativecommons.org/licenses/by-sa/3.0/de/ Abstract Fusion reactors are complex systems which are built of many complex components and sub-systems with irregular geometries. Their design involves many interdependent multi- physics problems which require coupled neutronic, thermal hydraulic (TH) and structural mechanical (SM) analyses. In this work, an integrated system has been developed to achieve coupled multi-physics analyses of complex fusion reactor systems. An advanced Monte Carlo (MC) modeling approach has been first developed for converting complex models to MC models with hybrid constructive solid and unstructured mesh geometries. A Tessellation-Tetrahedralization approach has been proposed for generating accurate and efficient unstructured meshes for describing MC models. For coupled multi-physics analyses, a high-fidelity coupling approach has been developed for the physical conservative data mapping from MC meshes to TH and SM meshes. Interfaces have been implemented for the MC codes MCNP5/6, TRIPOLI-4 and Geant4, the CFD codes CFX and Fluent, and the FE analysis platform ANSYS Workbench. Furthermore, these approaches have been implemented and integrated into the SALOME simulation platform. Therefore, a coupling system has been developed, which covers the entire analysis cycle of CAD design, neutronic, TH and SM analyses.
    [Show full text]
  • The Kate Handbook
    The Kate Handbook Anders Lund Seth Rothberg Dominik Haumann T.C. Hollingsworth The Kate Handbook 2 Contents 1 Introduction 10 2 The Fundamentals 11 2.1 Starting Kate . 11 2.1.1 From the Menu . 11 2.1.2 From the Command Line . 11 2.1.2.1 Command Line Options . 12 2.1.3 Drag and Drop . 13 2.2 Working with Kate . 13 2.2.1 Quick Start . 13 2.2.2 Shortcuts . 13 2.3 Working With the KateMDI . 14 2.3.1 Overview . 14 2.3.1.1 The Main Window . 14 2.3.2 The Editor area . 14 2.4 Using Sessions . 15 2.5 Getting Help . 15 2.5.1 With Kate . 15 2.5.2 With Your Text Files . 16 2.5.3 Articles on Kate . 16 3 Working with the Kate Editor 17 4 Working with Plugins 18 4.1 Kate Application Plugins . 18 4.2 External Tools . 19 4.2.1 Configuring External Tools . 19 4.2.2 Variable Expansion . 20 4.2.3 List of Default Tools . 22 4.3 Backtrace Browser Plugin . 25 4.3.1 Using the Backtrace Browser Plugin . 25 4.3.2 Configuration . 26 4.4 Build Plugin . 26 The Kate Handbook 4.4.1 Introduction . 26 4.4.2 Using the Build Plugin . 26 4.4.2.1 Target Settings tab . 27 4.4.2.2 Output tab . 28 4.4.3 Menu Structure . 28 4.4.4 Thanks and Acknowledgments . 28 4.5 Close Except/Like Plugin . 28 4.5.1 Introduction . 28 4.5.2 Using the Close Except/Like Plugin .
    [Show full text]
  • GPUSPH User Guide
    GPUSPH User Guide version 5.0 — October 2016 Contents 1 Introduction 2 2 Anatomy of a project apart from the use of SALOME 2 3 Setting up and running the simulation without using the user in- terface 3 3.1 Case Examples .............................. 6 3.1.1 Framework setup ......................... 8 3.1.2 Generic simulation parameters .................. 11 3.1.3 SPH parameters .......................... 12 3.1.4 Physical parameters ....................... 13 3.1.5 Results parameters ........................ 14 3.2 Building and initializing the particle system .............. 14 4 Running your simulation 18 5 Setting up and running the simulation with the SALOME user in- terface 18 5.1 Preparing the geometry in GEOM .................... 18 5.2 Generating the mesh (optional) ..................... 20 5.3 Generating particle files with the Particle preprocessor ........ 21 5.4 Setting up and running the simulation with the GPUSPH solver ... 21 6 Visualizing the results 22 1 1 Introduction There are two ways to set up cases for GPUSPH: coding a Case file, or using the SALOME module GPUSPH solver. When coding the case file, it is possible to create the geometrical elements using built-in functions of GPUSPH (only for particle-type boundary conditions at the moment) or to read particle files generated by the Particle Preprocessor module of SALOME. Creating a case by hand corresponds to the creation of a new cusource file, with the associated header (e.g. MyCase.cu and MyCase.h), placing them under src/problems/user. This folder does not exist by default in GPUSPH, but it is recognised as a place to be scanned for case sources.
    [Show full text]
  • Alternative Pre-Processing Tools for Elmer
    Alternative pre-processing tools for Elmer ElmerTeam CSC – IT Center for Science, Finland CSC, 2018 Mesh generation capabilities of Elmer suite • ElmerGrid onative generation of simple structured meshes • ElmerGUI oplugins for tetgen, netgen and ElmerGrid • No geometry generation tools to speak about • No capability for multibody Delaunay meshing • Limited control over mesh quality and density • Complex meshes must be created by other tools! Open Source software for Computational Engineering Open source software in computational engineering • Academicly rooted stuff is top notch oLinear algebra, solver libraries oPetSc, Trilinos, OpenFOAM, LibMesh++, … • CAD and mesh generation not that competitive oOpenCASCADE legacy software oMesh generators netgen, tetgen, Gmsh are clearly academic oAlso for OpenFOAM there is development of commercial preprocessing tools • Users may need to build their own workflows from the most suitable tools oAlso in combination with commerial software Open Source Mesh Generation Software for Elmer • ElmerGrid: native to Elmer • Gmsh oSimple structured mesh generation oIncludes geometry definition tools oSimple mesh manipulation oElmerGUI/ElmerGrid can read the format oUsable via ElmerGUI msh format • ElmerMesh2D • SALOME oObsolite 2D Delaunay mesh generator oElmerGrid can read the unv format usable via the old ElmerFront written by SALOME oPreliminary version for direct interface to • Netgen Elmer oCan write linear meshes in Elmer format oUsable also as ElmerGUI plug-in • FreeCAD • Tetgen oOpen source community
    [Show full text]
  • Downloading Material Is Agreeing to Abide by the Terms of the Repository Licence
    Cronfa - Swansea University Open Access Repository _____________________________________________________________ This is an author produced version of a paper published in : Software—Practice & Experience Cronfa URL for this paper: http://cronfa.swan.ac.uk/Record/cronfa158 _____________________________________________________________ Paper: Laramee, R. (2008). Comparing and evaluating computer graphics and visualization software. Software—Practice & Experience, 38(7), 735-760. http://dx.doi.org/10.1002/spe.v38:7 _____________________________________________________________ This article is brought to you by Swansea University. Any person downloading material is agreeing to abide by the terms of the repository licence. Authors are personally responsible for adhering to publisher restrictions or conditions. When uploading content they are required to comply with their publisher agreement and the SHERPA RoMEO database to judge whether or not it is copyright safe to add this version of the paper to this repository. http://www.swansea.ac.uk/iss/researchsupport/cronfa-support/ SOFTWARE—PRACTICE AND EXPERIENCE Softw. Pract. Exper. 2000; 00:1–7 Prepared using speauth.cls [Version: 2002/09/23 v2.2] Comparing and Evaluating Computer Graphics and Visualization Software Robert S. Laramee∗,† The Visual and Interactive Computing Group, Department of Computer Science, Swansea University, Swansea SA2 8PP, Wales, UK SUMMARY When starting a new computer graphics or visualization software project, students, researchers, and businesses alike must decide whether or not to start from scratch or with third party software. Since computer graphics and visualization applications are typically quite large, developers often build upon existing software libraries in order to take advantage of the tens of thousands of hours worth of development and testing already invested. Thus developers and managers must face the decision of which library to build on.
    [Show full text]
  • STAR Geometry Browser
    The STAR “Integrated" Geometry Browser V.Fine How to start the Browser To start the STAR Geometry browser use 3 shell commands: > stardev > source $STAR/QtRoot/qtgl/qtcoin/setup.csh > root4star GeomBrowse.C The browser requires the Qt ROOT plug-in to be activated instead of the “X11” plug-in which is ROOT default. To change the default, one has to provide the custom “.rootrc” file as follows: Gui.Backend qt Plugin.TGuiFactory qtgui TQtGUIFactory QtRootGui "TQtGUIFactory()" Gui.Factory qtgui Plugin.TVirtualPadEditor Ged TQtGedEditor QtGed "TQtGedEditor(TCanvas*)" Plugin.TVirtualViewer3D ogl TQtRootViewer3D RQTGL "TQtRootViewer3D(TVirtualPad*)" +Plugin.TVirtualViewer3D oiv TQtRootCoinViewer3D RQIVTGL "TQtRootCoinViewer3D(TVirtualPad*)" The GeomBrowse.C does check whether Qt plug-in has been activated and does create the proper “.rootrc” file for you if needed 12/6/2006 STAR BNL http://www.star.bnl.gov/STAR/comp/vis/ S&C STAV.FRine week (fine@ly mbnl.eeting.gov ) 2 Input 3D geometry formats • Zebra - *.fz • ROOT Macro - *.C • ROOT file - *.root • "Open Inventor" - *.iv, can be used to combine the ROOT/ GEANT objects with non-ROOT 3D shapes • VRML - *.wrl, can be used to combine the ROOT/ GEANT objects with non-ROOT 3D shapes In the other words, all versions of the STAR detector geometry description for "GEANT Simulation" and "Reconstruction" can be visualized. 12/6/2006 STAR BNL http://www.star.bnl.gov/STAR/comp/vis/ S&C STAV.FRine week (fine@ly mbnl.eeting.gov ) 3 The output formats: 1. All common pixmap formats: gif, png, jpg, tiff etc (can be used to create still and animated files) 2.
    [Show full text]