[mapguide-commits] r1152 - trunk/MgDev/Common/MdfModel

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Mar 5 20:18:33 EST 2007


Author: waltweltonlair
Date: 2007-03-05 20:18:33 -0500 (Mon, 05 Mar 2007)
New Revision: 1152

Added:
   trunk/MgDev/Common/MdfModel/AreaUsage.cpp
   trunk/MgDev/Common/MdfModel/AreaUsage.h
   trunk/MgDev/Common/MdfModel/CompositeRule.cpp
   trunk/MgDev/Common/MdfModel/CompositeRule.h
   trunk/MgDev/Common/MdfModel/CompositeSymbolization.cpp
   trunk/MgDev/Common/MdfModel/CompositeSymbolization.h
   trunk/MgDev/Common/MdfModel/CompositeTypeStyle.cpp
   trunk/MgDev/Common/MdfModel/CompositeTypeStyle.h
   trunk/MgDev/Common/MdfModel/CompoundSymbolDefinition.cpp
   trunk/MgDev/Common/MdfModel/CompoundSymbolDefinition.h
   trunk/MgDev/Common/MdfModel/GraphicElement.cpp
   trunk/MgDev/Common/MdfModel/GraphicElement.h
   trunk/MgDev/Common/MdfModel/IGraphicElementVisitor.h
   trunk/MgDev/Common/MdfModel/ISymbolDefinitionVisitor.h
   trunk/MgDev/Common/MdfModel/IUsageVisitor.h
   trunk/MgDev/Common/MdfModel/Image.cpp
   trunk/MgDev/Common/MdfModel/Image.h
   trunk/MgDev/Common/MdfModel/LineUsage.cpp
   trunk/MgDev/Common/MdfModel/LineUsage.h
   trunk/MgDev/Common/MdfModel/Override.cpp
   trunk/MgDev/Common/MdfModel/Override.h
   trunk/MgDev/Common/MdfModel/Parameter.cpp
   trunk/MgDev/Common/MdfModel/Parameter.h
   trunk/MgDev/Common/MdfModel/Path.cpp
   trunk/MgDev/Common/MdfModel/Path.h
   trunk/MgDev/Common/MdfModel/PointUsage.cpp
   trunk/MgDev/Common/MdfModel/PointUsage.h
   trunk/MgDev/Common/MdfModel/ResizeBox.cpp
   trunk/MgDev/Common/MdfModel/ResizeBox.h
   trunk/MgDev/Common/MdfModel/SimpleSymbol.cpp
   trunk/MgDev/Common/MdfModel/SimpleSymbol.h
   trunk/MgDev/Common/MdfModel/SimpleSymbolDefinition.cpp
   trunk/MgDev/Common/MdfModel/SimpleSymbolDefinition.h
   trunk/MgDev/Common/MdfModel/SymbolDefinition.cpp
   trunk/MgDev/Common/MdfModel/SymbolDefinition.h
   trunk/MgDev/Common/MdfModel/SymbolInstance.cpp
   trunk/MgDev/Common/MdfModel/SymbolInstance.h
   trunk/MgDev/Common/MdfModel/Text.cpp
   trunk/MgDev/Common/MdfModel/Text.h
   trunk/MgDev/Common/MdfModel/TextFrame.cpp
   trunk/MgDev/Common/MdfModel/TextFrame.h
   trunk/MgDev/Common/MdfModel/Usage.h
Modified:
   trunk/MgDev/Common/MdfModel/IFeatureTypeStyleVisitor.h
   trunk/MgDev/Common/MdfModel/ISymbolizationVisitor.h
   trunk/MgDev/Common/MdfModel/Makefile.am
   trunk/MgDev/Common/MdfModel/MdfModel.vcproj
   trunk/MgDev/Common/MdfModel/NameStringPair.cpp
   trunk/MgDev/Common/MdfModel/NameStringPair.h
   trunk/MgDev/Common/MdfModel/Rule.h
Log:
Update MdfModel to support new symbolization (RFC14).


Added: trunk/MgDev/Common/MdfModel/AreaUsage.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/AreaUsage.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/AreaUsage.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,216 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The AreaUsage class implementation.
+//-------------------------------------------------------------------------
+
+#include "AreaUsage.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the AreaUsage class.
+//-------------------------------------------------------------------------
+AreaUsage::AreaUsage()
+{
+    // NOTE: if you change any defaults then you must also update
+    //       IOAreaUsage::Write to use the correct default values.
+    this->m_eOriginControl = Global;
+    this->m_eAngleControl = FromAngle;
+    this->m_eClippingControl = Clip;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+AreaUsage::~AreaUsage()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+AreaUsage::OriginControl AreaUsage::GetOriginControl() const
+{
+    return this->m_eOriginControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void AreaUsage::SetOriginControl(const OriginControl originControl)
+{
+    this->m_eOriginControl = originControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+Usage::AngleControl AreaUsage::GetAngleControl() const
+{
+    return this->m_eAngleControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void AreaUsage::SetAngleControl(AngleControl angleControl)
+{
+    this->m_eAngleControl = angleControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+AreaUsage::ClippingControl AreaUsage::GetClippingControl() const
+{
+    return this->m_eClippingControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void AreaUsage::SetClippingControl(const ClippingControl clippingControl)
+{
+    this->m_eClippingControl = clippingControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& AreaUsage::GetOriginX() const
+{
+    return this->m_sOriginX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void AreaUsage::SetOriginX(const MdfString& originX)
+{
+    this->m_sOriginX = originX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& AreaUsage::GetOriginY() const
+{
+    return this->m_sOriginY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void AreaUsage::SetOriginY(const MdfString& originY)
+{
+    this->m_sOriginY = originY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& AreaUsage::GetAngle() const
+{
+    return this->m_sAngle;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void AreaUsage::SetAngle(const MdfString& angle)
+{
+    this->m_sAngle = angle;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& AreaUsage::GetRepeatX() const
+{
+    return this->m_sRepeatX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void AreaUsage::SetRepeatX(const MdfString& repeatX)
+{
+    this->m_sRepeatX = repeatX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& AreaUsage::GetRepeatY() const
+{
+    return this->m_sRepeatY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void AreaUsage::SetRepeatY(const MdfString& repeatY)
+{
+    this->m_sRepeatY = repeatY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& AreaUsage::GetBufferWidth() const
+{
+    return this->m_sBufferWidth;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void AreaUsage::SetBufferWidth(const MdfString& bufferWidth)
+{
+    this->m_sBufferWidth = bufferWidth;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void AreaUsage::AcceptVisitor(IUsageVisitor& iuVisitor)
+{
+    iuVisitor.VisitAreaUsage(*this);
+}


Property changes on: trunk/MgDev/Common/MdfModel/AreaUsage.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/AreaUsage.h
===================================================================
--- trunk/MgDev/Common/MdfModel/AreaUsage.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/AreaUsage.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,98 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef AREAUSAGE_H_
+#define AREAUSAGE_H_
+
+#include "MdfModel.h"
+#include "Usage.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API AreaUsage : public Usage
+    {
+    public:
+        enum OriginControl
+        {
+            Global,
+            Local,
+            Centroid
+        };
+
+        enum ClippingControl
+        {
+            Clip,
+            Inside,
+            Overlap
+        };
+
+        // Construction, destruction, initialization
+        AreaUsage();
+        virtual ~AreaUsage();
+
+        OriginControl GetOriginControl() const;
+        void SetOriginControl(OriginControl originControl);
+
+        AngleControl GetAngleControl() const;
+        void SetAngleControl(AngleControl angleControl);
+
+        ClippingControl GetClippingControl() const;
+        void SetClippingControl(ClippingControl clippingControl);
+
+        const MdfString& GetOriginX() const;
+        void SetOriginX(const MdfString& originX);
+
+        const MdfString& GetOriginY() const;
+        void SetOriginY(const MdfString& originY);
+
+        const MdfString& GetAngle() const;
+        void SetAngle(const MdfString& angle);
+
+        const MdfString& GetRepeatX() const;
+        void SetRepeatX(const MdfString& repeatX);
+
+        const MdfString& GetRepeatY() const;
+        void SetRepeatY(const MdfString& repeatY);
+
+        const MdfString& GetBufferWidth() const;
+        void SetBufferWidth(const MdfString& bufferWidth);
+
+        virtual void AcceptVisitor(IUsageVisitor& iuVisitor);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        AreaUsage(const AreaUsage&);
+        AreaUsage& operator=(const AreaUsage&);
+
+        // Data members
+        OriginControl m_eOriginControl;
+        AngleControl m_eAngleControl;
+        ClippingControl m_eClippingControl;
+
+        MdfString m_sOriginX;
+        MdfString m_sOriginY;
+        MdfString m_sAngle;
+        MdfString m_sRepeatX;
+        MdfString m_sRepeatY;
+        MdfString m_sBufferWidth;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // AREAUSAGE_H_


Property changes on: trunk/MgDev/Common/MdfModel/AreaUsage.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/CompositeRule.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/CompositeRule.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/CompositeRule.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,91 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The CompositeRule class implementation. CompositeRule is a concrete
+// subclass of Rule.
+//-------------------------------------------------------------------------
+
+#include "stdafx.h"
+#include "CompositeRule.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the CompositeRule class.
+//-------------------------------------------------------------------------
+CompositeRule::CompositeRule()
+{
+    this->m_pSymbolization = NULL;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+CompositeRule::~CompositeRule()
+{
+    if (this->m_pSymbolization != NULL)
+        delete this->m_pSymbolization;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Accessor for the CompositeSymbolization in this CompositeRule.
+// RETURNS: A pointer to the CompositeSymbolization.
+//-------------------------------------------------------------------------
+CompositeSymbolization* CompositeRule::GetSymbolization()
+{
+    return this->m_pSymbolization;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Method to adopt an CompositeSymbolization object for the Symbolization
+//          property defined in this CompositeRule.  The CompositeSymbolization is
+//          applied to the geometric primitives of the specified features during
+//          stylization.  This object is now responsible for the deletion of the
+//          adopted CompositeSymbolization.
+// PARAMETERS:
+//      Input:
+//         compositeSymbolization - A pointer to a CompositeSymbolization object
+//                                  created on the heap.
+//-------------------------------------------------------------------------
+void CompositeRule::AdoptSymbolization(CompositeSymbolization* compositeSymbolization)
+{
+    if (this->m_pSymbolization != compositeSymbolization)
+    {
+        if (this->m_pSymbolization != NULL)
+            delete this->m_pSymbolization;
+        this->m_pSymbolization = compositeSymbolization;
+    }
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Method to orphan the CompositeSymbolization object being held by this
+//          rule.  The CompositeSymbolization is applied to the geometric primitives
+//          of the specified features during stylization.  The caller is now
+//          responsible for the deletion of the returned CompositeSymbolization
+//          object.
+// RETURNS: Pointer to the orphaned CompositeSymbolization object. It may be NULL
+//          if it wasn't defined.
+//-------------------------------------------------------------------------
+CompositeSymbolization* CompositeRule::OrphanSymbolization()
+{
+    CompositeSymbolization* pRet = this->m_pSymbolization;
+    this->m_pSymbolization = NULL;
+    return pRet;
+}


Property changes on: trunk/MgDev/Common/MdfModel/CompositeRule.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/CompositeRule.h
===================================================================
--- trunk/MgDev/Common/MdfModel/CompositeRule.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/CompositeRule.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,56 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef COMPOSITERULE_H_
+#define COMPOSITERULE_H_
+
+#include "MdfModel.h"
+#include "Rule.h"
+#include "CompositeSymbolization.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    // A composite Rule can be used for customized rendering of all 3 basic
+    // types of geometry -- point, polylines, and polygons. It combines
+    // a collection of basic Symbol building blocks.
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API CompositeRule : public Rule
+    {
+    public:
+        // Construction, destruction, initialization
+        CompositeRule();
+        virtual ~CompositeRule();
+
+        // Operations
+        // Property : Symbolization
+        CompositeSymbolization* GetSymbolization();
+        void AdoptSymbolization(CompositeSymbolization* compositeSymbolization);
+        CompositeSymbolization* OrphanSymbolization();
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        CompositeRule(const CompositeRule&);
+        CompositeRule& operator=(const CompositeRule&);
+
+        // Data members
+        CompositeSymbolization* m_pSymbolization;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // COMPOSITERULE_H_


Property changes on: trunk/MgDev/Common/MdfModel/CompositeRule.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/CompositeSymbolization.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/CompositeSymbolization.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/CompositeSymbolization.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,75 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The CompositeSymbolization class implementation.
+//-------------------------------------------------------------------------
+
+#include "stdafx.h"
+#include "CompositeSymbolization.h"
+#include "ISymbolizationVisitor.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the CompositeSymbolization class.
+//-------------------------------------------------------------------------
+CompositeSymbolization::CompositeSymbolization()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+CompositeSymbolization::~CompositeSymbolization()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+SymbolInstanceCollection* CompositeSymbolization::GetSymbolCollection()
+{
+    return &this->m_collSymbols;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+OverrideCollection* CompositeSymbolization::GetParameterOverrides()
+{
+    return &this->m_collOverrides;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Implementation of the Visitor pattern. The pure, virtual method
+//          is defined in Symbol and is implemented by all of its concrete
+//          subclasses.
+// PARAMETERS:
+//      Input:
+//          isYVisitor - The ISymbolizationVisitor interface which sports
+//                       methods that accept the final concrete type this
+//                       CompositeSymbolization represents as an argument.
+//-------------------------------------------------------------------------
+void CompositeSymbolization::AcceptVisitor(ISymbolizationVisitor& isyVisitor)
+{
+    isyVisitor.VisitCompositeSymbolization(*this);
+}


Property changes on: trunk/MgDev/Common/MdfModel/CompositeSymbolization.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/CompositeSymbolization.h
===================================================================
--- trunk/MgDev/Common/MdfModel/CompositeSymbolization.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/CompositeSymbolization.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,56 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef COMPOSITESYMBOLIZATION_H_
+#define COMPOSITESYMBOLIZATION_H_
+
+#include "MdfModel.h"
+#include "Symbolization.h"
+#include "SymbolInstance.h"
+#include "Override.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API CompositeSymbolization : public Symbolization
+    {
+    public:
+        // Construction, destruction, initialization
+        CompositeSymbolization();
+        virtual ~CompositeSymbolization();
+
+        SymbolInstanceCollection* GetSymbolCollection();
+
+        OverrideCollection* GetParameterOverrides();
+
+        // Visitor Pattern method defined in Symbolization.
+        virtual void AcceptVisitor(ISymbolizationVisitor& isyVisitor);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        CompositeSymbolization(const CompositeSymbolization&);
+        CompositeSymbolization& operator=(CompositeSymbolization&);
+
+        // Data members
+        SymbolInstanceCollection m_collSymbols;
+        OverrideCollection m_collOverrides;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // COMPOSITESYMBOLIZATION_H_


Property changes on: trunk/MgDev/Common/MdfModel/CompositeSymbolization.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/CompositeTypeStyle.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/CompositeTypeStyle.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/CompositeTypeStyle.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,58 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The CompositeTypeStyle class implementation.  CompositeTypeStyle is a
+// concrete subclass of FeatureTypeStyle.
+//-------------------------------------------------------------------------
+
+#include "stdafx.h"
+#include "CompositeTypeStyle.h"
+#include "IFeatureTypeStyleVisitor.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the CompositeTypeStyle class.
+//-------------------------------------------------------------------------
+CompositeTypeStyle::CompositeTypeStyle() : FeatureTypeStyle()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+CompositeTypeStyle::~CompositeTypeStyle()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Implementation of the Visitor pattern. The pure, virtual method
+//          is defined in FeatureTypeStyle and is implemented by all of its
+//          concrete subclasses.
+// PARAMETERS:
+//      Input:
+//          iftsVisitor - The IFeatureTypeStyleVisitor interface which sports
+//                        methods that accept the final concrete type this
+//                        CompositeTypeStyle represents as an argument.
+//-------------------------------------------------------------------------
+void CompositeTypeStyle::AcceptVisitor(IFeatureTypeStyleVisitor& iftsVisitor)
+{
+     iftsVisitor.VisitCompositeTypeStyle(*this);
+}


Property changes on: trunk/MgDev/Common/MdfModel/CompositeTypeStyle.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/CompositeTypeStyle.h
===================================================================
--- trunk/MgDev/Common/MdfModel/CompositeTypeStyle.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/CompositeTypeStyle.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,48 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef COMPOSITETYPESTYLE_H
+#define COMPOSITETYPESTYLE_H
+
+#include "MdfModel.h"
+#include "FeatureTypeStyle.h"
+#include "CompositeRule.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API CompositeTypeStyle : public FeatureTypeStyle
+    {
+    public:
+        // Construction, destruction, initialization
+        CompositeTypeStyle();
+        virtual ~CompositeTypeStyle();
+
+        // Operations
+        // Implementation of FeatureTypeStyle Visitor pattern method.
+        virtual void AcceptVisitor(IFeatureTypeStyleVisitor& iftsVisitor);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        CompositeTypeStyle(const CompositeTypeStyle&);
+        CompositeTypeStyle& operator=(const CompositeTypeStyle&);
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // COMPOSITETYPESTYLE_H


Property changes on: trunk/MgDev/Common/MdfModel/CompositeTypeStyle.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/CompoundSymbolDefinition.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/CompoundSymbolDefinition.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/CompoundSymbolDefinition.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,59 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The CompoundSymbolDefinition class implementation.
+//-------------------------------------------------------------------------
+
+#include "stdafx.h"
+#include "CompoundSymbolDefinition.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the CompoundSymbolDefinition class.
+//-------------------------------------------------------------------------
+CompoundSymbolDefinition::CompoundSymbolDefinition()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+CompoundSymbolDefinition::~CompoundSymbolDefinition()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+SimpleSymbolCollection* CompoundSymbolDefinition::GetSymbols()
+{
+    return &this->m_collSymbols;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void CompoundSymbolDefinition::AcceptVisitor(ISymbolDefinitionVisitor& isdVisitor)
+{
+    isdVisitor.VisitCompoundSymbolDefinition(*this);
+}


Property changes on: trunk/MgDev/Common/MdfModel/CompoundSymbolDefinition.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/CompoundSymbolDefinition.h
===================================================================
--- trunk/MgDev/Common/MdfModel/CompoundSymbolDefinition.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/CompoundSymbolDefinition.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,51 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef COMPOUNDSYMBOLDEFINITION_H_
+#define COMPOUNDSYMBOLDEFINITION_H_
+
+#include "MdfModel.h"
+#include "SymbolDefinition.h"
+#include "SimpleSymbol.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API CompoundSymbolDefinition : public SymbolDefinition
+    {
+    public:
+        // Construction, destruction, initialization
+        CompoundSymbolDefinition();
+        virtual ~CompoundSymbolDefinition();
+
+        SimpleSymbolCollection* GetSymbols();
+
+        virtual void AcceptVisitor(ISymbolDefinitionVisitor& isdVisitor);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        CompoundSymbolDefinition(const CompoundSymbolDefinition&);
+        CompoundSymbolDefinition& operator=(const CompoundSymbolDefinition&);
+
+        // Data members
+        SimpleSymbolCollection m_collSymbols;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // COMPOUNDSYMBOLDEFINITION_H_


Property changes on: trunk/MgDev/Common/MdfModel/CompoundSymbolDefinition.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/GraphicElement.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/GraphicElement.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/GraphicElement.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,63 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The GraphicElement class implementation.
+//-------------------------------------------------------------------------
+
+#include "GraphicElement.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Construct and initialize an instance of the GraphicElement class.
+//-------------------------------------------------------------------------
+GraphicElement::GraphicElement()
+{
+    // NOTE: if you change any defaults then you must also update
+    //       IOGraphicElement::Write to use the correct default values.
+    this->m_eResizeControl = ResizeNone;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+GraphicElement::~GraphicElement()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Accessor method for the ResizeControl property.
+// RETURNS: The resize control for this graphic element.
+//-------------------------------------------------------------------------
+GraphicElement::ResizeControl GraphicElement::GetResizeControl() const
+{
+    return this->m_eResizeControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Accessor method for the ResizeControl property.
+// PARAMETERS:
+//      Input:
+//          eResizeControl - The resize control for this graphic element.
+//-------------------------------------------------------------------------
+void GraphicElement::SetResizeControl(GraphicElement::ResizeControl eResizeControl)
+{
+    this->m_eResizeControl = eResizeControl;
+}


Property changes on: trunk/MgDev/Common/MdfModel/GraphicElement.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/GraphicElement.h
===================================================================
--- trunk/MgDev/Common/MdfModel/GraphicElement.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/GraphicElement.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,74 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef GRAPHICELEMENT_H_
+#define GRAPHICELEMENT_H_
+
+#include "MdfModel.h"
+#include "MdfRootObject.h"
+#include "MdfOwnerCollection.h"
+#include "IGraphicElementVisitor.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    // Building block of the graphics of a SymbolDefinition.
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API GraphicElement : public MdfRootObject
+    {
+    public:
+        // The ResizeControl enum specifies how this graphic element interacts
+        // with the resize box.  AddToResizeBox means the element's graphical
+        // extent is added to the resize box, but the element is not resized
+        // or repositioned if the resize box grows.  AdjustToResizeBox means
+        // the element is resized and repositioned relative to the resize box,
+        // but its extent is not added to the box.  ResizeNone, the default,
+        // means the element does not interact with the resize box.
+        enum ResizeControl
+        {
+            ResizeNone,
+            AddToResizeBox,
+            AdjustToResizeBox
+        };
+
+        // Destruction
+        virtual ~GraphicElement();
+
+        // Operations
+        // Property : ResizeControl
+        ResizeControl GetResizeControl() const;
+        void SetResizeControl(ResizeControl resizeControl);
+
+        // Visitor Pattern method defined in GraphicElement.
+        virtual void AcceptVisitor(IGraphicElementVisitor& igeVisitor) = 0;
+
+    protected:
+        // Construction, initialization
+        // Default constructor is protected to make this class abstract.
+        GraphicElement();
+
+    private:
+        // Data members
+        ResizeControl m_eResizeControl;
+    };
+
+    typedef MdfOwnerCollection<GraphicElement> GraphicElementCollection;
+    EXPIMP_TEMPLATE template class MDFMODEL_API MdfOwnerCollection<GraphicElement>;
+
+END_NAMESPACE_MDFMODEL
+#endif // GRAPHICELEMENT_H_


Property changes on: trunk/MgDev/Common/MdfModel/GraphicElement.h
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: trunk/MgDev/Common/MdfModel/IFeatureTypeStyleVisitor.h
===================================================================
--- trunk/MgDev/Common/MdfModel/IFeatureTypeStyleVisitor.h	2007-03-05 18:42:16 UTC (rev 1151)
+++ trunk/MgDev/Common/MdfModel/IFeatureTypeStyleVisitor.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -25,12 +25,13 @@
     class LineTypeStyle;
     class PointTypeStyle;
     class AreaTypeStyle;
+    class CompositeTypeStyle;
     class GridColorStyle;
     class GridSurfaceStyle;
 
     //-------------------------------------------------------------------------
     // DESCRIPTION:
-    // The IFeatureTypeStyleVisitor is an interface that is used for determining the
+    // The IFeatureTypeStyleVisitor is an interface that is used for determining
     // the concrete class type of a pointer or reference to the abstract
     // FeatureTypeStyle class.
     //-------------------------------------------------------------------------
@@ -41,9 +42,10 @@
         virtual void VisitLineTypeStyle(LineTypeStyle& fsLineTypeStyle) = 0;
         virtual void VisitPointTypeStyle(PointTypeStyle& fsPointTypeStyle) = 0;
         virtual void VisitAreaTypeStyle(AreaTypeStyle& fsAreaTypeStyle) = 0;
+        virtual void VisitCompositeTypeStyle(CompositeTypeStyle& fsCompositeTypeStyle) = 0;
         virtual void VisitGridColorStyle(GridColorStyle &fsGridStyle) = 0;
         virtual void VisitGridSurfaceStyle(GridSurfaceStyle &fsGridStyle) = 0;
     };
 
 END_NAMESPACE_MDFMODEL
-#endif //IFEATURETYPESTYLEVISITOR_H_
+#endif // IFEATURETYPESTYLEVISITOR_H_

Added: trunk/MgDev/Common/MdfModel/IGraphicElementVisitor.h
===================================================================
--- trunk/MgDev/Common/MdfModel/IGraphicElementVisitor.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/IGraphicElementVisitor.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,45 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef IGRAPHICELEMENTVISITOR_H_
+#define IGRAPHICELEMENTVISITOR_H_
+
+#include "MdfModel.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    class Path;
+    class Image;
+    class Text;
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    // The IGraphicElementVisitor is an interface that is used for determining
+    // the concrete class type of a pointer or reference to the abstract
+    // GraphicElement class.
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API IGraphicElementVisitor
+    {
+    public:
+        // Operations
+        virtual void VisitPath(Path& path) = 0;
+        virtual void VisitImage(Image& image) = 0;
+        virtual void VisitText(Text& text) = 0;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // IGRAPHICELEMENTVISITOR_H_


Property changes on: trunk/MgDev/Common/MdfModel/IGraphicElementVisitor.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/ISymbolDefinitionVisitor.h
===================================================================
--- trunk/MgDev/Common/MdfModel/ISymbolDefinitionVisitor.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/ISymbolDefinitionVisitor.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,43 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef ISYMBOLDEFINITIONVISITOR_H_
+#define ISYMBOLDEFINITIONVISITOR_H_
+
+#include "MdfModel.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    class SimpleSymbolDefinition;
+    class CompoundSymbolDefinition;
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    // The ISymbolDefinitionVisitor is an interface that is used for determining
+    // the concrete class type of a pointer or reference to the abstract
+    // SymbolDefinition class.
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API ISymbolDefinitionVisitor
+    {
+    public:
+        // Operations
+        virtual void VisitSimpleSymbolDefinition(SimpleSymbolDefinition& simpleSymbol) = 0;
+        virtual void VisitCompoundSymbolDefinition(CompoundSymbolDefinition& compoundSymbol) = 0;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // ISYMBOLDEFINITIONVISITOR_H_


Property changes on: trunk/MgDev/Common/MdfModel/ISymbolDefinitionVisitor.h
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: trunk/MgDev/Common/MdfModel/ISymbolizationVisitor.h
===================================================================
--- trunk/MgDev/Common/MdfModel/ISymbolizationVisitor.h	2007-03-05 18:42:16 UTC (rev 1151)
+++ trunk/MgDev/Common/MdfModel/ISymbolizationVisitor.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -25,12 +25,13 @@
     class LineSymbolization2D;
     class AreaSymbolization2D;
     class PointSymbolization2D;
+    class CompositeSymbolization;
 
     //-------------------------------------------------------------------------
     // DESCRIPTION:
-    // The IFillVisitor is an interface that is used for determining the
-    // the concrete class type of a pointer or reference to the abstract Fill
-    // class.
+    // The ISymbolizationVisitor is an interface that is used for determining
+    // the concrete class type of a pointer or reference to the abstract
+    // Symbolization class.
     //-------------------------------------------------------------------------
     class MDFMODEL_API ISymbolizationVisitor
     {
@@ -39,7 +40,8 @@
         virtual void VisitLineSymbolization2D(LineSymbolization2D& syLine) = 0;
         virtual void VisitAreaSymbolization2D(AreaSymbolization2D& syArea) = 0;
         virtual void VisitPointSymbolization2D(PointSymbolization2D& syPoint) = 0;
+        virtual void VisitCompositeSymbolization(CompositeSymbolization& syComp) = 0;
     };
 
 END_NAMESPACE_MDFMODEL
-#endif //ISYMBOLIZATIONVISITOR_H_
+#endif // ISYMBOLIZATIONVISITOR_H_

Added: trunk/MgDev/Common/MdfModel/IUsageVisitor.h
===================================================================
--- trunk/MgDev/Common/MdfModel/IUsageVisitor.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/IUsageVisitor.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,45 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef IUSAGEVISITOR_H_
+#define IUSAGEVISITOR_H_
+
+#include "MdfModel.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    class PointUsage;
+    class LineUsage;
+    class AreaUsage;
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    // The IUsageVisitor is an interface that is used for determining
+    // the concrete class type of a pointer or reference to the abstract
+    // Usage class.
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API IUsageVisitor
+    {
+    public:
+        // Operations
+        virtual void VisitPointUsage(PointUsage& pointUsage) = 0;
+        virtual void VisitLineUsage(LineUsage& lineUsage) = 0;
+        virtual void VisitAreaUsage(AreaUsage& areaUsage) = 0;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // IUSAGEVISITOR_H_


Property changes on: trunk/MgDev/Common/MdfModel/IUsageVisitor.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/Image.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/Image.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/Image.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,183 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The Image class implementation.
+//-------------------------------------------------------------------------
+
+#include "Image.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the Image class.
+//-------------------------------------------------------------------------
+Image::Image()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+Image::~Image()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Image::GetContent() const
+{
+    return this->m_sContent;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Image::SetContent(const MdfString& content)
+{
+    this->m_sContent = content;
+
+    // Content and Reference are mutually exclusive.  Setting one
+    // clears the other.
+    this->m_sReference.clear();
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Image::GetReference() const
+{
+    return this->m_sReference;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Image::SetReference(const MdfString& reference)
+{
+    this->m_sReference = reference;
+
+    // Content and Reference are mutually exclusive.  Setting one
+    // clears the other.
+    this->m_sContent.clear();
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Image::GetSizeX() const
+{
+    return this->m_sSizeX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Image::SetSizeX(const MdfString& sizeX)
+{
+    this->m_sSizeX = sizeX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Image::GetSizeY() const
+{
+    return this->m_sSizeY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Image::SetSizeY(const MdfString& sizeY)
+{
+    this->m_sSizeY = sizeY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Image::GetPositionX() const
+{
+    return this->m_sPositionX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Image::SetPositionX(const MdfString& positionX)
+{
+    this->m_sPositionX = positionX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Image::GetPositionY() const
+{
+    return this->m_sPositionY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Image::SetPositionY(const MdfString& positionY)
+{
+    this->m_sPositionY = positionY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Image::GetAngle() const
+{
+    return this->m_sAngle;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Image::SetAngle(const MdfString& angle)
+{
+    this->m_sAngle = angle;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Image::AcceptVisitor(IGraphicElementVisitor& igeVisitor)
+{
+    igeVisitor.VisitImage(*this);
+}


Property changes on: trunk/MgDev/Common/MdfModel/Image.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/Image.h
===================================================================
--- trunk/MgDev/Common/MdfModel/Image.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/Image.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,79 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef IMAGE_H_
+#define IMAGE_H_
+
+#include "MdfModel.h"
+#include "GraphicElement.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION: Building block of the graphics of a SymbolDefinition.
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API Image : public GraphicElement
+    {
+    public:
+        // Construction, destruction, initialization
+        Image();
+        virtual ~Image();
+
+        // TODO: base64 as unicode, it's just not right!  Do something else.
+        const MdfString& GetContent() const;
+        void SetContent(const MdfString& content);
+
+        const MdfString& GetReference() const;
+        void SetReference(const MdfString& reference);
+
+        const MdfString& GetSizeX() const;
+        void SetSizeX(const MdfString& sizeX);
+
+        const MdfString& GetSizeY() const;
+        void SetSizeY(const MdfString& sizeY);
+
+        const MdfString& GetPositionX() const;
+        void SetPositionX(const MdfString& positionX);
+
+        const MdfString& GetPositionY() const;
+        void SetPositionY(const MdfString& positionY);
+
+        const MdfString& GetAngle() const;
+        void SetAngle(const MdfString& angle);
+
+        virtual void AcceptVisitor(IGraphicElementVisitor& igeVisitor);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        Image(const Image&);
+        Image& operator=(const Image&);
+
+        // Data members
+        MdfString m_sContent;
+        MdfString m_sReference;
+
+        MdfString m_sSizeX;
+        MdfString m_sSizeY;
+
+        MdfString m_sPositionX;
+        MdfString m_sPositionY;
+
+        MdfString m_sAngle;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // IMAGE_H_


Property changes on: trunk/MgDev/Common/MdfModel/Image.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/LineUsage.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/LineUsage.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/LineUsage.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,236 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The LineUsage class implementation.
+//-------------------------------------------------------------------------
+
+#include "LineUsage.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+LineUsage::LineUsage()
+{
+    // NOTE: if you change any defaults then you must also update
+    //       IOLineUsage::Write to use the correct default values.
+    this->m_eAngleControl = FromAngle;
+    this->m_eUnitsControl = Absolute;
+    this->m_eVertexControl = OverlapWrap;
+    this->m_pDefaultPath = NULL;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+LineUsage::~LineUsage()
+{
+    if (this->m_pDefaultPath != NULL)
+        delete this->m_pDefaultPath;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+Usage::AngleControl LineUsage::GetAngleControl() const
+{
+    return this->m_eAngleControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void LineUsage::SetAngleControl(AngleControl angleControl)
+{
+    this->m_eAngleControl = angleControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+LineUsage::UnitsControl LineUsage::GetUnitsControl() const
+{
+    return this->m_eUnitsControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void LineUsage::SetUnitsControl(UnitsControl unitsControl)
+{
+    this->m_eUnitsControl = unitsControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+LineUsage::VertexControl LineUsage::GetVertexControl() const
+{
+    return this->m_eVertexControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void LineUsage::SetVertexControl(VertexControl vertexControl)
+{
+    this->m_eVertexControl = vertexControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& LineUsage::GetAngle() const
+{
+    return this->m_sAngle;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void LineUsage::SetAngle(const MdfString& angle)
+{
+    this->m_sAngle = angle;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& LineUsage::GetStartOffset() const
+{
+    return this->m_sStartOffset;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void LineUsage::SetStartOffset(const MdfString& startOffset)
+{
+    this->m_sStartOffset = startOffset;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& LineUsage::GetEndOffset() const
+{
+    return this->m_sEndOffset;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void LineUsage::SetEndOffset(const MdfString& endOffset)
+{
+    this->m_sEndOffset = endOffset;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& LineUsage::GetRepeat() const
+{
+    return this->m_sRepeat;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void LineUsage::SetRepeat(const MdfString& repeat)
+{
+    this->m_sRepeat = repeat;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& LineUsage::GetVertexAngleLimit() const
+{
+    return this->m_sVertexAngleLimit;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void LineUsage::SetVertexAngleLimit(const MdfString& vertexAngleLimit)
+{
+    this->m_sVertexAngleLimit = vertexAngleLimit;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+Path* LineUsage::GetDefaultPath()
+{
+    return this->m_pDefaultPath;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void LineUsage::AdoptDefaultPath(Path* defaultPath)
+{
+    if (this->m_pDefaultPath != defaultPath)
+    {
+        if (this->m_pDefaultPath != NULL)
+            delete this->m_pDefaultPath;
+        this->m_pDefaultPath = defaultPath;
+    }
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+Path* LineUsage::OrphanDefaultPath()
+{
+    Path* pRet = this->m_pDefaultPath;
+    this->m_pDefaultPath = NULL;
+    return pRet;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void LineUsage::AcceptVisitor(IUsageVisitor& iuVisitor)
+{
+    iuVisitor.VisitLineUsage(*this);
+}


Property changes on: trunk/MgDev/Common/MdfModel/LineUsage.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/LineUsage.h
===================================================================
--- trunk/MgDev/Common/MdfModel/LineUsage.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/LineUsage.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,101 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef LINEUSAGE_H_
+#define LINEUSAGE_H_
+
+#include "MdfModel.h"
+#include "Usage.h"
+#include "Path.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API LineUsage : public Usage
+    {
+    public:
+        enum UnitsControl
+        {
+            Absolute,
+            Parametric
+        };
+
+        enum VertexControl
+        {
+            NoOverlap,
+            OverlapDirect,
+            OverlapNoWrap,
+            OverlapWrap
+        };
+
+        // Construction, destruction, initialization
+        LineUsage();
+        virtual ~LineUsage();
+
+        AngleControl GetAngleControl() const;
+        void SetAngleControl(AngleControl angleControl);
+
+        UnitsControl GetUnitsControl() const;
+        void SetUnitsControl(UnitsControl unitsControl);
+
+        VertexControl GetVertexControl() const;
+        void SetVertexControl(VertexControl vertexControl);
+
+        const MdfString& GetAngle() const;
+        void SetAngle(const MdfString& angle);
+
+        const MdfString& GetStartOffset() const;
+        void SetStartOffset(const MdfString& startOffset);
+
+        const MdfString& GetEndOffset() const;
+        void SetEndOffset(const MdfString& endOffset);
+
+        const MdfString& GetRepeat() const;
+        void SetRepeat(const MdfString& repeat);
+
+        const MdfString& GetVertexAngleLimit() const;
+        void SetVertexAngleLimit(const MdfString& vertexAngleLimit);
+
+        Path* GetDefaultPath();
+        void AdoptDefaultPath(Path* defaultPath);
+        Path* OrphanDefaultPath();
+
+        virtual void AcceptVisitor(IUsageVisitor& iuVisitor);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        LineUsage(const LineUsage&);
+        LineUsage& operator=(const LineUsage&);
+
+        // Data members
+        AngleControl m_eAngleControl;
+        UnitsControl m_eUnitsControl;
+        VertexControl m_eVertexControl;
+
+        MdfString m_sAngle;
+        MdfString m_sStartOffset;
+        MdfString m_sEndOffset;
+        MdfString m_sRepeat;
+        MdfString m_sVertexAngleLimit;
+
+        Path* m_pDefaultPath;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // LINEUSAGE_H_


Property changes on: trunk/MgDev/Common/MdfModel/LineUsage.h
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: trunk/MgDev/Common/MdfModel/Makefile.am
===================================================================
--- trunk/MgDev/Common/MdfModel/Makefile.am	2007-03-05 18:42:16 UTC (rev 1151)
+++ trunk/MgDev/Common/MdfModel/Makefile.am	2007-03-06 01:18:33 UTC (rev 1152)
@@ -8,6 +8,7 @@
   AreaRule.cpp \
   AreaSymbolization2D.cpp \
   AreaTypeStyle.cpp \
+  AreaUsage.cpp \
   AttributeRelate.cpp \
   BaseMapLayer.cpp \
   BaseMapLayerGroup.cpp \
@@ -15,6 +16,10 @@
   Box2D.cpp \
   CalculatedProperty.cpp \
   ChannelBand.cpp \
+  CompositeRule.cpp \
+  CompositeSymbolization.cpp \
+  CompositeTypeStyle.cpp \
+  CompoundSymbolDefinition.cpp \
   ConvertUTF.c \
   DisplayScale.cpp \
   DrawingLayerDefinition.cpp \
@@ -23,6 +28,7 @@
   FeatureTypeStyle.cpp \
   Fill.cpp \
   FontSymbol.cpp \
+  GraphicElement.cpp \
   GridColor.cpp \
   GridColorRule.cpp \
   GridColorStyle.cpp \
@@ -30,6 +36,7 @@
   GridScaleRange.cpp \
   GridSurfaceStyle.cpp \
   HillShade.cpp \
+  Image.cpp \
   ImageSymbol.cpp \
   Label.cpp \
   LayerDefinition.cpp \
@@ -37,6 +44,7 @@
   LineRule.cpp \
   LineSymbolization2D.cpp \
   LineTypeStyle.cpp \
+  LineUsage.cpp \
   MapDefinition.cpp \
   MapLayer.cpp \
   MapLayerGroup.cpp \
@@ -45,15 +53,26 @@
   MdfModel.cpp \
   MdfRootObject.cpp \
   NameStringPair.cpp \
+  Override.cpp \
+  Parameter.cpp \
+  Path.cpp \
   PointRule.cpp \
   PointSymbolization2D.cpp \
   PointTypeStyle.cpp \
+  PointUsage.cpp \
   RelateProperty.cpp \
+  ResizeBox.cpp \
   Rule.cpp \
+  SimpleSymbol.cpp \
+  SimpleSymbolDefinition.cpp \
   Stroke.cpp \
   SupplementalSpatialContextInfo.cpp \
   Symbol.cpp \
+  SymbolDefinition.cpp \
+  SymbolInstance.cpp \
   Symbolization.cpp \
+  Text.cpp \
+  TextFrame.cpp \
   TextSymbol.cpp \
   UnicodeString.cpp \
   Vector.cpp \
@@ -65,6 +84,7 @@
   AreaRule.h \
   AreaSymbolization2D.h \
   AreaTypeStyle.h \
+  AreaUsage.h \
   AttributeRelate.h \
   Base64.h \
   BaseMapLayer.h \
@@ -73,6 +93,10 @@
   Box2D.h \
   CalculatedProperty.h \
   ChannelBand.h \
+  CompositeRule.h \
+  CompositeSymbolization.h \
+  CompositeTypeStyle.h \
+  CompoundSymbolDefinition.h \
   ConvertUTF.h \
   DisplayScale.h \
   DrawingLayerDefinition.h \
@@ -81,6 +105,7 @@
   FeatureTypeStyle.h \
   Fill.h \
   FontSymbol.h \
+  GraphicElement.h \
   GridColor.h \
   GridColorRule.h \
   GridColorStyle.h \
@@ -89,8 +114,12 @@
   GridSurfaceStyle.h \
   HillShade.h \
   IFeatureTypeStyleVisitor.h \
+  IGraphicElementVisitor.h \
+  ISymbolDefinitionVisitor.h \
   ISymbolVisitor.h \
   ISymbolizationVisitor.h \
+  IUsageVisitor.h \
+  Image.h \
   ImageSymbol.h \
   Label.h \
   LayerDefinition.h \
@@ -98,6 +127,7 @@
   LineRule.h \
   LineSymbolization2D.h \
   LineTypeStyle.h \
+  LineUsage.h \
   MapDefinition.h \
   MapLayer.h \
   MapLayerGroup.h \
@@ -107,18 +137,30 @@
   MdfOwnerCollection.h \
   MdfRootObject.h \
   NameStringPair.h \
+  Override.h \
+  Parameter.h \
+  Path.h \
   PointRule.h \
   PointSymbolization2D.h \
   PointTypeStyle.h \
+  PointUsage.h \
   RelateProperty.h \
+  ResizeBox.h \
   Rule.h \
+  SimpleSymbol.h \
+  SimpleSymbolDefinition.h \
   SizeContexts.h \
   Stroke.h \
   SupplementalSpatialContextInfo.h \
   Symbol.h \
+  SymbolDefinition.h \
+  SymbolInstance.h \
   Symbolization.h \
+  Text.h \
+  TextFrame.h \
   TextSymbol.h \
   UnicodeString.h \
+  Usage.h \
   Vector.h \
   VectorLayerDefinition.h \
   VectorScaleRange.h \

Modified: trunk/MgDev/Common/MdfModel/MdfModel.vcproj
===================================================================
--- trunk/MgDev/Common/MdfModel/MdfModel.vcproj	2007-03-05 18:42:16 UTC (rev 1151)
+++ trunk/MgDev/Common/MdfModel/MdfModel.vcproj	2007-03-06 01:18:33 UTC (rev 1152)
@@ -41,7 +41,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories=""
+				AdditionalIncludeDirectories="..\..\Oem\dbxml-2.2.13\xerces-c-src\src"
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MDFMODEL_EXPORTS;_CRT_SECURE_NO_DEPRECATE"
 				MinimalRebuild="true"
 				ExceptionHandling="2"
@@ -124,7 +124,7 @@
 				Name="VCCLCompilerTool"
 				InlineFunctionExpansion="1"
 				OmitFramePointers="true"
-				AdditionalIncludeDirectories=""
+				AdditionalIncludeDirectories="..\..\Oem\dbxml-2.2.13\xerces-c-src\src"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MDFMODEL_EXPORTS;_CRT_SECURE_NO_DEPRECATE"
 				StringPooling="true"
 				ExceptionHandling="2"
@@ -185,91 +185,616 @@
 	<References>
 	</References>
 	<Files>
-		<File
-			RelativePath="AreaRule.cpp"
+		<Filter
+			Name="SymbolDefinition"
 			>
-		</File>
-		<File
-			RelativePath="AreaRule.h"
+			<File
+				RelativePath=".\AreaUsage.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\AreaUsage.h"
+				>
+			</File>
+			<File
+				RelativePath=".\CompoundSymbolDefinition.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\CompoundSymbolDefinition.h"
+				>
+			</File>
+			<File
+				RelativePath=".\GraphicElement.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\GraphicElement.h"
+				>
+			</File>
+			<File
+				RelativePath=".\IGraphicElementVisitor.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Image.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\Image.h"
+				>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCustomBuildTool"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ISymbolDefinitionVisitor.h"
+				>
+			</File>
+			<File
+				RelativePath=".\IUsageVisitor.h"
+				>
+			</File>
+			<File
+				RelativePath=".\LineUsage.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\LineUsage.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Parameter.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\Parameter.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Path.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\Path.h"
+				>
+			</File>
+			<File
+				RelativePath=".\PointUsage.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\PointUsage.h"
+				>
+			</File>
+			<File
+				RelativePath=".\ResizeBox.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\ResizeBox.h"
+				>
+			</File>
+			<File
+				RelativePath=".\SimpleSymbol.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\SimpleSymbol.h"
+				>
+			</File>
+			<File
+				RelativePath=".\SimpleSymbolDefinition.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\SimpleSymbolDefinition.h"
+				>
+			</File>
+			<File
+				RelativePath=".\SymbolDefinition.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\SymbolDefinition.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Text.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\Text.h"
+				>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCustomBuildTool"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\TextFrame.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\TextFrame.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Usage.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="RasterLayer"
 			>
-		</File>
-		<File
-			RelativePath=".\AreaSymbolization2D.cpp"
+			<File
+				RelativePath=".\ChannelBand.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\ChannelBand.h"
+				>
+			</File>
+			<File
+				RelativePath=".\GridColor.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\GridColor.h"
+				>
+			</File>
+			<File
+				RelativePath=".\GridColorRule.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\GridColorRule.h"
+				>
+			</File>
+			<File
+				RelativePath=".\GridColorStyle.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\GridColorStyle.h"
+				>
+			</File>
+			<File
+				RelativePath=".\GridLayerDefinition.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\GridLayerDefinition.h"
+				>
+			</File>
+			<File
+				RelativePath=".\GridScaleRange.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\GridScaleRange.h"
+				>
+			</File>
+			<File
+				RelativePath=".\GridSurfaceStyle.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\GridSurfaceStyle.h"
+				>
+			</File>
+			<File
+				RelativePath=".\HillShade.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\HillShade.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="VectorLayer"
 			>
-		</File>
-		<File
-			RelativePath=".\AreaSymbolization2D.h"
+			<File
+				RelativePath=".\FeatureSource.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\FeatureSource.h"
+				>
+			</File>
+			<File
+				RelativePath=".\SupplementalSpatialContextInfo.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\SupplementalSpatialContextInfo.h"
+				>
+			</File>
+			<File
+				RelativePath=".\VectorLayerDefinition.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\VectorLayerDefinition.h"
+				>
+			</File>
+			<File
+				RelativePath=".\VectorScaleRange.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\VectorScaleRange.h"
+				>
+			</File>
+			<Filter
+				Name="Joins"
+				>
+				<File
+					RelativePath=".\AttributeRelate.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\AttributeRelate.h"
+					>
+				</File>
+				<File
+					RelativePath=".\CalculatedProperty.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\CalculatedProperty.h"
+					>
+				</File>
+				<File
+					RelativePath=".\Extension.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\Extension.h"
+					>
+				</File>
+				<File
+					RelativePath=".\RelateProperty.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\RelateProperty.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="VectorStyles"
+				>
+				<File
+					RelativePath=".\AreaTypeStyle.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\AreaTypeStyle.h"
+					>
+				</File>
+				<File
+					RelativePath=".\CompositeTypeStyle.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\CompositeTypeStyle.h"
+					>
+				</File>
+				<File
+					RelativePath=".\FeatureTypeStyle.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\FeatureTypeStyle.h"
+					>
+				</File>
+				<File
+					RelativePath="Fill.cpp"
+					>
+				</File>
+				<File
+					RelativePath="Fill.h"
+					>
+				</File>
+				<File
+					RelativePath=".\IFeatureTypeStyleVisitor.h"
+					>
+				</File>
+				<File
+					RelativePath="Label.cpp"
+					>
+				</File>
+				<File
+					RelativePath="Label.h"
+					>
+				</File>
+				<File
+					RelativePath=".\LineTypeStyle.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\LineTypeStyle.h"
+					>
+				</File>
+				<File
+					RelativePath=".\PointTypeStyle.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\PointTypeStyle.h"
+					>
+				</File>
+				<File
+					RelativePath="Stroke.cpp"
+					>
+				</File>
+				<File
+					RelativePath="Stroke.h"
+					>
+				</File>
+				<Filter
+					Name="Rules"
+					>
+					<File
+						RelativePath="AreaRule.cpp"
+						>
+					</File>
+					<File
+						RelativePath="AreaRule.h"
+						>
+					</File>
+					<File
+						RelativePath=".\CompositeRule.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\CompositeRule.h"
+						>
+					</File>
+					<File
+						RelativePath="LineRule.cpp"
+						>
+					</File>
+					<File
+						RelativePath="LineRule.h"
+						>
+					</File>
+					<File
+						RelativePath="PointRule.cpp"
+						>
+					</File>
+					<File
+						RelativePath="PointRule.h"
+						>
+					</File>
+					<File
+						RelativePath="Rule.cpp"
+						>
+					</File>
+					<File
+						RelativePath="Rule.h"
+						>
+					</File>
+				</Filter>
+				<Filter
+					Name="Symbolizations"
+					>
+					<File
+						RelativePath=".\AreaSymbolization2D.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\AreaSymbolization2D.h"
+						>
+					</File>
+					<File
+						RelativePath=".\CompositeSymbolization.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\CompositeSymbolization.h"
+						>
+						<FileConfiguration
+							Name="Release|Win32"
+							>
+							<Tool
+								Name="VCCustomBuildTool"
+							/>
+						</FileConfiguration>
+					</File>
+					<File
+						RelativePath="ISymbolizationVisitor.h"
+						>
+					</File>
+					<File
+						RelativePath=".\LineSymbolization2D.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\LineSymbolization2D.h"
+						>
+					</File>
+					<File
+						RelativePath=".\Override.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\Override.h"
+						>
+					</File>
+					<File
+						RelativePath=".\PointSymbolization2D.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\PointSymbolization2D.h"
+						>
+					</File>
+					<File
+						RelativePath=".\SymbolInstance.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\SymbolInstance.h"
+						>
+					</File>
+					<File
+						RelativePath="Symbolization.cpp"
+						>
+					</File>
+					<File
+						RelativePath="Symbolization.h"
+						>
+					</File>
+				</Filter>
+				<Filter
+					Name="Symbols"
+					>
+					<File
+						RelativePath=".\BlockSymbol.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\BlockSymbol.h"
+						>
+					</File>
+					<File
+						RelativePath=".\FontSymbol.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\FontSymbol.h"
+						>
+					</File>
+					<File
+						RelativePath=".\ImageSymbol.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\ImageSymbol.h"
+						>
+					</File>
+					<File
+						RelativePath="ISymbolVisitor.h"
+						>
+					</File>
+					<File
+						RelativePath="MarkSymbol.cpp"
+						>
+					</File>
+					<File
+						RelativePath="MarkSymbol.h"
+						>
+					</File>
+					<File
+						RelativePath="Symbol.cpp"
+						>
+					</File>
+					<File
+						RelativePath="Symbol.h"
+						>
+					</File>
+					<File
+						RelativePath="TextSymbol.cpp"
+						>
+					</File>
+					<File
+						RelativePath="TextSymbol.h"
+						>
+					</File>
+					<File
+						RelativePath=".\W2DSymbol.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\W2DSymbol.h"
+						>
+					</File>
+				</Filter>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="MapDefinition"
 			>
-		</File>
+			<File
+				RelativePath=".\BaseMapLayer.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\BaseMapLayer.h"
+				>
+			</File>
+			<File
+				RelativePath=".\BaseMapLayerGroup.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\BaseMapLayerGroup.h"
+				>
+			</File>
+			<File
+				RelativePath="Box2D.cpp"
+				>
+			</File>
+			<File
+				RelativePath="Box2D.h"
+				>
+			</File>
+			<File
+				RelativePath=".\DisplayScale.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\DisplayScale.h"
+				>
+			</File>
+			<File
+				RelativePath=".\MapDefinition.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\MapDefinition.h"
+				>
+			</File>
+			<File
+				RelativePath="MapLayer.cpp"
+				>
+			</File>
+			<File
+				RelativePath="MapLayer.h"
+				>
+			</File>
+			<File
+				RelativePath="MapLayerGroup.cpp"
+				>
+			</File>
+			<File
+				RelativePath="MapLayerGroup.h"
+				>
+			</File>
+			<File
+				RelativePath=".\MapLayerGroupCommon.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\MapLayerGroupCommon.h"
+				>
+			</File>
+		</Filter>
 		<File
-			RelativePath=".\AreaTypeStyle.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\AreaTypeStyle.h"
-			>
-		</File>
-		<File
-			RelativePath=".\AttributeRelate.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\AttributeRelate.h"
-			>
-		</File>
-		<File
 			RelativePath=".\Base64.h"
 			>
 		</File>
 		<File
-			RelativePath=".\BaseMapLayer.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\BaseMapLayer.h"
-			>
-		</File>
-		<File
-			RelativePath=".\BaseMapLayerGroup.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\BaseMapLayerGroup.h"
-			>
-		</File>
-		<File
-			RelativePath=".\BlockSymbol.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\BlockSymbol.h"
-			>
-		</File>
-		<File
-			RelativePath="Box2D.cpp"
-			>
-		</File>
-		<File
-			RelativePath="Box2D.h"
-			>
-		</File>
-		<File
-			RelativePath=".\CalculatedProperty.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\CalculatedProperty.h"
-			>
-		</File>
-		<File
-			RelativePath=".\ChannelBand.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\ChannelBand.h"
-			>
-		</File>
-		<File
 			RelativePath=".\ConvertUTF.c"
 			>
 		</File>
@@ -278,14 +803,6 @@
 			>
 		</File>
 		<File
-			RelativePath=".\DisplayScale.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\DisplayScale.h"
-			>
-		</File>
-		<File
 			RelativePath=".\DrawingLayerDefinition.cpp"
 			>
 		</File>
@@ -294,130 +811,6 @@
 			>
 		</File>
 		<File
-			RelativePath=".\Extension.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\Extension.h"
-			>
-		</File>
-		<File
-			RelativePath=".\FeatureSource.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\FeatureSource.h"
-			>
-		</File>
-		<File
-			RelativePath=".\FeatureTypeStyle.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\FeatureTypeStyle.h"
-			>
-		</File>
-		<File
-			RelativePath="Fill.cpp"
-			>
-		</File>
-		<File
-			RelativePath="Fill.h"
-			>
-		</File>
-		<File
-			RelativePath=".\FontSymbol.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\FontSymbol.h"
-			>
-		</File>
-		<File
-			RelativePath=".\GridColor.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\GridColor.h"
-			>
-		</File>
-		<File
-			RelativePath=".\GridColorRule.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\GridColorRule.h"
-			>
-		</File>
-		<File
-			RelativePath=".\GridColorStyle.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\GridColorStyle.h"
-			>
-		</File>
-		<File
-			RelativePath=".\GridLayerDefinition.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\GridLayerDefinition.h"
-			>
-		</File>
-		<File
-			RelativePath=".\GridScaleRange.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\GridScaleRange.h"
-			>
-		</File>
-		<File
-			RelativePath=".\GridSurfaceStyle.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\GridSurfaceStyle.h"
-			>
-		</File>
-		<File
-			RelativePath=".\HillShade.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\HillShade.h"
-			>
-		</File>
-		<File
-			RelativePath=".\IFeatureTypeStyleVisitor.h"
-			>
-		</File>
-		<File
-			RelativePath=".\ImageSymbol.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\ImageSymbol.h"
-			>
-		</File>
-		<File
-			RelativePath="ISymbolizationVisitor.h"
-			>
-		</File>
-		<File
-			RelativePath="ISymbolVisitor.h"
-			>
-		</File>
-		<File
-			RelativePath="Label.cpp"
-			>
-		</File>
-		<File
-			RelativePath="Label.h"
-			>
-		</File>
-		<File
 			RelativePath=".\LayerDefinition.cpp"
 			>
 		</File>
@@ -434,70 +827,6 @@
 			>
 		</File>
 		<File
-			RelativePath="LineRule.cpp"
-			>
-		</File>
-		<File
-			RelativePath="LineRule.h"
-			>
-		</File>
-		<File
-			RelativePath=".\LineSymbolization2D.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\LineSymbolization2D.h"
-			>
-		</File>
-		<File
-			RelativePath=".\LineTypeStyle.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\LineTypeStyle.h"
-			>
-		</File>
-		<File
-			RelativePath=".\MapDefinition.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\MapDefinition.h"
-			>
-		</File>
-		<File
-			RelativePath="MapLayer.cpp"
-			>
-		</File>
-		<File
-			RelativePath="MapLayer.h"
-			>
-		</File>
-		<File
-			RelativePath="MapLayerGroup.cpp"
-			>
-		</File>
-		<File
-			RelativePath="MapLayerGroup.h"
-			>
-		</File>
-		<File
-			RelativePath=".\MapLayerGroupCommon.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\MapLayerGroupCommon.h"
-			>
-		</File>
-		<File
-			RelativePath="MarkSymbol.cpp"
-			>
-		</File>
-		<File
-			RelativePath="MarkSymbol.h"
-			>
-		</File>
-		<File
 			RelativePath=".\MdfModel.cpp"
 			>
 		</File>
@@ -530,46 +859,6 @@
 			>
 		</File>
 		<File
-			RelativePath="PointRule.cpp"
-			>
-		</File>
-		<File
-			RelativePath="PointRule.h"
-			>
-		</File>
-		<File
-			RelativePath=".\PointSymbolization2D.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\PointSymbolization2D.h"
-			>
-		</File>
-		<File
-			RelativePath=".\PointTypeStyle.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\PointTypeStyle.h"
-			>
-		</File>
-		<File
-			RelativePath=".\RelateProperty.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\RelateProperty.h"
-			>
-		</File>
-		<File
-			RelativePath="Rule.cpp"
-			>
-		</File>
-		<File
-			RelativePath="Rule.h"
-			>
-		</File>
-		<File
 			RelativePath=".\SizeContexts.h"
 			>
 		</File>
@@ -578,46 +867,6 @@
 			>
 		</File>
 		<File
-			RelativePath="Stroke.cpp"
-			>
-		</File>
-		<File
-			RelativePath="Stroke.h"
-			>
-		</File>
-		<File
-			RelativePath=".\SupplementalSpatialContextInfo.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\SupplementalSpatialContextInfo.h"
-			>
-		</File>
-		<File
-			RelativePath="Symbol.cpp"
-			>
-		</File>
-		<File
-			RelativePath="Symbol.h"
-			>
-		</File>
-		<File
-			RelativePath="Symbolization.cpp"
-			>
-		</File>
-		<File
-			RelativePath="Symbolization.h"
-			>
-		</File>
-		<File
-			RelativePath="TextSymbol.cpp"
-			>
-		</File>
-		<File
-			RelativePath="TextSymbol.h"
-			>
-		</File>
-		<File
 			RelativePath=".\UnicodeString.cpp"
 			>
 		</File>
@@ -625,38 +874,6 @@
 			RelativePath=".\UnicodeString.h"
 			>
 		</File>
-		<File
-			RelativePath=".\Vector.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\Vector.h"
-			>
-		</File>
-		<File
-			RelativePath=".\VectorLayerDefinition.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\VectorLayerDefinition.h"
-			>
-		</File>
-		<File
-			RelativePath=".\VectorScaleRange.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\VectorScaleRange.h"
-			>
-		</File>
-		<File
-			RelativePath=".\W2DSymbol.cpp"
-			>
-		</File>
-		<File
-			RelativePath=".\W2DSymbol.h"
-			>
-		</File>
 	</Files>
 	<Globals>
 	</Globals>

Modified: trunk/MgDev/Common/MdfModel/NameStringPair.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/NameStringPair.cpp	2007-03-05 18:42:16 UTC (rev 1151)
+++ trunk/MgDev/Common/MdfModel/NameStringPair.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -28,31 +28,26 @@
 using namespace MDFMODEL_NAMESPACE;
 
 //-------------------------------------------------------------------------
-// PURPOSE: Construct and initialize an instance of the NameStringPair
-//          class.
-// PARAMETERS:
-//     Input:
-//          strName - the name
-//          strText - the associated text
+// PURPOSE: Initialize an instance of the NameStringPair class.
 //-------------------------------------------------------------------------
-NameStringPair::NameStringPair(const MdfString& strName, const MdfString& strValue)
-:m_strName(strName),m_strValue(strValue)
+NameStringPair::NameStringPair()
 {
+    //Default Settings
+    this->m_strName = L"";
+    this->m_strValue = L"";
 }
 
 //-------------------------------------------------------------------------
-// PURPOSE: Construct and initialize an instance of the NameStringPair
-//          class.
+// PURPOSE: Initialize an instance of the NameStringPair class.
 // PARAMETERS:
 //     Input:
 //          strName - the name
 //          strText - the associated text
 //-------------------------------------------------------------------------
-NameStringPair::NameStringPair()
+NameStringPair::NameStringPair(const MdfString& strName, const MdfString& strValue)
 {
-    //Default Settings
-    this->m_strName = L"";
-    this->m_strValue = L"";
+    this->m_strName = strName;
+    this->m_strValue = strValue;
 }
 
 //-------------------------------------------------------------------------

Modified: trunk/MgDev/Common/MdfModel/NameStringPair.h
===================================================================
--- trunk/MgDev/Common/MdfModel/NameStringPair.h	2007-03-05 18:42:16 UTC (rev 1151)
+++ trunk/MgDev/Common/MdfModel/NameStringPair.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -32,11 +32,12 @@
 class MDFMODEL_API NameStringPair : public MdfRootObject
     {
     public:
-        //Constructors,
-        //default copy constructor, destructor and assignment operator.
+        // Construction, initialization
+        NameStringPair();
         NameStringPair(const MdfString& strName , const MdfString& strValue);
-        NameStringPair();
 
+        //default copy constructor, destructor and assignment operator.
+
         // Operations
         // Property : Name
         const MdfString& GetName() const;

Added: trunk/MgDev/Common/MdfModel/Override.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/Override.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/Override.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,86 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The Override class implementation.
+//-------------------------------------------------------------------------
+
+#include "Override.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the Override class.
+//-------------------------------------------------------------------------
+Override::Override()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Override::GetSymbolName() const
+{
+    return this->m_sSymbolName;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Override::SetSymbolName(const MdfString& symbolName)
+{
+    this->m_sSymbolName = symbolName;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Override::GetParameterIdentifier() const
+{
+    return this->m_sParameterIdentifier;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Override::SetParameterIdentifier(const MdfString& parameterIdentifier)
+{
+    this->m_sParameterIdentifier = parameterIdentifier;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Override::GetParameterValue() const
+{
+    return this->m_sParameterValue;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Override::SetParameterValue(const MdfString& parameterValue)
+{
+    this->m_sParameterValue = parameterValue;
+}


Property changes on: trunk/MgDev/Common/MdfModel/Override.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/Override.h
===================================================================
--- trunk/MgDev/Common/MdfModel/Override.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/Override.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,60 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef OVERRIDE_H_
+#define OVERRIDE_H_
+
+#include "MdfModel.h"
+#include "MdfRootObject.h"
+#include "MdfOwnerCollection.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API Override : public MdfRootObject
+    {
+    public:
+        // Construction, initialization
+        Override();
+
+        const MdfString& GetSymbolName() const;
+        void SetSymbolName(const MdfString& symbolName);
+
+        const MdfString& GetParameterIdentifier() const;
+        void SetParameterIdentifier(const MdfString& parameterIdentifier);
+
+        const MdfString& GetParameterValue() const;
+        void SetParameterValue(const MdfString& parameterValue);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        Override(const Override&);
+        Override& operator=(const Override&);
+
+        // Data members
+        MdfString m_sSymbolName;
+        MdfString m_sParameterIdentifier;
+        MdfString m_sParameterValue;
+    };
+
+    typedef MdfOwnerCollection<Override> OverrideCollection;
+    EXPIMP_TEMPLATE template class MDFMODEL_API MdfOwnerCollection<Override>;
+
+END_NAMESPACE_MDFMODEL
+#endif // OVERRIDE_H_


Property changes on: trunk/MgDev/Common/MdfModel/Override.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/Parameter.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/Parameter.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/Parameter.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,121 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The Parameter class implementation.
+//-------------------------------------------------------------------------
+
+#include "Parameter.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the Parameter class.
+//-------------------------------------------------------------------------
+Parameter::Parameter()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+Parameter::~Parameter()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Parameter::GetIdentifier() const
+{
+    return this->m_sIdentifier;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Parameter::SetIdentifier(const MdfString& identifier)
+{
+    this->m_sIdentifier = identifier;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Parameter::GetDefaultValue() const
+{
+    return this->m_sDefaultValue;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Parameter::SetDefaultValue(const MdfString& defaultValue)
+{
+    this->m_sDefaultValue = defaultValue;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Parameter::GetDisplayName() const
+{
+    return this->m_sDisplayName;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Parameter::SetDisplayName(const MdfString& displayName)
+{
+    this->m_sDisplayName = displayName;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Parameter::GetDescription() const
+{
+    return this->m_sDescription;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Parameter::SetDescription(const MdfString& description)
+{
+    this->m_sDescription = description;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+ValueList* Parameter::GetValueList()
+{
+    return &this->m_collValueList;
+}


Property changes on: trunk/MgDev/Common/MdfModel/Parameter.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/Parameter.h
===================================================================
--- trunk/MgDev/Common/MdfModel/Parameter.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/Parameter.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,71 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef PARAMETER_H_
+#define PARAMETER_H_
+
+#include "MdfModel.h"
+#include "MdfRootObject.h"
+#include "MdfOwnerCollection.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    typedef MdfOwnerCollection<MdfString> ValueList;
+    EXPIMP_TEMPLATE template class MDFMODEL_API MdfOwnerCollection<MdfString>;
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION: Definition of a user-configurable parameter in the symbol definition
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API Parameter : public MdfRootObject
+    {
+    public:
+        // Construction, destruction, initialization
+        Parameter();
+        virtual ~Parameter();
+
+        const MdfString& GetIdentifier() const;
+        void SetIdentifier(const MdfString& identifier);
+
+        const MdfString& GetDefaultValue() const;
+        void SetDefaultValue(const MdfString& defaultValue);
+
+        const MdfString& GetDisplayName() const;
+        void SetDisplayName(const MdfString& displayName);
+
+        const MdfString& GetDescription() const;
+        void SetDescription(const MdfString& description);
+
+        ValueList* GetValueList();
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        Parameter(const Parameter&);
+        Parameter& operator=(const Parameter&);
+
+        // Data members
+        MdfString m_sIdentifier;
+        MdfString m_sDefaultValue;
+        MdfString m_sDisplayName;
+        MdfString m_sDescription;
+        ValueList m_collValueList;
+    };
+
+    typedef MdfOwnerCollection<Parameter> ParameterCollection;
+    EXPIMP_TEMPLATE template class MDFMODEL_API MdfOwnerCollection<Parameter>;
+
+END_NAMESPACE_MDFMODEL
+#endif // PARAMETER_H_


Property changes on: trunk/MgDev/Common/MdfModel/Parameter.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/Path.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/Path.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/Path.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,198 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The Path class implementation.
+//-------------------------------------------------------------------------
+
+#include "stdafx.h"
+#include "Path.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the Path class.
+//-------------------------------------------------------------------------
+Path::Path()
+{
+    // NOTE: if you change any defaults then you must also update
+    //       IOPath::Write to use the correct default values.
+    this->m_eLineCap = CapRound;
+    this->m_eLineJoin = JoinRound;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+Path::~Path()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Path::GetGeometry() const
+{
+    return m_sGeometry;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Path::SetGeometry(const MdfString& geometry)
+{
+    m_sGeometry = geometry;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Path::GetFillColor() const
+{
+    return m_sFillColor;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Path::SetFillColor(const MdfString& fillColor)
+{
+    m_sFillColor = fillColor;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Path::GetLineColor() const
+{
+    return m_sLineColor;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Path::SetLineColor(const MdfString& lineColor)
+{
+    m_sLineColor = lineColor;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Path::GetLineWeight() const
+{
+    return m_sLineWeight;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Path::SetLineWeight(const MdfString& lineWeight)
+{
+    m_sLineWeight = lineWeight;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Path::GetLineWeightScalable() const
+{
+    return m_sLineWeightScalable;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Path::SetLineWeightScalable(const MdfString& lineWeightScalable)
+{
+    m_sLineWeightScalable = lineWeightScalable;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+Path::LineCap Path::GetLineCap() const
+{
+    return m_eLineCap;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Path::SetLineCap(LineCap lineCap)
+{
+    m_eLineCap = lineCap;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+Path::LineJoin Path::GetLineJoin() const
+{
+    return m_eLineJoin;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Path::SetLineJoin(LineJoin lineJoin)
+{
+    m_eLineJoin = lineJoin;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Path::GetLineMiterLimit() const
+{
+    return m_sLineMiterLimit;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Path::SetLineMiterLimit(const MdfString& lineMiterLimit)
+{
+    m_sLineMiterLimit = lineMiterLimit;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Path::AcceptVisitor(IGraphicElementVisitor& igeVisitor)
+{
+    igeVisitor.VisitPath(*this);
+}


Property changes on: trunk/MgDev/Common/MdfModel/Path.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/Path.h
===================================================================
--- trunk/MgDev/Common/MdfModel/Path.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/Path.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,100 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef PATH_H_
+#define PATH_H_
+
+#include "MdfModel.h"
+#include "GraphicElement.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION: Building block of the geometry of a SymbolDefinition
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API Path : public GraphicElement
+    {
+    public:
+        enum LineCap
+        {
+            CapNone,
+            CapRound,
+            CapTriangle,
+            CapSquare
+        };
+
+        enum LineJoin
+        {
+            JoinNone,
+            JoinBevel,
+            JoinRound,
+            JoinMiter
+        };
+
+        // Construction, destruction, initialization
+        Path();
+        virtual ~Path();
+
+        const MdfString& GetGeometry() const;
+        void SetGeometry(const MdfString& geometry);
+
+        const MdfString& GetFillColor() const;
+        void SetFillColor(const MdfString& fillColor);
+
+        const MdfString& GetLineColor() const;
+        void SetLineColor(const MdfString& lineColor);
+
+        const MdfString& GetLineWeight() const;
+        void SetLineWeight(const MdfString& lineWeight);
+
+        // TODO: WCW - should this be a boolean property?
+        const MdfString& GetLineWeightScalable() const;
+        void SetLineWeightScalable(const MdfString& lineWeightScalable);
+
+        // TODO: WCW - should this be a string property?
+        LineCap GetLineCap() const;
+        void SetLineCap(LineCap lineCap);
+
+        // TODO: WCW - should this be a string property?
+        LineJoin GetLineJoin() const;
+        void SetLineJoin(LineJoin lineJoin);
+
+        const MdfString& GetLineMiterLimit() const;
+        void SetLineMiterLimit(const MdfString& lineMiterLimit);
+
+        virtual void AcceptVisitor(IGraphicElementVisitor& igeVisitor);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        Path(const Path&);
+        Path& operator=(const Path&);
+
+        // Data members
+        MdfString m_sGeometry;
+
+        MdfString m_sFillColor;
+        MdfString m_sLineColor;
+        MdfString m_sLineWeight;
+        MdfString m_sLineWeightScalable;
+
+        LineCap m_eLineCap;
+        LineJoin m_eLineJoin;
+        MdfString m_sLineMiterLimit;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // PATH_H_


Property changes on: trunk/MgDev/Common/MdfModel/Path.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/PointUsage.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/PointUsage.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/PointUsage.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,124 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The PointUsage class implementation.
+//-------------------------------------------------------------------------
+
+#include "PointUsage.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the PointUsage class.
+//-------------------------------------------------------------------------
+PointUsage::PointUsage()
+{
+    // NOTE: if you change any defaults then you must also update
+    //       IOPointUsage::Write to use the correct default values.
+    this->m_eAngleControl = FromAngle;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+PointUsage::~PointUsage()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+Usage::AngleControl PointUsage::GetAngleControl() const
+{
+    return this->m_eAngleControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void PointUsage::SetAngleControl(AngleControl angleControl)
+{
+    this->m_eAngleControl = angleControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& PointUsage::GetAngle() const
+{
+    return this->m_sAngle;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void PointUsage::SetAngle(const MdfString& angle)
+{
+    this->m_sAngle = angle;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& PointUsage::GetOriginOffsetX() const
+{
+    return this->m_sOriginOffsetX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void PointUsage::SetOriginOffsetX(const MdfString& originOffsetX)
+{
+    this->m_sOriginOffsetX = originOffsetX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& PointUsage::GetOriginOffsetY() const
+{
+    return this->m_sOriginOffsetY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void PointUsage::SetOriginOffsetY(const MdfString& originOffsetY)
+{
+    this->m_sOriginOffsetY = originOffsetY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void PointUsage::AcceptVisitor(IUsageVisitor& iuVisitor)
+{
+    iuVisitor.VisitPointUsage(*this);
+}


Property changes on: trunk/MgDev/Common/MdfModel/PointUsage.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/PointUsage.h
===================================================================
--- trunk/MgDev/Common/MdfModel/PointUsage.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/PointUsage.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,63 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef POINTUSAGE_H_
+#define POINTUSAGE_H_
+
+#include "MdfModel.h"
+#include "Usage.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API PointUsage : public Usage
+    {
+    public:
+        // Construction, destruction, initialization
+        PointUsage();
+        virtual ~PointUsage();
+
+        AngleControl GetAngleControl() const;
+        void SetAngleControl(AngleControl angleControl);
+
+        const MdfString& GetAngle() const;
+        void SetAngle(const MdfString& angle);
+
+        const MdfString& GetOriginOffsetX() const;
+        void SetOriginOffsetX(const MdfString& originOffsetX);
+
+        const MdfString& GetOriginOffsetY() const;
+        void SetOriginOffsetY(const MdfString& originOffsetY);
+
+        virtual void AcceptVisitor(IUsageVisitor& iuVisitor);
+
+     private:
+        // Hidden copy constructor and assignment operator.
+        PointUsage(const PointUsage&);
+        PointUsage& operator=(const PointUsage&);
+
+        // Data members
+        AngleControl m_eAngleControl;
+        MdfString m_sAngle;
+        MdfString m_sOriginOffsetX;
+        MdfString m_sOriginOffsetY;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // POINTUSAGE_H_


Property changes on: trunk/MgDev/Common/MdfModel/PointUsage.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/ResizeBox.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/ResizeBox.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/ResizeBox.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,133 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The ResizeBox class implementation.
+//-------------------------------------------------------------------------
+
+#include "ResizeBox.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the ResizeBox class.
+//-------------------------------------------------------------------------
+ResizeBox::ResizeBox()
+{
+    // NOTE: if you change any defaults then you must also update
+    //       IOResizeBox::Write to use the correct default values.
+    this->m_eGrowControl = GrowInXYMaintainAspect;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+ResizeBox::~ResizeBox()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& ResizeBox::GetPositionX() const
+{
+    return this->m_sPositionX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void ResizeBox::SetPositionX(const MdfString& positionX)
+{
+    this->m_sPositionX = positionX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& ResizeBox::GetPositionY() const
+{
+    return this->m_sPositionY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void ResizeBox::SetPositionY(const MdfString& positionY)
+{
+    this->m_sPositionY = positionY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& ResizeBox::GetSizeX() const
+{
+    return this->m_sSizeX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void ResizeBox::SetSizeX(const MdfString& sizeX)
+{
+    this->m_sSizeX = sizeX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& ResizeBox::GetSizeY() const
+{
+    return this->m_sSizeY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void ResizeBox::SetSizeY(const MdfString& sizeY)
+{
+    this->m_sSizeY = sizeY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+ResizeBox::GrowControl ResizeBox::GetGrowControl() const
+{
+    return this->m_eGrowControl;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void ResizeBox::SetGrowControl(GrowControl growControl)
+{
+    this->m_eGrowControl = growControl;
+}


Property changes on: trunk/MgDev/Common/MdfModel/ResizeBox.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/ResizeBox.h
===================================================================
--- trunk/MgDev/Common/MdfModel/ResizeBox.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/ResizeBox.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,73 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef RESIZEBOX_H_
+#define RESIZEBOX_H_
+
+#include "MdfModel.h"
+#include "MdfRootObject.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API ResizeBox : public MdfRootObject
+    {
+    public:
+        enum GrowControl
+        {
+            GrowInX,
+            GrowInY,
+            GrowInXY,
+            GrowInXYMaintainAspect
+        };
+
+        // Construction, destruction, initialization
+        ResizeBox();
+        virtual ~ResizeBox();
+
+        const MdfString& GetPositionX() const;
+        void SetPositionX(const MdfString& positionX);
+
+        const MdfString& GetPositionY() const;
+        void SetPositionY(const MdfString& positionY);
+
+        const MdfString& GetSizeX() const;
+        void SetSizeX(const MdfString& sizeX);
+
+        const MdfString& GetSizeY() const;
+        void SetSizeY(const MdfString& sizeY);
+
+        GrowControl GetGrowControl() const;
+        void SetGrowControl(GrowControl growControl);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        ResizeBox(const ResizeBox&);
+        ResizeBox& operator=(const ResizeBox&);
+
+        // Data members
+        MdfString m_sPositionX;
+        MdfString m_sPositionY;
+        MdfString m_sSizeX;
+        MdfString m_sSizeY;
+        GrowControl m_eGrowControl;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // RESIZEBOX_H_


Property changes on: trunk/MgDev/Common/MdfModel/ResizeBox.h
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: trunk/MgDev/Common/MdfModel/Rule.h
===================================================================
--- trunk/MgDev/Common/MdfModel/Rule.h	2007-03-05 18:42:16 UTC (rev 1151)
+++ trunk/MgDev/Common/MdfModel/Rule.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -21,13 +21,13 @@
 #include "MdfModel.h"
 #include "MdfOwnerCollection.h"
 #include "Label.h"
-#include "MdfRootObject.h"
 
 namespace MdfParser
 {
     class IOAreaRule;
     class IOLineRule;
     class IOPointRule;
+    class IOCompositeRule;
 }
 
 BEGIN_NAMESPACE_MDFMODEL
@@ -40,11 +40,12 @@
     // Filtering criteria takes the form of a tree that uses logical operators
     // to combine attribute-based and geometry-based filters.
     //-------------------------------------------------------------------------
-class MDFMODEL_API Rule : public MdfRootObject
+    class MDFMODEL_API Rule : public MdfRootObject
     {
         friend class MdfParser::IOAreaRule;
         friend class MdfParser::IOLineRule;
         friend class MdfParser::IOPointRule;
+        friend class MdfParser::IOCompositeRule;
 
     public:
         // Destruction
@@ -52,11 +53,11 @@
 
         // Operations
         // Property : LegendLabel
-        const MdfString& GetLegendLabel()const;
+        const MdfString& GetLegendLabel() const;
         void SetLegendLabel(const MdfString& pstrLegendLabel);
 
         // Property : Filter
-        const MdfString& GetFilter()const;
+        const MdfString& GetFilter() const;
         void SetFilter(const MdfString& strFilter);
 
         // Property : Label
@@ -82,11 +83,10 @@
 
         // Label for multivariate theming.
         Label* m_plblLabel;
-
     };
 
     typedef MdfOwnerCollection<Rule> RuleCollection;
     EXPIMP_TEMPLATE template class MDFMODEL_API MdfOwnerCollection<Rule>;
 
 END_NAMESPACE_MDFMODEL
-#endif //RULE_H_
+#endif // RULE_H_

Added: trunk/MgDev/Common/MdfModel/SimpleSymbol.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/SimpleSymbol.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/SimpleSymbol.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,125 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The SimpleSymbol class implementation.
+//-------------------------------------------------------------------------
+
+#include "SimpleSymbol.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the SimpleSymbol class.
+//-------------------------------------------------------------------------
+SimpleSymbol::SimpleSymbol()
+{
+    this->m_pSymbolDefinition = NULL;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+SimpleSymbol::~SimpleSymbol()
+{
+    if (this->m_pSymbolDefinition != NULL)
+        delete this->m_pSymbolDefinition;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+SimpleSymbolDefinition* SimpleSymbol::GetSymbolDefinition()
+{
+    return this->m_pSymbolDefinition;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SimpleSymbol::AdoptSymbolDefinition(SimpleSymbolDefinition* symbolDefinition)
+{
+    if (this->m_pSymbolDefinition != symbolDefinition)
+    {
+        if (this->m_pSymbolDefinition != NULL)
+            delete this->m_pSymbolDefinition;
+        this->m_pSymbolDefinition = symbolDefinition;
+
+        // Definition and Reference are mutually exclusive.  Setting one
+        // clears the other.
+        this->m_sSymbolReference.clear();
+    }
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+SimpleSymbolDefinition* SimpleSymbol::OrphanSymbolDefinition()
+{
+    SimpleSymbolDefinition* pRet = this->m_pSymbolDefinition;
+    this->m_pSymbolDefinition = NULL;
+    return pRet;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SimpleSymbol::GetSymbolReference() const
+{
+    return this->m_sSymbolReference;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SimpleSymbol::SetSymbolReference(const MdfString& symbolReference)
+{
+    this->m_sSymbolReference = symbolReference;
+
+    // Definition and Reference are mutually exclusive.  Setting one
+    // clears the other.
+    if (this->m_pSymbolDefinition != NULL)
+    {
+        delete this->m_pSymbolDefinition;
+        this->m_pSymbolDefinition = NULL;
+    }
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SimpleSymbol::GetRenderingPass() const
+{
+    return this->m_sRenderingPass;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SimpleSymbol::SetRenderingPass(const MdfString& renderingPass)
+{
+    this->m_sRenderingPass = renderingPass;
+}


Property changes on: trunk/MgDev/Common/MdfModel/SimpleSymbol.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/SimpleSymbol.h
===================================================================
--- trunk/MgDev/Common/MdfModel/SimpleSymbol.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/SimpleSymbol.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,63 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef SIMPLESYMBOL_H_
+#define SIMPLESYMBOL_H_
+
+#include "MdfModel.h"
+#include "MdfRootObject.h"
+#include "MdfOwnerCollection.h"
+#include "SimpleSymbolDefinition.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API SimpleSymbol : public MdfRootObject
+    {
+    public:
+        // Construction, destruction, initialization
+        SimpleSymbol();
+        virtual ~SimpleSymbol();
+
+        SimpleSymbolDefinition* GetSymbolDefinition();
+        void AdoptSymbolDefinition(SimpleSymbolDefinition* symbolDefinition);
+        SimpleSymbolDefinition* OrphanSymbolDefinition();
+
+        const MdfString& GetSymbolReference() const;
+        void SetSymbolReference(const MdfString& symbolReference);
+
+        const MdfString& GetRenderingPass() const;
+        void SetRenderingPass(const MdfString& renderingPass);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        SimpleSymbol(const SimpleSymbol&);
+        SimpleSymbol& operator=(const SimpleSymbol&);
+
+        // Data members
+        SimpleSymbolDefinition* m_pSymbolDefinition;
+        MdfString m_sSymbolReference;
+        MdfString m_sRenderingPass;
+    };
+
+    typedef MdfOwnerCollection<SimpleSymbol> SimpleSymbolCollection;
+    EXPIMP_TEMPLATE template class MDFMODEL_API MdfOwnerCollection<SimpleSymbol>;
+
+END_NAMESPACE_MDFMODEL
+#endif // SIMPLESYMBOL_H_


Property changes on: trunk/MgDev/Common/MdfModel/SimpleSymbol.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/SimpleSymbolDefinition.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/SimpleSymbolDefinition.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/SimpleSymbolDefinition.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,216 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The SimpleSymbolDefinition class implementation.
+//-------------------------------------------------------------------------
+
+#include "stdafx.h"
+#include "SimpleSymbolDefinition.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the SimpleSymbolDefinition class.
+//-------------------------------------------------------------------------
+SimpleSymbolDefinition::SimpleSymbolDefinition()
+{
+    this->m_pResizeBox = NULL;
+    this->m_pPointUsage = NULL;
+    this->m_pLineUsage = NULL;
+    this->m_pAreaUsage = NULL;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+SimpleSymbolDefinition::~SimpleSymbolDefinition()
+{
+    if (this->m_pResizeBox != NULL)
+        delete this->m_pResizeBox;
+    if (this->m_pPointUsage != NULL)
+        delete this->m_pPointUsage;
+    if (this->m_pLineUsage != NULL)
+        delete this->m_pLineUsage;
+    if (this->m_pAreaUsage != NULL)
+        delete this->m_pAreaUsage;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+GraphicElementCollection* SimpleSymbolDefinition::GetGraphics()
+{
+    return &this->m_collGraphics;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+ResizeBox* SimpleSymbolDefinition::GetResizeBox()
+{
+    return this->m_pResizeBox;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SimpleSymbolDefinition::AdoptResizeBox(ResizeBox* resizeBox)
+{
+    if (this->m_pResizeBox != resizeBox)
+    {
+        if (this->m_pResizeBox != NULL)
+            delete this->m_pResizeBox;
+        this->m_pResizeBox = resizeBox;
+    }
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+ResizeBox* SimpleSymbolDefinition::OrphanResizeBox()
+{
+    ResizeBox* pRet = this->m_pResizeBox;
+    this->m_pResizeBox = NULL;
+    return pRet;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+PointUsage* SimpleSymbolDefinition::GetPointUsage()
+{
+    return this->m_pPointUsage;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SimpleSymbolDefinition::AdoptPointUsage(PointUsage* pointUsage)
+{
+    if (this->m_pPointUsage != pointUsage)
+    {
+        if (this->m_pPointUsage != NULL)
+            delete this->m_pPointUsage;
+        this->m_pPointUsage = pointUsage;
+    }
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+PointUsage* SimpleSymbolDefinition::OrphanPointUsage()
+{
+    PointUsage* pRet = this->m_pPointUsage;
+    this->m_pPointUsage = NULL;
+    return pRet;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+LineUsage* SimpleSymbolDefinition::GetLineUsage()
+{
+    return this->m_pLineUsage;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SimpleSymbolDefinition::AdoptLineUsage(LineUsage* lineUsage)
+{
+    if (this->m_pLineUsage != lineUsage)
+    {
+        if (this->m_pLineUsage != NULL)
+            delete this->m_pLineUsage;
+        this->m_pLineUsage = lineUsage;
+    }
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+LineUsage* SimpleSymbolDefinition::OrphanLineUsage()
+{
+    LineUsage* pRet = this->m_pLineUsage;
+    this->m_pLineUsage = NULL;
+    return pRet;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+AreaUsage* SimpleSymbolDefinition::GetAreaUsage()
+{
+    return this->m_pAreaUsage;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SimpleSymbolDefinition::AdoptAreaUsage(AreaUsage* areaUsage)
+{
+    if (this->m_pAreaUsage != areaUsage)
+    {
+        if (this->m_pAreaUsage != NULL)
+            delete this->m_pAreaUsage;
+        this->m_pAreaUsage = areaUsage;
+    }
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+AreaUsage* SimpleSymbolDefinition::OrphanAreaUsage()
+{
+    AreaUsage* pRet = this->m_pAreaUsage;
+    this->m_pAreaUsage = NULL;
+    return pRet;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+ParameterCollection* SimpleSymbolDefinition::GetParameterDefinition()
+{
+    return &this->m_collParameters;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SimpleSymbolDefinition::AcceptVisitor(ISymbolDefinitionVisitor& isdVisitor)
+{
+    isdVisitor.VisitSimpleSymbolDefinition(*this);
+}


Property changes on: trunk/MgDev/Common/MdfModel/SimpleSymbolDefinition.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/SimpleSymbolDefinition.h
===================================================================
--- trunk/MgDev/Common/MdfModel/SimpleSymbolDefinition.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/SimpleSymbolDefinition.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,79 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef SIMPLESYMBOLDEFINITION_H_
+#define SIMPLESYMBOLDEFINITION_H_
+
+#include "MdfModel.h"
+#include "SymbolDefinition.h"
+#include "GraphicElement.h"
+#include "ResizeBox.h"
+#include "PointUsage.h"
+#include "LineUsage.h"
+#include "AreaUsage.h"
+#include "Parameter.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API SimpleSymbolDefinition : public SymbolDefinition
+    {
+    public:
+        // Construction, destruction, initialization
+        SimpleSymbolDefinition();
+        virtual ~SimpleSymbolDefinition();
+
+        GraphicElementCollection* GetGraphics();
+
+        ResizeBox* GetResizeBox();
+        void AdoptResizeBox(ResizeBox* resizeBox);
+        ResizeBox* OrphanResizeBox();
+
+        PointUsage* GetPointUsage();
+        void AdoptPointUsage(PointUsage* pointUsage);
+        PointUsage* OrphanPointUsage();
+
+        LineUsage* GetLineUsage();
+        void AdoptLineUsage(LineUsage* lineUsage);
+        LineUsage* OrphanLineUsage();
+
+        AreaUsage* GetAreaUsage();
+        void AdoptAreaUsage(AreaUsage* areaUsage);
+        AreaUsage* OrphanAreaUsage();
+
+        ParameterCollection* GetParameterDefinition();
+
+        virtual void AcceptVisitor(ISymbolDefinitionVisitor& isdVisitor);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        SimpleSymbolDefinition(const SimpleSymbolDefinition&);
+        SimpleSymbolDefinition& operator=(const SimpleSymbolDefinition&);
+
+        // Data members
+        GraphicElementCollection m_collGraphics;
+        ResizeBox* m_pResizeBox;
+        PointUsage* m_pPointUsage;
+        LineUsage* m_pLineUsage;
+        AreaUsage* m_pAreaUsage;
+        ParameterCollection m_collParameters;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // SIMPLESYMBOLDEFINITION_H_


Property changes on: trunk/MgDev/Common/MdfModel/SimpleSymbolDefinition.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/SymbolDefinition.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/SymbolDefinition.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/SymbolDefinition.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,77 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The SymbolDefinition class implementation.
+//-------------------------------------------------------------------------
+
+#include "stdafx.h"
+#include "SymbolDefinition.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the SymbolDefinition class.
+//-------------------------------------------------------------------------
+SymbolDefinition::SymbolDefinition()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+SymbolDefinition::~SymbolDefinition()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolDefinition::SetName(const MdfString& name)
+{
+    this->m_sName = name;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SymbolDefinition::GetName() const
+{
+    return this->m_sName;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolDefinition::SetDescription(const MdfString& description)
+{
+    this->m_sDescription = description;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SymbolDefinition::GetDescription() const
+{
+    return this->m_sDescription;
+}


Property changes on: trunk/MgDev/Common/MdfModel/SymbolDefinition.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/SymbolDefinition.h
===================================================================
--- trunk/MgDev/Common/MdfModel/SymbolDefinition.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/SymbolDefinition.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,56 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef SYMBOLDEFINITION_H_
+#define SYMBOLDEFINITION_H_
+
+#include "MdfModel.h"
+#include "MdfRootObject.h"
+#include "ISymbolDefinitionVisitor.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API SymbolDefinition : public MdfRootObject
+    {
+    public:
+        // Destruction
+        virtual ~SymbolDefinition();
+
+        void SetName(const MdfString& name);
+        const MdfString& GetName() const;
+
+        void SetDescription(const MdfString& description);
+        const MdfString& GetDescription() const;
+
+        virtual void AcceptVisitor(ISymbolDefinitionVisitor& isdVisitor) = 0;
+
+    protected:
+        // Construction, initialization
+        // Default constructor is protected to make this class abstract.
+        SymbolDefinition();
+
+    private:
+        // Data members
+        MdfString m_sName;
+        MdfString m_sDescription;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // SYMBOLDEFINITION_H_


Property changes on: trunk/MgDev/Common/MdfModel/SymbolDefinition.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/SymbolInstance.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/SymbolInstance.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/SymbolInstance.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,272 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The SymbolInstance class implementation.
+//-------------------------------------------------------------------------
+
+#include "SymbolInstance.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the SymbolInstance class.
+//-------------------------------------------------------------------------
+SymbolInstance::SymbolInstance()
+{
+    // NOTE: if you change any defaults then you must also update
+    //       IOSymbolInstance::Write to use the correct default values.
+    this->m_pSymbolDefinition = NULL;
+    this->m_eSizeContext = DeviceUnits;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+SymbolInstance::~SymbolInstance()
+{
+    if (this->m_pSymbolDefinition != NULL)
+        delete this->m_pSymbolDefinition;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+SymbolDefinition* SymbolInstance::GetSymbolDefinition()
+{
+    return this->m_pSymbolDefinition;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolInstance::AdoptSymbolDefinition(SymbolDefinition* symbolDefinition)
+{
+    if (this->m_pSymbolDefinition != symbolDefinition)
+    {
+        if (this->m_pSymbolDefinition != NULL)
+            delete this->m_pSymbolDefinition;
+        this->m_pSymbolDefinition = symbolDefinition;
+
+        // Definition and Reference are mutually exclusive.  Setting one
+        // clears the other.
+        this->m_sSymbolReference.clear();
+    }
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+SymbolDefinition* SymbolInstance::OrphanSymbolDefinition()
+{
+    SymbolDefinition* pRet = this->m_pSymbolDefinition;
+    this->m_pSymbolDefinition = NULL;
+    return pRet;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SymbolInstance::GetSymbolReference() const
+{
+    return this->m_sSymbolReference;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolInstance::SetSymbolReference(const MdfString& symbolReference)
+{
+    this->m_sSymbolReference = symbolReference;
+
+    // Definition and Reference are mutually exclusive.  Setting one
+    // clears the other.
+    if (this->m_pSymbolDefinition != NULL)
+    {
+        delete this->m_pSymbolDefinition;
+        this->m_pSymbolDefinition = NULL;
+    }
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SymbolInstance::GetScaleX() const
+{
+    return this->m_sScaleX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolInstance::SetScaleX(const MdfString& scaleX)
+{
+    this->m_sScaleX = scaleX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SymbolInstance::GetScaleY() const
+{
+    return this->m_sScaleY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolInstance::SetScaleY(const MdfString& scaleY)
+{
+    this->m_sScaleY = scaleY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SymbolInstance::GetInsertionOffsetX() const
+{
+    return this->m_sInsertionOffsetX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolInstance::SetInsertionOffsetX(const MdfString& insertionOffsetX)
+{
+    this->m_sInsertionOffsetX = insertionOffsetX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SymbolInstance::GetInsertionOffsetY() const
+{
+    return this->m_sInsertionOffsetY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolInstance::SetInsertionOffsetY(const MdfString& insertionOffsetY)
+{
+    this->m_sInsertionOffsetY = insertionOffsetY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+SizeContext SymbolInstance::GetSizeContext() const
+{
+    return this->m_eSizeContext;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolInstance::SetSizeContext(SizeContext sizeContext)
+{
+    this->m_eSizeContext = sizeContext;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SymbolInstance::GetDrawLast() const
+{
+    return this->m_sDrawLast;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolInstance::SetDrawLast(const MdfString& drawLast)
+{
+    this->m_sDrawLast = drawLast;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SymbolInstance::GetCheckExclusionRegion() const
+{
+    return this->m_sCheckExclusionRegion;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolInstance::SetCheckExclusionRegion(const MdfString& checkExclusionRegion)
+{
+    this->m_sCheckExclusionRegion = checkExclusionRegion;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SymbolInstance::GetAddToExclusionRegion() const
+{
+    return this->m_sAddToExclusionRegion;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolInstance::SetAddToExclusionRegion(const MdfString& addToExclusionRegion)
+{
+    this->m_sAddToExclusionRegion = addToExclusionRegion;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& SymbolInstance::GetPositioningAlgorithm() const
+{
+    return this->m_sPositioningAlgorithm;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void SymbolInstance::SetPositioningAlgorithm(const MdfString& positioningAlgorithm)
+{
+    this->m_sPositioningAlgorithm = positioningAlgorithm;
+}


Property changes on: trunk/MgDev/Common/MdfModel/SymbolInstance.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/SymbolInstance.h
===================================================================
--- trunk/MgDev/Common/MdfModel/SymbolInstance.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/SymbolInstance.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,101 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef SYMBOLINSTANCE_H_
+#define SYMBOLINSTANCE_H_
+
+#include "MdfModel.h"
+#include "MdfRootObject.h"
+#include "MdfOwnerCollection.h"
+#include "SymbolDefinition.h"
+#include "SizeContexts.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API SymbolInstance : public MdfRootObject
+    {
+    public:
+        // Construction, destruction, initialization
+        SymbolInstance();
+        virtual ~SymbolInstance();
+
+        SymbolDefinition* GetSymbolDefinition();
+        void AdoptSymbolDefinition(SymbolDefinition* symbolDefinition);
+        SymbolDefinition* OrphanSymbolDefinition();
+
+        const MdfString& GetSymbolReference() const;
+        void SetSymbolReference(const MdfString& symbolReference);
+
+        const MdfString& GetScaleX() const;
+        void SetScaleX(const MdfString& scaleX);
+
+        const MdfString& GetScaleY() const;
+        void SetScaleY(const MdfString& scaleY);
+
+        const MdfString& GetInsertionOffsetX() const;
+        void SetInsertionOffsetX(const MdfString& insertionOffsetX);
+
+        const MdfString& GetInsertionOffsetY() const;
+        void SetInsertionOffsetY(const MdfString& insertionOffsetY);
+
+        SizeContext GetSizeContext() const;
+        void SetSizeContext(SizeContext sizeContext);
+
+        // TODO: WCW - should this be a boolean property?
+        const MdfString& GetDrawLast() const;
+        void SetDrawLast(const MdfString& drawLast);
+
+        // TODO: WCW - should this be a boolean property?
+        const MdfString& GetCheckExclusionRegion() const;
+        void SetCheckExclusionRegion(const MdfString& checkExclusionRegion);
+
+        // TODO: WCW - should this be a boolean property?
+        const MdfString& GetAddToExclusionRegion() const;
+        void SetAddToExclusionRegion(const MdfString& addToExclusionRegion);
+
+        const MdfString& GetPositioningAlgorithm() const;
+        void SetPositioningAlgorithm(const MdfString& positioningAlgorithm);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        SymbolInstance(const SymbolInstance&);
+        SymbolInstance& operator=(const SymbolInstance&);
+
+        // Data members
+        SymbolDefinition* m_pSymbolDefinition;
+        MdfString m_sSymbolReference;
+
+        MdfString m_sScaleX;
+        MdfString m_sScaleY;
+        MdfString m_sInsertionOffsetX;
+        MdfString m_sInsertionOffsetY;
+        SizeContext m_eSizeContext;
+
+        MdfString m_sDrawLast;
+        MdfString m_sCheckExclusionRegion;
+        MdfString m_sAddToExclusionRegion;
+        MdfString m_sPositioningAlgorithm;
+    };
+
+    typedef MdfOwnerCollection<SymbolInstance> SymbolInstanceCollection;
+    EXPIMP_TEMPLATE template class MDFMODEL_API MdfOwnerCollection<SymbolInstance>;
+
+END_NAMESPACE_MDFMODEL
+#endif // SYMBOLINSTANCE_H_


Property changes on: trunk/MgDev/Common/MdfModel/SymbolInstance.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/Text.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/Text.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/Text.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,356 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The Text class implementation.
+//-------------------------------------------------------------------------
+
+#include "Text.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the Text class.
+//-------------------------------------------------------------------------
+Text::Text()
+{
+    this->m_pFrame = NULL;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+Text::~Text()
+{
+    if (this->m_pFrame != NULL)
+        delete this->m_pFrame;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetString() const
+{
+    return this->m_sString;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetString(const MdfString& string)
+{
+    this->m_sString = string;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetFontName() const
+{
+    return this->m_sFontName;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetFontName(const MdfString& fontName)
+{
+    this->m_sFontName = fontName;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetBold() const
+{
+    return this->m_sBold;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetBold(const MdfString& bold)
+{
+    this->m_sBold = bold;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetItalic() const
+{
+    return this->m_sItalic;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetItalic(const MdfString& italic)
+{
+    this->m_sItalic = italic;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetUnderlined() const
+{
+    return this->m_sUnderlined;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetUnderlined(const MdfString& underlined)
+{
+    this->m_sUnderlined = underlined;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetHeight() const
+{
+    return this->m_sHeight;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetHeight(const MdfString& height)
+{
+    this->m_sHeight = height;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetPositionX() const
+{
+    return this->m_sPositionX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetPositionX(const MdfString& positionX)
+{
+    this->m_sPositionX = positionX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetPositionY() const
+{
+    return this->m_sPositionY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetPositionY(const MdfString& positionY)
+{
+    this->m_sPositionY = positionY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetAngle() const
+{
+    return this->m_sAngle;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetAngle(const MdfString& angle)
+{
+    this->m_sAngle = angle;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetHorizontalAlignment() const
+{
+    return this->m_sHAlignment;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetHorizontalAlignment(const MdfString& hAlignment)
+{
+    this->m_sHAlignment = hAlignment;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetVerticalAlignment() const
+{
+    return this->m_sVAlignment;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetVerticalAlignment(const MdfString& vAlignment)
+{
+    this->m_sVAlignment = vAlignment;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetJustification() const
+{
+    return this->m_sJustification;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetJustification(const MdfString& justification)
+{
+    this->m_sJustification = justification;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetLineSpacing() const
+{
+    return this->m_sLineSpacing;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetLineSpacing(const MdfString& lineSpacing)
+{
+    this->m_sLineSpacing = lineSpacing;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetTextColor() const
+{
+    return this->m_sTextColor;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetTextColor(const MdfString& textColor)
+{
+    this->m_sTextColor = textColor;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& Text::GetGhostColor() const
+{
+    return this->m_sGhostColor;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::SetGhostColor(const MdfString& ghostColor)
+{
+    this->m_sGhostColor = ghostColor;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+TextFrame* Text::GetFrame()
+{
+    return this->m_pFrame;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::AdoptFrame(TextFrame* frame)
+{
+    if (this->m_pFrame != frame)
+    {
+        if (this->m_pFrame != NULL)
+            delete this->m_pFrame;
+        this->m_pFrame = frame;
+    }
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+TextFrame* Text::OrphanFrame()
+{
+    TextFrame* pRet = this->m_pFrame;
+    this->m_pFrame = NULL;
+    return pRet;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void Text::AcceptVisitor(IGraphicElementVisitor& igeVisitor)
+{
+    igeVisitor.VisitText(*this);
+}


Property changes on: trunk/MgDev/Common/MdfModel/Text.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/Text.h
===================================================================
--- trunk/MgDev/Common/MdfModel/Text.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/Text.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,118 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef TEXT_H_
+#define TEXT_H_
+
+#include "MdfModel.h"
+#include "GraphicElement.h"
+#include "TextFrame.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION: Building block of the graphics of a SymbolDefinition.
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API Text : public GraphicElement
+    {
+    public:
+        // Construction, destruction, initialization
+        Text();
+        virtual ~Text();
+
+        const MdfString& GetString() const;
+        void SetString(const MdfString& string);
+
+        const MdfString& GetFontName() const;
+        void SetFontName(const MdfString& fontName);
+
+        const MdfString& GetBold() const;
+        void SetBold(const MdfString& bold);
+
+        const MdfString& GetItalic() const;
+        void SetItalic(const MdfString& italic);
+
+        const MdfString& GetUnderlined() const;
+        void SetUnderlined(const MdfString& underlined);
+
+        const MdfString& GetHeight() const;
+        void SetHeight(const MdfString& height);
+
+        const MdfString& GetPositionX() const;
+        void SetPositionX(const MdfString& positionX);
+
+        const MdfString& GetPositionY() const;
+        void SetPositionY(const MdfString& positionY);
+
+        const MdfString& GetAngle() const;
+        void SetAngle(const MdfString& angle);
+
+        const MdfString& GetHorizontalAlignment() const;
+        void SetHorizontalAlignment(const MdfString& hAlignment);
+
+        const MdfString& GetVerticalAlignment() const;
+        void SetVerticalAlignment(const MdfString& vAlignment);
+
+        const MdfString& GetJustification() const;
+        void SetJustification(const MdfString& justification);
+
+        const MdfString& GetLineSpacing() const;
+        void SetLineSpacing(const MdfString& lineSpacing);
+
+        const MdfString& GetTextColor() const;
+        void SetTextColor(const MdfString& textColor);
+
+        const MdfString& GetGhostColor() const;
+        void SetGhostColor(const MdfString& ghostColor);
+
+        TextFrame* GetFrame();
+        void AdoptFrame(TextFrame* frame);
+        TextFrame* OrphanFrame();
+
+        virtual void AcceptVisitor(IGraphicElementVisitor& igeVisitor);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        Text(const Text&);
+        Text& operator=(const Text&);
+
+        // Data members
+        MdfString m_sString;
+        MdfString m_sFontName;
+
+        MdfString m_sBold;
+        MdfString m_sItalic;
+        MdfString m_sUnderlined;
+
+        MdfString m_sHeight;
+        MdfString m_sPositionX;
+        MdfString m_sPositionY;
+        MdfString m_sAngle;
+
+        MdfString m_sHAlignment;
+        MdfString m_sVAlignment;
+        MdfString m_sJustification;
+
+        MdfString m_sLineSpacing;
+        MdfString m_sTextColor;
+        MdfString m_sGhostColor;
+
+        TextFrame* m_pFrame;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // TEXT_H_


Property changes on: trunk/MgDev/Common/MdfModel/Text.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/TextFrame.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/TextFrame.cpp	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/TextFrame.cpp	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,112 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+//-------------------------------------------------------------------------
+// DESCRIPTION:
+// The TextFrame class implementation.
+//-------------------------------------------------------------------------
+
+#include "TextFrame.h"
+
+using namespace MDFMODEL_NAMESPACE;
+
+//-------------------------------------------------------------------------
+// PURPOSE: Initialize an instance of the TextFrame class.
+//-------------------------------------------------------------------------
+TextFrame::TextFrame()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE: Destructor. Delete all objects that have been created on the
+//          heap or have been adopted.
+//-------------------------------------------------------------------------
+TextFrame::~TextFrame()
+{
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& TextFrame::GetLineColor() const
+{
+    return this->m_sLineColor;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void TextFrame::SetLineColor(const MdfString& color)
+{
+    this->m_sLineColor = color;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& TextFrame::GetFillColor() const
+{
+    return this->m_sFillColor;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void TextFrame::SetFillColor(const MdfString& color)
+{
+    this->m_sFillColor = color;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& TextFrame::GetOffsetX() const
+{
+    return this->m_sOffsetX;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void TextFrame::SetOffsetX(const MdfString& offset)
+{
+    this->m_sOffsetX = offset;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+const MdfString& TextFrame::GetOffsetY() const
+{
+    return this->m_sOffsetY;
+}
+
+//-------------------------------------------------------------------------
+// PURPOSE:
+// PARAMETERS:
+//-------------------------------------------------------------------------
+void TextFrame::SetOffsetY(const MdfString& offset)
+{
+    this->m_sOffsetY = offset;
+}


Property changes on: trunk/MgDev/Common/MdfModel/TextFrame.cpp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/TextFrame.h
===================================================================
--- trunk/MgDev/Common/MdfModel/TextFrame.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/TextFrame.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,61 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef TEXTFRAME_H_
+#define TEXTFRAME_H_
+
+#include "MdfModel.h"
+#include "MdfRootObject.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API TextFrame : public MdfRootObject
+    {
+    public:
+        // Construction, destruction, initialization
+        TextFrame();
+        virtual ~TextFrame();
+
+        const MdfString& GetLineColor() const;
+        void SetLineColor(const MdfString& lineColor);
+
+        const MdfString& GetFillColor() const;
+        void SetFillColor(const MdfString& fillColor);
+
+        const MdfString& GetOffsetX() const;
+        void SetOffsetX(const MdfString& offsetX);
+
+        const MdfString& GetOffsetY() const;
+        void SetOffsetY(const MdfString& offsetY);
+
+    private:
+        // Hidden copy constructor and assignment operator.
+        TextFrame(const TextFrame&);
+        TextFrame& operator=(const TextFrame&);
+
+        // Data members
+        MdfString m_sLineColor;
+        MdfString m_sFillColor;
+        MdfString m_sOffsetX;
+        MdfString m_sOffsetY;
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // TEXTFRAME_H_


Property changes on: trunk/MgDev/Common/MdfModel/TextFrame.h
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/MgDev/Common/MdfModel/Usage.h
===================================================================
--- trunk/MgDev/Common/MdfModel/Usage.h	                        (rev 0)
+++ trunk/MgDev/Common/MdfModel/Usage.h	2007-03-06 01:18:33 UTC (rev 1152)
@@ -0,0 +1,56 @@
+//
+//  Copyright (C) 2007 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef USAGE_H_
+#define USAGE_H_
+
+#include "MdfModel.h"
+#include "MdfRootObject.h"
+#include "IUsageVisitor.h"
+
+BEGIN_NAMESPACE_MDFMODEL
+
+    //-------------------------------------------------------------------------
+    // DESCRIPTION:
+    //-------------------------------------------------------------------------
+    class MDFMODEL_API Usage : public MdfRootObject
+    {
+    public:
+        enum AngleControl
+        {
+            FromAngle,
+            FromGeometry
+        };
+
+        // Destruction
+        virtual ~Usage()
+        {
+        }
+
+        // Visitor Pattern method defined in Usage.
+        virtual void AcceptVisitor(IUsageVisitor& iuVisitor) = 0;
+
+    protected:
+        // Construction, initialization
+        // Default constructor is protected to make this class abstract.
+        Usage()
+        {
+        }
+    };
+
+END_NAMESPACE_MDFMODEL
+#endif // USAGE_H_


Property changes on: trunk/MgDev/Common/MdfModel/Usage.h
___________________________________________________________________
Name: svn:eol-style
   + native



More information about the mapguide-commits mailing list