This is a multi-part message in MIME format.
------_=_NextPart_001_01C59043.DFAAEFAD
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
The camera is working now. For the sake of completeness in the achieve
I thought I'd post the code I'm using.
=20
=20
There are a few global variables:
FlyCaptureContext gContext; //Handle for PG
camera
FlyCaptureImage gImage; //The raw image taken
from camera
FlyCaptureImage gImageConverted; //Converted image
=20
An initialisation routine:
static bool ARSetupCameraPG()
{
=20 // Set camera image parameters
=20 FlyCaptureVideoMode ffFormat =3D
FLYCAPTURE_VIDEOMODE_640x480RGB;
=20 FlyCaptureFrameRate ffSpeed =3D FLYCAPTURE_FRAMERATE_15;
=20
=20 ARParam wparam;
=20
=20 //Create a context for the camera
=20 flycaptureCreateContext(&gContext);
=20 =20
=20 //Initialise camera and associate with context
=20 flycaptureInitialize(gContext, 0);
=20 =20
=20 //Start it up
=20 flycaptureStart(gContext, ffFormat, ffSpeed);
=20
=20 // AR toolkit parameter setup
=20 arParamLoad(cparam_name, 1, &wparam);
=20 arParamChangeSize(&wparam, 640, 480, &gARTCparam);
=20 arInitCparam(&gARTCparam);
=20
=20 //Assign memory for raw captured image
=20 memset( &gImage, 0x0, sizeof( FlyCaptureImage ) );
=20
=20 //Set pixel format for converted image
=20 gImageConverted.pixelFormat =3D FLYCAPTURE_BGRU;
=20
=20 //Assign memory for converted image
=20 gImageConverted.pData =3D new unsigned char[ 640 * 480 * 4 =
];
=20
=20 return true;
}
=20
Then in the main loop there are 3 stages to getting an ARToolkit
compatible image:
=20
//Capture an image from the camera
flycaptureGrabImage2( gContext, &gImage )
=20
//Convert the image
flycaptureConvertImage( gContext, &gImage, &gImageConverted );
=20
//ARToolkit compatible
gARTImage =3D (ARUint8*)gImageConverted.pData;
=20
=20
=20
All error checking has been removed to make the code shorter. The
flycapture routines return a FLYCAPTURE_OK value if everything worked.
=20
If you see any blatant errors or can suggest improvements I'd be pleased
to hear them.
=20
Matthew
=20
=20
________________________________
From: owner-artoolkit@h ..................
[mailto:owner-artoolkit@h ..................] On Behalf Of Leach, Matthew
Sent: 12 July 2005 17:04
To: artoolkit@h ..................
Subject: Point Grey Firefly2
=20
To recap I was having difficulty with a Point Grey FireFly2 firewire
camera, because PCMCIA cards can't supply power. You might be
interested to know that I just patched a 9v battery into the firewire
cable and its working fine (though the batteries don't last long).
=20
Now to the task of actually using it with ARToolkit. All advice seems
to be to go with the Point Grey API, so I was hoping that someone could
give me some example code (the simpler the better) for doing this. I
found some posted by Blair MacIntyre in the achieve, but I can't be sure
I've removed the formatting characters correctly:
=20
http://www.hitl.washington.edu/artoolkit/mail-archive/message-thread-006
79-High-resolution-Point-Gr.html
=20
Thanks
=20
Matthew
=20
=20
=20
=20
=20
=20
-
This message is intended for the addressee(s) only and should not be read=
, copied or disclosed to anyone else outwith the University without the p=
ermission of the sender.
It is your responsibility to ensure that this message and any attachments=
=20are scanned for viruses or other defects. Napier University does not a=
ccept liability for any loss
or damage which may result from this email or any attachment, or for erro=
rs or omissions arising after it was sent. Email is not a secure medium. =
Email entering the=20
University's system is subject to routine monitoring and filtering by the=
=20University.=20
------_=_NextPart_001_01C59043.DFAAEFAD
Content-Type: text/html;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-mi=
crosoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:wo=
rd" xmlns=3D"http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
=20/* Font Definitions */
=20@f ........
=09{font-family:Tahoma;
=09panose-1:2 11 6 4 3 5 4 4 2 4;}
=20/* Style Definitions */
=20p.MsoNormal, li.MsoNormal, div.MsoNormal
=09{margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:12.0pt;
=09font-family:"Times New Roman";}
a:link, span.MsoHyperlink
=09{color:blue;
=09text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
=09{color:purple;
=09text-decoration:underline;}
span.EmailStyle17
=09{mso-style-type:personal;
=09font-family:Arial;
=09color:windowtext;}
span.EmailStyle18
=09{mso-style-type:personal-reply;
=09font-family:Arial;
=09color:navy;}
@p ... Section1
=09{size:595.3pt 841.9pt;
=09margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
=09{page:Section1;}
-->
</style>
</head>
<body lang=3DEN-GB link=3Dblue vlink=3Dpurple>
<div class=3DSection1>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>The camera is working now. For=
=20the
sake of completeness in the achieve I thought I’d post the code I&#=
8217;m
using.<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><b><font size=3D2 color=3Dnavy face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold'>=
There
are a few global variables:<o:p></o:p></span></font></b></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>FlyCaptureContext &=
nbsp; gContext; &nbs=
p;  =
; //Handle
for PG camera<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>FlyCaptureImage &nb=
sp; gImage; &n=
bsp; //The
raw image taken from camera<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>FlyCaptureImage &nb=
sp; gImageConverted;  =
; //Converted
image<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><b><font size=3D2 color=3Dnavy face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold'>=
An
initialisation routine:<o:p></o:p></span></font></b></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>static bool ARSetupCameraPG()<o:p></=
o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>{<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
//
Set camera image parameters<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
FlyCaptureVideoMode
ffFormat =3D FLYCAPTURE_VIDEOMODE_640x480RGB;<o:p></o:p></span></font></p=
>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
FlyCaptureFrameRate
ffSpeed =3D FLYCAPTURE_FRAMERATE_15;<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
ARParam  =
; wparam;<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
//Create
a context for the camera<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
flycaptureCreateContext(&gContext);<o:=
p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
//Initialise
camera and associate with context<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
flycaptureInitialize(gContext,
0);<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
//Start
it up<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
flycaptureStart(gContext,
ffFormat, ffSpeed);<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
//
AR toolkit parameter setup<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
arParamLoad(cparam_name,
1, &wparam);<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
arParamChangeSize(&wparam,
640, 480, &gARTCparam);<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
arInitCparam(&gARTCparam);<o:p></o:p><=
/span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
//Assign
memory for raw captured image<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
memset(
&gImage, 0x0, sizeof( FlyCaptureImage ) );<o:p></o:p></span></font></=
p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
//Set
pixel format for converted image<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
gImageConverted.pixelFormat
=3D FLYCAPTURE_BGRU;<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
//Assign
memory for converted image<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
gImageConverted.pData
=3D new unsigned char[ 640 * 480 * 4 ];<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'> =
return
true;<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>}<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><b><font size=3D2 color=3Dnavy face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold'>=
Then in
the main loop there are 3 stages to getting an ARToolkit compatible image=
:</span></font></b><font
size=3D2 color=3Dnavy face=3DArial><span style=3D'font-size:10.0pt;font-f=
amily:Arial;
color:navy'><o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>//Capture an image from the camera<o=
:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>flycaptureGrabImage2( gContext,
&gImage )<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>//Convert the image<o:p></o:p></span=
></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>flycaptureConvertImage( gContext,
&gImage, &gImageConverted );<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>//ARToolkit compatible<o:p></o:p></s=
pan></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>gARTImage =3D
(ARUint8*)gImageConverted.pData;<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>All error checking has been removed =
to
make the code shorter. The flycapture routines return a FLYCAPTURE_=
OK value
if everything worked.<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>If you see any blatant errors or can=
suggest improvements I’d be pleased to hear them.<o:p></o:p></span>=
</font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Matthew<o:p></o:p></span></font></p>=
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span style=
=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<div>
<div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font s=
ize=3D3
face=3D"Times New Roman"><span lang=3DEN-US style=3D'font-size:12.0pt'>
<hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1>
</span></font></div>
<p class=3DMsoNormal><b><font size=3D2 face=3DTahoma><span lang=3DEN-US
style=3D'font-size:10.0pt;font-family:Tahoma;font-weight:bold'>From:</spa=
n></font></b><font
size=3D2 face=3DTahoma><span lang=3DEN-US style=3D'font-size:10.0pt;font-=
family:Tahoma'>
owner-artoolkit@h ..................
[mailto:owner-artoolkit@h ..................] <b><span style=3D'font-weigh=
t:bold'>On
Behalf Of </span></b>Leach, Matthew<br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> 12 July 2005 17:04<b=
r>
<b><span style=3D'font-weight:bold'>To:</span></b> artoolkit@h ...........=
ton.edu<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> Point Grey Firefl=
y2</span></font><span
lang=3DEN-US><o:p></o:p></span></p>
</div>
<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D=
'font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'>To recap I was having difficulty with a Point Grey Fir=
eFly2
firewire camera, because PCMCIA cards can’t supply power. You=
=20might
be interested to know that I just patched a 9v battery into the firewire =
cable
and its working fine (though the batteries don’t last long).<o:p></=
o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'>Now to the task of actually using it with ARToolkit.&n=
bsp;
All advice seems to be to go with the Point Grey API, so I was hoping tha=
t
someone could give me some example code (the simpler the better) for doin=
g
this. I found some posted by Blair MacIntyre in the achieve, but I
can’t be sure I’ve removed the formatting characters correctl=
y:<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'><a
href=3D"http://www.hitl.washington.edu/artoolkit/mail-archive/message-thr=
ead-00679-High-resolution-Point-Gr.html">http://www.hitl.washington.edu/a=
rtoolkit/mail-archive/message-thread-00679-High-resolution-Point-Gr.html<=
/a><o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'>Thanks<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'>Matthew<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=3D'font-size=
:10.0pt;
font-family:Arial'>-<o:p></o:p></span></font></p>
</div>
<SPAN=20
style=3D"FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Ar=
ial"><FONT=20
size=3D3>This message is intended for the addressee(s) only and should no=
t be=20
read, copied or disclosed to anyone else outwith the University without t=
he=20
permission of the sender. It is your responsibility to ensure that this m=
essage=20
and any attachments are scanned for viruses or other defects. Napier Univ=
ersity=20
does not accept liability for any loss or damage which may result from th=
is=20
email or any attachment, or for errors or omissions arising after it was =
sent.=20
Email is not a secure medium. Email entering the University's system is s=
ubject=20
to routine monitoring and filtering by the University.</FONT>=20
</SPAN>
</body>
</html>
------_=_NextPart_001_01C59043.DFAAEFAD--
|