/*# --------------------------------------------------------------------- # # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image # pour la Sant�) # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton # Previous Authors : Laurent Guigues, Jean-Pierre Roux # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil # # This software is governed by the CeCILL-B license under French law and # abiding by the rules of distribution of free software. You can use, # modify and/ or redistribute the software under the terms of the CeCILL-B # license as circulated by CEA, CNRS and INRIA at the following URL # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html # or in the file LICENSE.txt. # # As a counterpart to the access to the source code and rights to copy, # modify and redistribute granted by the license, users are provided only # with a limited warranty and the software's author, the holder of the # economic rights, and the successive licensors have only limited # liability. # # The fact that you are presently reading this means that you have had # knowledge of the CeCILL-B license and that you accept its terms. # ------------------------------------------------------------------------ */ //---------------------------------------------------------------------------------------------------------------- // Class definition include //---------------------------------------------------------------------------------------------------------------- #include "ContourWorkspace.h" //---------------------------------------------------------------------------------------------------------------- // Class implementation //---------------------------------------------------------------------------------------------------------------- /** @file ContourWorkspace.cxx */ //------------------------------------------------------------------------------------------------------------ // Constructors & Destructors //------------------------------------------------------------------------------------------------------------ /* * Constructs the workspace with the corresponding given parent * @param parent Is the parent relation with * @return Returns a pointer to the created ContourWorkspace */ ContourWorkspace :: ContourWorkspace (OutlineModelManager * parent) { theModelBoss = parent; commHandler = new CommandsHandler(); commHandler->setModelBoss(this); } /* * Destroys the ContourWorkspace */ ContourWorkspace :: ~ ContourWorkspace() { } //------------------------------------------------------------------------------------------------------------ // Methods //------------------------------------------------------------------------------------------------------------ /* * Executes a command by resending the received parameters to its parent to do the appropiate interpretation and execution. * @param theCommand Is the command to execute * @param fromRegistration Indicates if the execution is directed from the registration, by default comes from the GUI = false. */ bool ContourWorkspace :: executeCommand(CommandObject * theCommand, bool fromRegistration) { return theModelBoss->executeCommand(theCommand, fromRegistration); } /* * Executes a command queue by resending the received parameters to its parent to do the appropiate interpretation and execution. * @param executionQueue Is the command queue to execute * @param fromRegistration Indicates if the execution is directed from the registration, by default comes from the GUI = false. */ bool ContourWorkspace :: executeCommandsQueue(std::deque & executionQueue, bool fromRegistration) { return theModelBoss->executeCommandsQueue(executionQueue, fromRegistration); } /** * Method that propagates an outline over the deep concept of the axe */ void ContourWorkspace :: spreadInDepth() { //Getting the vector of the actual instant //Getting the basic object name and patter to create the spreaded outlines //Variating (i) the depth in the current axe, previously getting the axe size as maxmimum value conditioned by the imageSource deep in the axe direction //Calling the creation of the section or plane and including it in the correspondig enviroment using the outlineManager for that //Creating the (i-th) outline and including it in the correspondig enviroment using the outlineManager for that //Including the (i-th) outline in a new propagation group calling the outlineManager } /* * Sets the working group id and pointer * @param theWorkingGroupKey Is the correspondig key (id) of the working group * @param theGroup Is the correspondig group to work with */ void ContourWorkspace :: setWorkingGroup( int theWorkingGroupKey , OutlineGroup * theGroup) { workingGroupKey = theWorkingGroupKey; actualGroup = theGroup; } /* * Gets the working group key * @return theGroupKey Is the correspondig key (id) of the working group */ int ContourWorkspace :: getWorkingGroupKey( ) { return workingGroupKey; } /* * Calls the execution for UNION of the given outlines * @param outlinesNamesToCall Is the correspondig vector with the names of the outlines to operate */ void ContourWorkspace :: callOutline_Union_Of( std::vector outlinesNamesToCall ) { } /* * Calls the execution for INTERSECTION of the given outlines * @param outlinesNamesToCall Is the correspondig vector with the names of the outlines to operate */ void ContourWorkspace :: callOutline_Intersection_Of( std::vector outlinesNamesToCall ) { } /* * Calls the execution for COMBINATION of the given outlines * @param outlinesNamesToCall Is the correspondig vector with the names of the outlines to operate */ void ContourWorkspace :: callOutline_Combination_Of( std::vector outlinesNamesToCall ) { } /* * Calls the execution for FRAGMENTATION of the given outlines * @param outlinesNamesToCall Is the correspondig vector with the names of the outlines to operate */ void ContourWorkspace :: callOutline_Fragmentation_Of( std::vector outlinesNamesToCall ) { } /* * Calls the execution for AGRUPATION of the given outlines * @param outlinesNamesToCall Is the correspondig vector with the names of the outlines to operate */ void ContourWorkspace :: callOutline_Agrupation_Of( std::vector outlinesNamesToCall ) { } /* * Calls to redo a the actual REDO command. * @return Returns true if the actual command to execute has been executed. */ bool ContourWorkspace :: callREDO() { return commHandler->redo(); } /* * Calls to undo the actual UNDO command. * @return Returns true if the inverse command is executed. */ bool ContourWorkspace :: callUNDO() { return commHandler->undo(); } /* * Calls the registration of the given commands (do, undo) in the commands handler * If is the first registered command notifies the posibleUNDO avaliability. * @param doCommand Is the command to register in the redo_commands vector. * @param unDoCommand Is the command to register in the unDo_commands vector. */ void ContourWorkspace :: callRegisterCommand(CommandObject * doCommand, CommandObject * unDoCommand) { commHandler->registerCommand( doCommand, unDoCommand ); } /* * Gets the command handler */ CommandsHandler * ContourWorkspace :: getCommandHandler() { return commHandler; } void ContourWorkspace :: setCommandHandler(CommandsHandler * aCommHandler) { commHandler = aCommHandler; }