Developer documentation | Axl-2.5.1

axlFieldReadersFactory.cpp
Go to the documentation of this file.
1 /* axlFieldReadersFactory.cpp ---
2  *
3  * Author: Anais Ducoffe
4  * Copyright (C) 2013 - Anais Ducoffe, Inria.
5  */
6 
7 
8 /* Commentary:
9  *
10  */
11 
12 /* Change log:
13  *
14  */
15 
16 #include "axlFieldReadersFactory.h"
17 
18 //all field reader types
28 #include "axlFieldDiscreteReader.h"
29 
30 
31 // /////////////////////////////////////////////////////////////////
32 //
33 // /////////////////////////////////////////////////////////////////
34 
35 axlFieldReadersInterface::axlFieldReadersInterface(QWidget *parent) : QFrame(parent)
36 {
38 }
39 
41 {
42 
43 }
44 
46 {
48 }
49 
51 {
53 }
54 
55 // /////////////////////////////////////////////////////////////////
56 //
57 // /////////////////////////////////////////////////////////////////
58 
59 class axlFieldReadersFactoryPrivate
60 {
61 public:
63 };
64 
66 {
67  if(!s_instance)
69 
70  return s_instance;
71 }
72 
73 bool axlFieldReadersFactory::registerFieldReaders(const QString& interface_name, axlFieldReadersCreator func)
74 {
75  if(!d->creators.contains(interface_name))
76  d->creators.insert(interface_name, func);
77 
78  return true;
79 }
80 
81 
83 {
84 
85  d->creators.insert("axlFieldSpatialCoordinates", createaxlFieldSpatialCoordinatesReader);
86  d->creators.insert("axlFieldSpatialPointDistance", createaxlFieldSpatialPointDistanceReader);
87  d->creators.insert("axlFieldParametricCurveTangentVector", createaxlFieldParametricCurveTangentVectorReader);
88  d->creators.insert("axlFieldParametricSurfaceTangentVector", createaxlFieldParametricSurfaceTangentVectorReader);
89  d->creators.insert("axlFieldParametricVolumeTangentVector", createaxlFieldParametricVolumeTangentVectorReader);
90  d->creators.insert("axlFieldParametricNormalVector", createaxlFieldParametricSurfaceNormalVectorReader);
91  d->creators.insert("axlFieldParametricCurve", createaxlFieldParametricCurveReader);
92  d->creators.insert("axlFieldParametricSurface", createaxlFieldParametricSurfaceReader);
93  d->creators.insert("axlFieldParametricVolume", createaxlFieldParametricVolumeReader);
94  d->creators.insert("axlFieldDiscrete", createaxlFieldDiscreteReader);
95 
96 }
97 
98 dtkAbstractDataReader *axlFieldReadersFactory::create(const QString& interface_name)
99 {
100  if(!d->creators.contains(interface_name))
101  return NULL;
102 
103  return d->creators[interface_name]();
104 
105 }
106 
107 axlFieldReadersFactory::axlFieldReadersFactory(void) : QObject(), d(new axlFieldReadersFactoryPrivate)
108 {
109  initialize();
110 
111 }
112 
113 axlFieldReadersFactory::~axlFieldReadersFactory(void)
114 {
115  delete d;
116 
117  d = NULL;
118 }
119 
dtkAbstractDataReader * createaxlFieldParametricSurfaceNormalVectorReader(void)
dtkAbstractDataReader * createaxlFieldParametricVolumeTangentVectorReader(void)
bool registerFieldReaders(const QString &interface_name, axlFieldReadersCreator func)
dtkAbstractDataReader * createaxlFieldParametricSurfaceTangentVectorReader(void)
dtkAbstractDataReader * createaxlFieldSpatialPointDistanceReader(void)
QHash< QString, axlFieldReadersCreator > axlFieldReadersCreatorHash
dtkAbstractDataReader * create(const QString &interface_name)
dtkAbstractDataReader * createaxlFieldParametricVolumeReader(void)
void setActorFactorySingleton(axlFieldReadersFactory *actorFactorySingleton)
dtkAbstractDataReader * createaxlFieldParametricSurfaceReader(void)
dtkAbstractDataReader * createaxlFieldDiscreteReader(void)
axlFieldReadersFactory * m_actorFactorySingleton
AXLCORE_EXPORT dtkAbstractDataReader * createaxlFieldParametricCurveReader(void)
dtkAbstractDataReader * createaxlFieldSpatialCoordinatesReader(void)
static axlFieldReadersFactory * instance(void)
axlFieldReadersFactory * actorFactorySingleton(void)
dtkAbstractDataReader * createaxlFieldParametricCurveTangentVectorReader(void)
axlFieldReadersInterface(QWidget *parent=0)
static axlFieldReadersFactory * s_instance