~ubuntu-branches/ubuntu/wily/ginkgocadx/wily-proposed

« back to all changes in this revision

Viewing changes to src/cadxcore/api/controllers/proxies/ipipelineproperties.h

  • Committer: Package Import Robot
  • Author(s): Dmitry Smirnov
  • Date: 2013-10-24 21:28:17 UTC
  • mfrom: (1.2.2)
  • Revision ID: package-import@ubuntu.com-20131024212817-ej1skb9og09d3ht6
Tags: 3.5.0.1137.31+dfsg-1
New upstream release [October 2013]

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
*  $Id: ipipelineproperties.h $
4
4
*  Ginkgo CADx Project
5
5
*
6
 
*  Copyright 2008-12 MetaEmotion S.L. All rights reserved.
 
6
*  Copyright 2008-14 MetaEmotion S.L. All rights reserved.
7
7
*  http://ginkgo-cadx.com
8
8
*
9
9
*  This file is licensed under LGPL v3 license.
14
14
#pragma once
15
15
#ifndef IPIPELINEPROPERTIES_H
16
16
#define IPIPELINEPROPERTIES_H
 
17
#include <api/api.h>
17
18
#include <api/autoptr.h>
18
19
 
19
20
//----------------------------------------------------------------------------------------------------
27
28
 
28
29
                //----------------------------------------------------------------------------------------------------
29
30
                /** Pipeline Properties Proxy  class **/
30
 
                class IPipelineProperties {
 
31
                class EXTAPI IPipelineProperties {
31
32
                public:
32
 
                        virtual ~IPipelineProperties() {}
 
33
                        
 
34
                        IPipelineProperties();
 
35
 
 
36
                        virtual ~IPipelineProperties();
 
37
 
 
38
                        //------------------------------------------------------------------------------------------------
 
39
                        //region mandatory
33
40
 
34
41
                        /** Updates **/
35
42
                        virtual void Update() = 0;
37
44
                        /** Updates output information **/
38
45
                        virtual void UpdateInformation() = 0;
39
46
 
40
 
                        /** Sets camera custom orientation **/
41
 
                        virtual void SetCustomOrientation(GNC::GCS::Vector3D& camera_focal_point, GNC::GCS::Vector3D& camera_position, GNC::GCS::Vector3D& camera_view_up, double& rotation) = 0;
42
 
 
43
 
                        /* Gets direction cosines */
 
47
                        /** Gets original (3D Volume) direction cosines **/
44
48
                        virtual const GNC::GCS::Ptr<GNC::GCS::IGinkgoMatrix4x4> GetDirection() = 0;
45
49
                
46
 
                        /** Gets the output origin **/
 
50
                        /** Gets the original (3D Volume) origin **/
 
51
                        virtual void GetOrigin(double origin[3]) = 0;
 
52
                
 
53
                        /** Gets the original (3D Volume) spacing **/
 
54
                        virtual void GetSpacing(double spacing[3]) = 0;
 
55
                
 
56
                        /** Gets the original (3D Volume) dimensions **/
 
57
                        virtual void GetDimensions(int dims[3]) = 0;
 
58
 
 
59
                        /* Gets the slice direction cosines */
 
60
                        virtual const GNC::GCS::Ptr<GNC::GCS::IGinkgoMatrix4x4> GetOutputDirection() = 0;
 
61
                
 
62
                        /** Gets the slice output origin **/
47
63
                        virtual void GetOutputOrigin(double origin[3]) = 0;
48
64
                
49
 
                        /** Gets the output spacing **/
 
65
                        /** Gets the slice output spacing **/
50
66
                        virtual void GetOutputSpacing(double spacing[3]) = 0;
51
67
                
52
 
                        /**Gets the output dimensions **/
53
 
                        virtual void GetOutputDimensions(int currentDimensions[3]) = 0;  
 
68
                        /**Gets the slice output dimensions **/
 
69
                        virtual void GetOutputDimensions(int currentDimensions[3]) = 0;
 
70
 
 
71
 
 
72
                        //endregion
 
73
 
 
74
                        //------------------------------------------------------------------------------------------------
 
75
                        //region helpers
 
76
                        
 
77
                        /**Gets the original (3D Volume) dimensions as double floating point**/
 
78
                        void GetFPDimensions(double dims[3]);
 
79
 
 
80
                        /**Gets the slice output dimensions as double floating point**/
 
81
                        void GetFPOutputDimensions(double currentDimensions[3]);
 
82
 
 
83
                        //endregion
 
84
 
 
85
                        //------------------------------------------------------------------------------------------------
 
86
                        //region optional
 
87
 
 
88
                        /** Sets camera custom orientation **/
 
89
                        virtual void SetCustomOrientation(GNC::GCS::Vector3D& camera_focal_point, GNC::GCS::Vector3D& camera_position, GNC::GCS::Vector3D& camera_view_up, double& rotation);
54
90
 
55
91
                        /** Gets the output current slice number **/
56
 
                        virtual int GetCurrentSliceIndex() const = 0;
 
92
                        virtual int GetCurrentSliceIndex() const;
 
93
 
 
94
                        //endregion
 
95
 
57
96
                };
58
97
                //endregion
59
98
        }