- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# C:/AngioLocalizeNoAuto/MevisLabNoAutoReg/STUMevisApp/Angiolocalize/Sources/ML/STUPerspectiveTransformation/mlPerspectiveTransformation.h

Go to the documentation of this file.

    00001 /*
    00002 * Copyright (c) 2009 Stanford University, School of Medicine All rights reserved.
    00003 *
    00004 * STANFORD ACADEMIC SOFTWARE LICENSE AGREEMENT
    00005 * FOR AngioLocalize SOURCE CODE:
    00006 *
    00007 * 1.  This is a legal agreement between you, RECIPIENT, and STANFORD UNIVERSITY.
    00008 *       By accepting, receiving, and using AngioLocalize.including any accompanying information, materials or
    00009 *       manuals (Program), you are agreeing to be bound by the terms of this Agreement.
    00010 *       If you do not agree to the terms of this Agreement, promptly return the Program to the STANFORD.
    00011
    00012 * 2.  STANFORD grants to RECIPIENT a royalty-free, nonexclusive, and nontransferable license to use the Program
    00013 *       and accompanying source code furnished hereunder, upon the terms and conditions set out below.
    00014 *       documentation and/or other materials provided with the distribution.
    00015 * 3.  RECIPIENT acknowledges that the Program is a research tool still in the development stage and that
    00016 *       it is being supplied as is, without any accompanying services, support or improvements from STANFORD.
    00017 * 4.  RECIPIENT agrees to use the Program solely for internal non-commercial purposes.
    00018 * 5.  RECIPIENT may create derivatives and further transfer the Program under the following terms and conditions:
    00019 *        A) Recipient agrees to not commercially exploit the Program and agrees all uses will be for non-commercial purposes; and,
    00020 *        B) Recipient may not mark any derivatives with the title of Program and may not to use iPad mark for any derivatives; and,
    00021 *        C) Recipient agrees to mark and acknowledge all derivatives as follows: "This is a derivative work based on AngioLocalize:
    00022 *           Frameless AVM localization with 2D Digital Subtraction Angiography (DSA) and 3D Rotational Angiography (DRA) Images developed
    00023 *           by Dimitre Hristov, Lina Liu.
    00024 *        D) Recipient agrees to make all improvements, enhancements and derivatives available under
    00025 *           similar terms and conditions to the research community.
    00026 * 6.   RECIPIENT warrants that RECIPIENT will not remove or export any part of the software or Program from the United
    00027 *       States except in full compliance with all United States and other applicable laws and regulations.
    00028 * 7.  RECIPIENT will use the Program in compliance with all applicable laws, policies and regulations including, but not
    00029 *       limited to, any approvals, informed consent and patient confidentiality principles.
    00030 * 8.   RECIPIENT will indemnify, hold harmless, and defend Stanford against any claim of any kind arising out of or
    00031 *       related to the exercise of any rights granted under this Agreement or the breach of this Agreement by RECIPIENT.
    00032 * 9.  Title and copyright to the Program and any associated documentation shall at all times remain with STANFORD,
    00033 *       and RECIPIENT agrees to preserve same.
    00034 */
    00035 //----------------------------------------------------------------------------------
    00037
    00044 //----------------------------------------------------------------------------------
    00045
    00046
    00047 #ifndef __mlPerspectiveTransformation_H
    00048 #define __mlPerspectiveTransformation_H
    00049
    00050
    00051 // Local includes
    00052 #include "STUPerspectiveTransformationSystem.h"
    00053
    00054 // ML includes
    00055 #include "mlOperatorIncludes.h"
    00056 #include <CSOBase/CSOList.h>
    00057
    00058 ML_START_NAMESPACE
    00059
    00060
    00062 class STUPERSPECTIVETRANSFORMATION_EXPORT PerspectiveTransformation : public BaseOp
    00063 {
    00064 public:
    00065
    00067   PerspectiveTransformation ();
    00068
    00070   virtual ~PerspectiveTransformation () { if (_inputList) delete _inputList; }
    00071
    00073    // inline StringField        &getInputCSOStringFld () const { return *_inputCSOStringFld;}
    00074    // inline BoolField          &getCopySelectedCSOsFld () const { return *_copySelectedCSOsFld;}
    00075         //inline StringField              $getCopiedCSOIds() const {return *_copiedCSOIdsFld;}
    00076         inline MatrixField        &getMatrixFld () const { return *_matrixFld;}
    00077         inline NotifyField        &getApplyFld () const { return *_applyFld;}
    00078
    00079         inline BoolField          &getListenToFinishingNotificationsFld () const
    00080                                   { return *_listenToFinishingNotificationsFld;}
    00081     inline BoolField          &getListenToSelectionNotificationsFld () const
    00082                                   { return *_listenToSelectionNotificationsFld;}
    00083
    00084         inline BoolField          &getUseCreatorFld () const { return *_useCreatorIdFld;}
    00085         inline IntField           &getCreatorIdFld () const { return *_creatorIdFld;}
    00086         inline StringField        &getTargetGroupFld () const { return *_targetGroupFld;}
    00087
    00088         inline BoolField          &getAutoApplyFld () const { return *_autoApplyFld;}
    00089
    00090         inline EnumField          &getUpdateModeFld () const { return *_updateModeFld;}
    00091         //inline BoolField          &get_workDirectlyOnInputListFld () const
    00092         //                                                { return *_workDirectlyOnInputListFld;}
    00093
    00095
    00097   virtual void handleNotification (Field *field);
    00098
    00100   virtual void activateAttachments ();
    00101
    00102
    00103 protected:
    00104
    00105 //----------------------------------------------------------------------------------
    00112 //----------------------------------------------------------------------------------
    00113   virtual void transform (const mat4& matrix);
    00114
    00115
    00116 private:
    00117
    00119   BaseField  *_inListFld;
    00120
    00121   BaseField  *_outListFld;
    00122
    00123   CSOList    *_inputList;
    00124   CSOList    *_outputList;
    00125
    00127   CSOList        *_outList;
    00128   CSOList    *_inList;
    00129
    00130
    00131   // ----------------------------------------------------------
    00133   // ----------------------------------------------------------
    00134
    00136   //StringField *_inputCSOStringFld;
    00137
    00139   //BoolField   *_copySelectedCSOsFld;
    00140
    00142   //StringField *_copiedCSOIdsFld;
    00143
    00145   MatrixField *_matrixFld;
    00146
    00148   NotifyField *_applyFld;
    00149
    00152   BoolField *_listenToRepaintNotificationsFld;
    00153   BoolField *_listenToFinishingNotificationsFld;
    00154   BoolField *_listenToSelectionNotificationsFld;
    00155
    00157   BoolField   *_useCreatorIdFld;
    00158   IntField        *_creatorIdFld;
    00159   StringField *_targetGroupFld;
    00160
    00161   BoolField   *_autoApplyFld;
    00162
    00164   EnumField *_updateModeFld;
    00165
    00167   //BoolField *_workDirectlyOnInputListFld;
    00168
    00170   bool _isInNotificationCB;
    00171
    00173   static void _csoListNotificationCB(void* userData, int notificationFlag);
    00174
    00176   ML_BASEOP_CLASS_HEADER(PerspectiveTransformation)
    00177 };
    00178
    00179
    00180 ML_END_NAMESPACE
    00181
    00182 #endif // __mlPerspectiveTransformation_H
    00183

All Classes Namespaces Files Functions Variables Enumerator Friends