VR-Forces 4.0.4 Class Documentation
include/vrfmsgs/ifCrtVrfObj.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2001 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: ifCrtVrfObj.h,v $ $Revision: 1.24 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef DtIfCreateVrfObject_H_
00013 #define DtIfCreateVrfObject_H_
00014 
00015 #include <vrfExtProtocol/ifaceCont.h>
00016 #include <vlutil/vlString.h>
00017 #include <vrfExtProtocol/objType.h>
00018 #include <vlpi/disEnums.h>
00019 #include <vlutil/vlList.h>
00020 #include <vlpi/appearance.h>
00021 #include <vlpi/simulationAddress.h>
00022 #include "vrfmsgs/vrfmsgsDefines.h"
00023 #include "vrftasks/adminContent.h"
00024 #include <vector>
00025 #include <list>
00026 
00085 class DT_DLL_vrfmsgs DtIfCreateVrfObject : public DtSimInterfaceContent
00086 {
00087 public:
00088 
00090    DtIfCreateVrfObject();
00091 
00093    virtual ~DtIfCreateVrfObject();
00094 
00096    DtIfCreateVrfObject(const DtIfCreateVrfObject& orig);
00097 
00099    DtIfCreateVrfObject& operator=(const DtIfCreateVrfObject& orig);
00100 
00102    virtual DtSimInterfaceContent * clone() const;
00103 
00106    virtual int type() const;
00107 
00110    virtual unsigned long requestId() const;
00111    virtual void setRequestId(unsigned long requestId);
00112 
00115    virtual void setVrfProcessAddress(const DtSimulationAddress & address);
00116    virtual const DtSimulationAddress & vrfProcessAddress() const;
00117 
00121    virtual void setObjectName(const DtString & objectName);
00122    virtual const DtString & objectName() const;
00123 
00125    virtual void setObjectType(const DtObjectType & objectType);
00126    virtual const DtObjectType & objectType() const;
00127 
00129    virtual void setForceType(const DtForceType forceType);
00130    virtual DtForceType forceType() const;
00131 
00133    virtual void setObjectLabel(const DtString & objectLabel);
00134    virtual const DtString & objectLabel() const;
00135 
00137    virtual const DtVector & position() const;
00138    virtual void setPosition(const DtVector & position);
00139    
00141    virtual DtReal heading() const;
00142    virtual void setHeading(DtReal heading);
00143 
00147    virtual const std::vector<DtVector>& vertexList() const;
00150    virtual const DtList& vertices() const;
00152    virtual void addVertex(const DtVector & vertex);
00153 
00156    virtual bool projection() const;
00157    virtual void setProjection(bool projection);
00158 
00162    virtual bool closedFigure() const;
00163    virtual void setClosedFigure(bool closedFigure);
00164 
00166    virtual const DtAppearance& appearance();
00167    virtual void setAppearance(const DtAppearance& appearance);
00168 
00174    virtual bool createSubObjects() const;
00175    virtual void setCreateSubObjects(bool createSubObjects);
00176 
00183    virtual bool addToOrganization() const;
00184    virtual void setAddToOrganization(bool addToOrg);
00185 
00189    virtual bool clampToGround() const;
00190    virtual void setClampToGround(bool clamp);
00191 
00195 
00196    virtual DtString initialFormation() const;
00197    virtual void setInitialFormation(const DtString& formation);
00199 
00203    virtual DtAggregateState initialAggregateState() const;
00204    virtual void setInitialAggregateState(DtAggregateState aggregateState);
00205 
00207    virtual std::list<DtAdminContent*>* initialAdminContent();
00208    virtual void setInitialAdminContent(std::list<DtAdminContent*> adminContent);
00209    virtual void addInitialAdminContent(DtAdminContent* adminContent);
00210 
00212    virtual std::list<DtSimInterfaceContent*>* initialInterfaceContent();
00213    virtual void setInitialInterfaceContent(std::list<DtSimInterfaceContent*> adminContent);
00214    virtual void addInitialInterfaceContent(DtSimInterfaceContent* adminContent);
00215 
00218    void setStartPosition(const DtVector& position);
00219    const DtVector& startPosition() const;
00220    void setEndPosition(const DtVector& position);
00221    const DtVector& endPosition() const;
00222    void setName(const DtString & name);
00223    const DtString & name() const;
00224 
00225 
00226    virtual void setUserData( const DtString& userData );
00227    virtual DtString userData() const;
00228 
00229 
00230    virtual int netRepSize() const;
00231    virtual bool setFromNet(const char* contentBuffer, 
00232       unsigned contentSize);
00233    virtual bool setToNet();
00234 
00235    virtual void printDataToString(DtString& str);
00236 
00237    static DtSimInterfaceContent* creator();
00238 
00239 protected:
00242 
00245    void copyList(const DtList & fromList);
00246 
00248    void emptyList();
00249 
00250 protected:
00251 
00252    DtU32                myRequestId;
00253    DtSimulationAddress  myVrfProcessAddress;
00254    DtString             myObjectName;
00255    DtObjectType         myObjectType;
00256    DtForceType          myForceType;
00257    DtString             myObjectLabel;
00258    DtReal               myHeading;
00259    bool            myClosedFigure;
00260    bool            myProjection;
00261    std::vector<DtVector> myVertexList;
00263    mutable DtList  myVertices;
00264    DtAppearance    myAppearance;
00265    bool            myCreateSubObjects;
00266    bool            myAddToOrganization;
00267    bool            myClampToGround;
00268    DtString        myInitialFormation;
00269    DtU8           myInitialAggregateState;
00270    std::list<DtAdminContent*> myAdminContent;
00271    std::list<DtSimInterfaceContent*> myInterfaceContent;
00272    DtString       myUserData;
00273 };
00274 
00275 inline void DtIfCreateVrfObject::setStartPosition(const DtVector& position)
00276 {
00277    setPosition(position);
00278 }
00279 
00280 inline const DtVector& DtIfCreateVrfObject::startPosition() const
00281 {
00282    return position();
00283 }
00284 
00285 inline void DtIfCreateVrfObject::setEndPosition(const DtVector& position)
00286 {
00287    addVertex(position);
00288 }
00289 
00290 inline const DtVector& DtIfCreateVrfObject::endPosition() const
00291 {
00292    if (myVertices.count() > 0)
00293    {
00294       return *(DtVector*)myVertices.last()->data();
00295    }
00296 
00297    else
00298    {
00299       return DtVector::zero();
00300    }
00301 }
00302 
00303 inline void DtIfCreateVrfObject::setName(const DtString & name)
00304 {
00305    setObjectName(name);
00306 }
00307 
00308 inline const DtString& DtIfCreateVrfObject::name() const
00309 {
00310    return objectName();
00311 }
00312 
00313 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)