add spaces for intel compiler

This commit is contained in:
cxgeorge 2001-04-09 02:42:39 +00:00
parent 705bd6a630
commit 1a3321d53a
53 changed files with 80 additions and 79 deletions

View File

@ -72,7 +72,7 @@ PUBLISHED:
string which_anim_playing() const;
private:
typedef map<string, PT(AnimControl)> Controls;
typedef map<string, PT(AnimControl) > Controls;
Controls _controls;
CPT_Event _stop_event;
AnimControl *_last_started_control;

View File

@ -49,7 +49,7 @@ protected:
void write_descendants(ostream &out, int indent_level) const;
protected:
typedef vector<PT(AnimGroup)> Children;
typedef vector< PT(AnimGroup) > Children;
Children _children;
AnimBundle *_root;

View File

@ -48,7 +48,7 @@ protected:
virtual void pick_channel_index(list<int> &holes, int &next) const;
virtual void bind_hierarchy(AnimGroup *anim, int channel_index);
typedef vector<PT(AnimChannelBase)> Channels;
typedef vector< PT(AnimChannelBase) > Channels;
Channels _channels;
public:

View File

@ -79,7 +79,7 @@ protected:
virtual void pick_channel_index(list<int> &holes, int &next) const;
virtual void bind_hierarchy(AnimGroup *anim, int channel_index);
typedef vector<PT(PartGroup)> Children;
typedef vector< PT(PartGroup) > Children;
Children _children;
public:

View File

@ -44,7 +44,7 @@ PUBLISHED:
void clear_local_transforms();
private:
typedef set<PT(NodeRelation)> ArcList;
typedef set< PT(NodeRelation) > ArcList;
ArcList _net_transform_arcs;
ArcList _local_transform_arcs;

View File

@ -41,7 +41,7 @@ protected:
virtual void handle_entries()=0;
protected:
typedef vector<PT(CollisionEntry)> Entries;
typedef vector< PT(CollisionEntry) > Entries;
typedef map<PT(CollisionNode), Entries> FromEntries;
FromEntries _from_entries;

View File

@ -36,7 +36,7 @@ PUBLISHED:
CollisionEntry *get_entry(int n) const;
private:
typedef vector<PT(CollisionEntry)> Entries;
typedef vector< PT(CollisionEntry) > Entries;
Entries _entries;
public:

View File

@ -59,7 +59,7 @@ private:
CollideMask _into_collide_mask;
bool _collide_geom;
typedef vector<PT(CollisionSolid)> Solids;
typedef vector< PT(CollisionSolid) > Solids;
Solids _solids;
public:

View File

@ -85,7 +85,7 @@ protected:
virtual void recompute_viz(Node *parent)=0;
typedef vector<PT(NodeRelation)> VizArcs;
typedef vector< PT(NodeRelation) > VizArcs;
VizArcs _solid_viz_arcs;
VizArcs _wireframe_viz_arcs;
VizArcs _other_viz_arcs;

View File

@ -81,7 +81,7 @@ private:
PT(CollisionHandler) _default_handler;
TypeHandle _graph_type;
typedef map<PT(CollisionNode), PT(CollisionHandler)> Colliders;
typedef map<PT(CollisionNode), PT(CollisionHandler) > Colliders;
Colliders _colliders;
typedef vector<CollisionNode *> OrderedColliders;
OrderedColliders _ordered_colliders;

View File

@ -60,7 +60,7 @@ public:
virtual void write(ostream &out, int indent_level = 0) const;
private:
typedef map<PT_Node, PT(CullState)> CullStates;
typedef map<PT_Node, PT(CullState) > CullStates;
CullStates _cull_states;
typedef map<PT(NodeRelation), CullStateSubtree *> Subtrees;

View File

@ -104,8 +104,8 @@ private:
AllAttributesWrapper _initial_state;
typedef map<string, PT(GeomBin)> ToplevelBins;
typedef multimap<int, PT(GeomBin)> SubBins;
typedef map<string, PT(GeomBin) > ToplevelBins;
typedef multimap<int, PT(GeomBin) > SubBins;
ToplevelBins _toplevel_bins;
SubBins _sub_bins;
PT(GeomBin) _default_bin;

View File

@ -52,7 +52,7 @@ protected:
virtual PT(GeomBin) detach();
private:
typedef vector<PT(GeomBin)> SubBins;
typedef vector< PT(GeomBin) > SubBins;
SubBins _sub_bins;
public:

View File

@ -39,7 +39,7 @@ public:
virtual void write(ostream &out, int indent_level = 0) const;
private:
typedef vector<PT(CullState)> CullStates;
typedef vector< PT(CullState) > CullStates;
CullStates _cull_states;
public:

View File

@ -63,7 +63,7 @@ private:
GraphicsWindow *_window;
bool _is_active;
typedef vector<PT(GraphicsLayer)> GraphicsLayers;
typedef vector< PT(GraphicsLayer) > GraphicsLayers;
GraphicsLayers _layers;
private:

View File

@ -69,7 +69,7 @@ private:
GraphicsChannel *_channel;
bool _is_active;
typedef vector<PT(DisplayRegion)> DisplayRegions;
typedef vector< PT(DisplayRegion) > DisplayRegions;
DisplayRegions _display_regions;
private:

View File

@ -103,7 +103,7 @@ protected:
private:
// Some private type declarations. These must be declared here so
// we can declare the public iterator types, below.
typedef vector<PT(GraphicsWindow)> Windows;
typedef vector< PT(GraphicsWindow) > Windows;
typedef vector<GraphicsPipe *> Pipes;
Windows _windows;

View File

@ -193,7 +193,7 @@ protected:
void declare_channel(int index, GraphicsChannel *chan);
private:
typedef vector<PT(GraphicsChannel)> Channels;
typedef vector< PT(GraphicsChannel) > Channels;
Channels _channels;
public:

View File

@ -292,7 +292,7 @@ server_add_file(string mfname, string fname) {
PT(FileRecord) fr = new FileRecord(fname);
// Find the multifile with mfname
vector<PT(MultifileRecord)>::iterator i = _server_db._mfile_records.begin();
vector< PT(MultifileRecord) >::iterator i = _server_db._mfile_records.begin();
for(; i != _server_db._mfile_records.end(); ++i) {
if (mfname == (*i)->_name) {
(*i)->add_file_record(fr);
@ -353,7 +353,7 @@ output(ostream &out) const {
<< " size: " << _size << endl
<< " status: " << _status << endl;
out << "--------------------------------------------------" << endl;
vector<PT(FileRecord)>::const_iterator i = _file_records.begin();
vector< PT(FileRecord) >::const_iterator i = _file_records.begin();
for(; i != _file_records.end(); ++i) {
(*i)->output(out);
}
@ -389,7 +389,7 @@ get_file_name(int index) const {
////////////////////////////////////////////////////////////////////
bool DownloadDb::MultifileRecord::
file_exists(string fname) const {
vector<PT(FileRecord)>::const_iterator i = _file_records.begin();
vector< PT(FileRecord) >::const_iterator i = _file_records.begin();
for(; i != _file_records.end(); ++i) {
if (fname == (*i)->_name) {
return true;
@ -406,7 +406,7 @@ file_exists(string fname) const {
////////////////////////////////////////////////////////////////////
PT(DownloadDb::FileRecord) DownloadDb::MultifileRecord::
get_file_record_named(string fname) const {
vector<PT(FileRecord)>::const_iterator i = _file_records.begin();
vector< PT(FileRecord) >::const_iterator i = _file_records.begin();
for(; i != _file_records.end(); ++i) {
if (fname == (*i)->_name) {
return (*i);
@ -458,7 +458,7 @@ Db(void) {
////////////////////////////////////////////////////////////////////
void DownloadDb::Db::
output(ostream &out) const {
vector<PT(MultifileRecord)>::const_iterator i = _mfile_records.begin();
vector< PT(MultifileRecord) >::const_iterator i = _mfile_records.begin();
for(; i != _mfile_records.end(); ++i) {
(*i)->output(out);
}
@ -492,7 +492,7 @@ get_multifile_name(int index) const {
////////////////////////////////////////////////////////////////////
bool DownloadDb::Db::
multifile_exists(string mfname) const {
vector<PT(MultifileRecord)>::const_iterator i = _mfile_records.begin();
vector< PT(MultifileRecord) >::const_iterator i = _mfile_records.begin();
for(; i != _mfile_records.end(); ++i) {
if (mfname == (*i)->_name) {
return true;
@ -508,7 +508,7 @@ multifile_exists(string mfname) const {
////////////////////////////////////////////////////////////////////
PT(DownloadDb::MultifileRecord) DownloadDb::Db::
get_multifile_record_named(string mfname) const {
vector<PT(MultifileRecord)>::const_iterator i = _mfile_records.begin();
vector< PT(MultifileRecord) >::const_iterator i = _mfile_records.begin();
for(; i != _mfile_records.end(); ++i) {
if (mfname == (*i)->_name) {
return (*i);
@ -756,7 +756,7 @@ write(ofstream &write_stream) {
PN_int32 header_length;
// Iterate over the multifiles writing them to the stream
vector<PT(MultifileRecord)>::const_iterator i = _mfile_records.begin();
vector< PT(MultifileRecord) >::const_iterator i = _mfile_records.begin();
for(; i != _mfile_records.end(); ++i) {
_datagram.clear();
@ -795,7 +795,7 @@ write(ofstream &write_stream) {
// Now iterate over this multifile's files writing them to the stream
// Iterate over the multifiles writing them to the stream
vector<PT(FileRecord)>::const_iterator j = (*i)->_file_records.begin();
vector< PT(FileRecord) >::const_iterator j = (*i)->_file_records.begin();
for(; j != (*i)->_file_records.end(); ++j) {
// Clear the datagram before we jam a bunch of stuff on it
_datagram.clear();

View File

@ -121,7 +121,7 @@ public:
string _name;
};
typedef vector<PT(FileRecord)> FileRecords;
typedef vector< PT(FileRecord) > FileRecords;
class EXPCL_PANDAEXPRESS MultifileRecord : public ReferenceCount {
public:
@ -141,7 +141,7 @@ public:
FileRecords _file_records;
};
typedef vector<PT(MultifileRecord)> MultifileRecords;
typedef vector< PT(MultifileRecord) > MultifileRecords;
class EXPCL_PANDAEXPRESS Db {
public:

View File

@ -46,8 +46,8 @@ public:
private:
typedef vector<PTA_float> vector_Vfloat;
typedef vector<PTA_Colorf> vector_Vcolorf;
typedef vector<PT(RenderRelation)> vector_relation;
typedef vector<PT(Texture)> vector_texture;
typedef vector< PT(RenderRelation) > vector_relation;
typedef vector< PT(Texture) > vector_texture;
vector_texture _flares;
PT(Texture) _blind;

View File

@ -263,7 +263,7 @@ private:
// Then we walk through that list and create a Bins/Nodes structure
// for each group, which separates out the nodes into the individual
// bins.
typedef vector<PT(EggNode)> Nodes;
typedef vector< PT(EggNode) > Nodes;
typedef vector<Nodes> Bins;
void collect_nodes(EggGroupNode *group);

View File

@ -45,7 +45,7 @@ private:
// We define the list of children as a list and not a vector, so we
// can avoid the bad iterator-invalidating properties of vectors as
// we insert/delete elements.
typedef list<PT(EggNode)> Children;
typedef list< PT(EggNode) > Children;
// Here begins the actual public interface to EggGroupNode.

View File

@ -21,7 +21,7 @@
////////////////////////////////////////////////////////////////////
class EXPCL_PANDAEGG EggNurbsSurface : public EggSurface {
public:
typedef list<PT(EggNurbsCurve)> Curves;
typedef list< PT(EggNurbsCurve) > Curves;
typedef Curves Loop;
typedef list<Loop> Loops;
typedef Loops Trim;

View File

@ -30,14 +30,14 @@ class EXPCL_PANDAEGG EggTextureCollection {
private:
typedef map<PT(EggTexture), int> Textures;
typedef vector<PT(EggTexture)> OrderedTextures;
typedef vector< PT(EggTexture) > OrderedTextures;
public:
typedef OrderedTextures::const_iterator iterator;
typedef iterator const_iterator;
typedef OrderedTextures::size_type size_type;
typedef map<PT(EggTexture), PT(EggTexture)> TextureReplacement;
typedef map<PT(EggTexture), PT(EggTexture) > TextureReplacement;
// Here begins the actual public interface to EggTextureCollection.

View File

@ -28,7 +28,7 @@
class EggNode;
class EggVertex;
typedef set<PT(EggTexture)> EggTextures;
typedef set< PT(EggTexture) > EggTextures;
typedef map<Filename, EggTextures> EggTextureFilenames;

View File

@ -48,7 +48,7 @@
// and push it onto the stack. At any given time, the top of the
// stack is the EggObject we are currently scanning.
typedef vector<PT(EggObject)> EggStack;
typedef vector< PT(EggObject) > EggStack;
static EggStack egg_stack;
// There's one "top-level" egg node, which is where we should parent
@ -59,17 +59,17 @@ static EggGroupNode *egg_top_node;
// We need a table mapping vertex pool names to vertex pools.
typedef map<string, PT(EggVertexPool)> VertexPools;
typedef map<string, PT(EggVertexPool) > VertexPools;
static VertexPools vertex_pools;
// And another one mapping texture names to textures.
typedef map<string, PT(EggTexture)> Textures;
typedef map<string, PT(EggTexture) > Textures;
static Textures textures;
// And again for material names to materials.
typedef map<string, PT(EggMaterial)> Materials;
typedef map<string, PT(EggMaterial) > Materials;
static Materials materials;
// We need to be able to save the index number requested for a vertex

View File

@ -31,7 +31,7 @@ is_done_token(int id) {
}
// Now we can search really_done for our desired id.
list<PT(TokenType)>::iterator found;
list< PT(TokenType) >::iterator found;
found = find_if(_really_done.begin(), _really_done.end(),
TokenMatch<TokenType>(id));
@ -59,7 +59,7 @@ get_done_token(int id) {
}
// Now we can search really_done for our desired id.
list<PT(TokenType)>::iterator found;
list< PT(TokenType) >::iterator found;
found = find_if(_really_done.begin(), _really_done.end(),
TokenMatch<TokenType>(id));

View File

@ -58,7 +58,7 @@ public:
// extracted into the local list so we can safely search for and
// remove a particular token from the middle of the list (we can
// only remove from the head of a circular buffer).
list<PT(TokenType)> _really_done;
list< PT(TokenType) > _really_done;
};
#include "tokenBoard.I"

View File

@ -55,7 +55,7 @@ private:
static TexturePool *get_ptr();
static TexturePool *_global_ptr;
typedef map<string, PT(Texture)> Textures;
typedef map<string, PT(Texture) > Textures;
Textures _textures;
};

View File

@ -44,7 +44,7 @@ PUBLISHED:
int compare_to(const NodeAttributes &other) const;
private:
typedef map<TypeHandle, PT(NodeAttribute)> Attributes;
typedef map< TypeHandle, PT(NodeAttribute) > Attributes;
public:
// STL-like definitions to expose the map within NodeAttributes to
// external adjustment. Beware! These are not safe to use outside

View File

@ -236,7 +236,7 @@ template<class Transition>
INLINE bool
get_transition_into(Transition *&ptr, const NodeRelation *arc);
typedef vector<PT(NodeRelation)> DownRelationPointers;
typedef vector< PT(NodeRelation) > DownRelationPointers;
typedef map<TypeHandle, DownRelationPointers> DownRelations;
typedef vector<NodeRelation *> UpRelationPointers;

View File

@ -49,7 +49,7 @@ public:
void remove_all_from_arc(NodeRelation *arc);
private:
typedef map<TypeHandle, PT(NodeTransition)> Transitions;
typedef map<TypeHandle, PT(NodeTransition) > Transitions;
public:
// STL-like definitions to allow read-only traversal of the

View File

@ -102,7 +102,7 @@ tmap_merge_union(InputIterator1 first1, InputIterator1 last1,
++result;
} else {
PT(NodeAttribute) c = (*first1).second->merge((*first2).second);
*result = pair<TypeHandle, PT(NodeAttribute)>((*first1).first, c);
*result = pair<TypeHandle, PT(NodeAttribute) >((*first1).first, c);
++first1;
++first2;
++result;
@ -194,7 +194,7 @@ tmap_arc_compose(InputIterator1 first1, InputIterator1 last1,
PT(NodeTransition) c = (*first1).second->compose((*first2).second);
if (c != (NodeTransition *)NULL) {
c->added_to_arc(to_arc);
*result = pair<TypeHandle, PT(NodeTransition)>((*first1).first, c);
*result = pair<TypeHandle, PT(NodeTransition) >((*first1).first, c);
++result;
}
++first1;
@ -334,7 +334,7 @@ tmap_invert_compose(InputIterator1 first1, InputIterator1 last1,
(*first2).second);
if (!ic.is_identity()) {
// Only bother to store the result if it's not identity.
*result = pair<TypeHandle, PT(NodeTransition)>((*first1).first, ic);
*result = pair<TypeHandle, PT(NodeTransition) >((*first1).first, ic);
++result;
}
++first1;
@ -721,13 +721,13 @@ tmap_apply(InputIterator1 first1, InputIterator1 last1,
++first1;
++result;
} else if ((*first2).first < (*first1).first) {
*result = pair<TypeHandle, PT(NodeAttribute)>
*result = pair<TypeHandle, PT(NodeAttribute) >
((*first2).first,
NodeTransitionCacheEntry::apply(NULL, (*first2).second));
++first2;
++result;
} else {
*result = pair<TypeHandle, PT(NodeAttribute)>
*result = pair<TypeHandle, PT(NodeAttribute) >
((*first1).first,
NodeTransitionCacheEntry::apply((*first1).second, (*first2).second));
++first1;
@ -743,7 +743,7 @@ tmap_apply(InputIterator1 first1, InputIterator1 last1,
}
while (first2 != last2) {
*result = pair<TypeHandle, PT(NodeAttribute)>
*result = pair<TypeHandle, PT(NodeAttribute) >
((*first2).first,
NodeTransitionCacheEntry::apply(NULL, (*first2).second));
++first2;

View File

@ -12,7 +12,7 @@
class EXPCL_PANDA GuiCollection : public GuiItem {
private:
typedef vector<PT(GuiItem)> Items;
typedef vector< PT(GuiItem) > Items;
Items _items;

View File

@ -182,7 +182,7 @@ typedef SimpleQueryLerpFunctor<LVector4f> LVector4fQueryLerpFunctor;
class EXPCL_PANDA MultiLerpFunctor : public LerpFunctor {
private:
typedef set<PT(LerpFunctor)> Functors;
typedef set< PT(LerpFunctor) > Functors;
Functors _funcs;
public:
MultiLerpFunctor(void) {}

View File

@ -60,7 +60,7 @@ private:
static ModelPool *get_ptr();
static ModelPool *_global_ptr;
typedef map<string, PT(Node)> Models;
typedef map<string, PT(Node) > Models;
Models _models;
};

View File

@ -61,7 +61,7 @@ protected:
void add_writer(ConnectionWriter *writer);
void remove_writer(ConnectionWriter *writer);
typedef set<PT(Connection)> Connections;
typedef set< PT(Connection) > Connections;
typedef set<ConnectionReader *> Readers;
typedef set<ConnectionWriter *> Writers;
Connections _connections;

View File

@ -30,7 +30,7 @@ EXPORT_TEMPLATE_CLASS(EXPCL_PANDA, EXPTP_PANDA, QueuedReturn< PT(Connection) >);
// resources.
////////////////////////////////////////////////////////////////////
class EXPCL_PANDA QueuedConnectionManager : public ConnectionManager,
public QueuedReturn<PT(Connection)> {
public QueuedReturn< PT(Connection) > {
PUBLISHED:
QueuedConnectionManager();
~QueuedConnectionManager();

View File

@ -44,7 +44,7 @@ main(int argc, char *argv[]) {
QueuedConnectionListener listener(&cm, 1);
listener.add_connection(rendezvous);
typedef set<PT(Connection)> Clients;
typedef set< PT(Connection) > Clients;
Clients clients;
QueuedConnectionReader reader(&cm, 10);

View File

@ -39,7 +39,7 @@ main(int argc, char *argv[]) {
QueuedConnectionListener listener(&cm, 0);
listener.add_connection(rendezvous);
typedef set<PT(Connection)> Clients;
typedef set< PT(Connection) > Clients;
Clients clients;
QueuedConnectionReader reader(&cm, 1);

View File

@ -93,7 +93,7 @@ private:
void redraw();
private:
typedef vector<PT(ParametricCurve)> ParametricCurves;
typedef vector< PT(ParametricCurve) > ParametricCurves;
ParametricCurves _curves;
typedef list<ParametricCurveDrawer *> DrawerList;
DrawerList _drawers;

View File

@ -71,7 +71,7 @@ private:
float _num_ticks;
float _tick_scale;
typedef vector<PT(NodeRelation)> TickArcs;
typedef vector< PT(NodeRelation) > TickArcs;
TickArcs _tick_arcs;
public:

View File

@ -541,8 +541,8 @@ public:
};
// returns 0 if OK, # of errors if not OK
static int check_free_live_total_particles(vector<PT(SC_valuenamepair)> live_counts,
vector<PT(SC_valuenamepair)> dead_counts, vector<PT(SC_valuenamepair)> total_counts,
static int check_free_live_total_particles(vector< PT(SC_valuenamepair) > live_counts,
vector< PT(SC_valuenamepair) > dead_counts, vector< PT(SC_valuenamepair) > total_counts,
int print_all = 0) {
int val = 0;
@ -650,9 +650,9 @@ sanity_check() {
///////////////////////////////////////////////////////////////////
// check the numbers of free particles, live particles, and total particles
vector<PT(SC_valuenamepair)> live_counts;
vector<PT(SC_valuenamepair)> dead_counts;
vector<PT(SC_valuenamepair)> total_counts;
vector< PT(SC_valuenamepair) > live_counts;
vector< PT(SC_valuenamepair) > dead_counts;
vector< PT(SC_valuenamepair) > total_counts;
live_counts.push_back(new SC_valuenamepair(real_live_particle_count, "real_live_particle_count"));

View File

@ -75,7 +75,8 @@ private:
private:
// internal mechanics and bookkeeping
#ifdef WIN32_VC
#if defined(WIN32_VC) && !defined(__ICL) //__ICL is Intel C++
// Visual C++ seems to have a problem with building a map based on
// BaseCreateFunc. We'll have to typecast it on the way out.
typedef map<TypeHandle, void *> Creators;

View File

@ -41,7 +41,7 @@ public:
FactoryParam *get_param_of_type(TypeHandle type) const;
private:
typedef vector<PT(TypedReferenceCount)> Params;
typedef vector< PT(TypedReferenceCount) > Params;
Params _params;
};

View File

@ -35,7 +35,7 @@ public:
protected:
typedef map<int, PT(sgiHardwareChannel)> Channels;
typedef map<int, PT(sgiHardwareChannel) > Channels;
Channels _hw_chans;
virtual int get_num_hw_channels();

View File

@ -28,8 +28,8 @@
////////////////////////////////////////////////////////////////////
class EXPCL_SHADER ShaderTransition : public ImmediateTransition {
private:
// typedef vector<PT(Shader)> Shaders;
typedef list<PT(Shader)> Shaders;
// typedef vector< PT(Shader) > Shaders;
typedef list< PT(Shader) > Shaders;
typedef map<TypeHandle, int> ShaderOrder;
typedef map<PT(Shader), int> ShaderOverride;
typedef set<TypeHandle> ShaderBlend;

View File

@ -26,7 +26,7 @@ Configure(deadrec);
ConfigureFn(deadrec) {
}
typedef set<PT(Connection)> Clients;
typedef set< PT(Connection) > Clients;
static PT_Node smiley;
static RenderRelation* my_arc;

View File

@ -178,7 +178,7 @@ public:
virtual ~Viztex(void);
virtual void Flush(void);
protected:
typedef std::list<PT(GraphicsWindow)> winlist;
typedef std::list< PT(GraphicsWindow) > winlist;
typedef winlist::iterator winiter;
winlist _wins;

View File

@ -151,7 +151,7 @@ public:
virtual ~Viztex(void);
virtual void Flush(void);
protected:
typedef std::list<PT(GraphicsWindow)> winlist;
typedef std::list< PT(GraphicsWindow) > winlist;
typedef winlist::iterator winiter;
winlist _wins;

View File

@ -81,7 +81,7 @@ private:
ModifierButtons _mods;
PT(Control) _default_control;
typedef map<TypeHandle, PT(Control)> FineControls;
typedef map<TypeHandle, PT(Control) > FineControls;
class Child {
public:

View File

@ -87,7 +87,7 @@ private:
const MouseWatcherRegion *region,
const string &button_name = string());
typedef set<PT(MouseWatcherRegion)> Regions;
typedef set< PT(MouseWatcherRegion) > Regions;
Regions _regions;
bool _has_mouse;