Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]Decorator

    ciao.
    Ho implementato il pattern decorator su di una classe DrawableNode che renderizza una mesh quando è chiamata la funzione Draw.
    L'idea è quella di creare un decorator per eventuali effetti tipo la selezione , disegno quote e misure, ecc.. e aggiungere/rimuovere i decorator dinamicamente
    Per adesso ho creato il BoundingBoxDecorator che renderizza un box 3d attorno alla mesh del DrawableNode.
    Posto il codice:

    DrawableNode:

    codice:
        class DrawableNode : public Node
        {
        public:
        DrawableNode(){;}
        virtual ~DrawableNode();
    
        virtual void DrawNode(Renderer* pRenderer);
        void Selected(bool flag);// add boundingboxdecorator
        TriMeshPtr m_pMesh;
        };
    Decorator
    codice:
       
        class Decorator : public DrawableNode
        {
        public:
        Decorator(){};
        Decorator(DrawableNodePtr pComponent);
        virtual ~Decorator();
        void DrawNode(Renderer* pRenderer);
    
        protected:
        DrawableNodePtr m_pComponent;
    
        };
    DecoratorBoundingBox
    codice:
        class DecoratorBoundingBox : public Decorator
        {
        public:
        DecoratorBoundingBox();
        DecoratorBoundingBox(DrawableNodePtr pComponent);
        virtual ~DecoratorBoundingBox();
        virtual void DrawNode(Renderer* pRenderer);
        void DrawBoundingBox();
        };
    il mio problema è questo:
    è possibile aggiungere il decorator DecoratorBoundingBox dall' interno della DrawableNode?
    ad es per selezionare la mesh dall esterno basta fare:

    DrawableNode pNode = new DrawableNode
    .
    .
    .

    pNode = new DecoratorBoundingBox(pNode);


    ma per fare la stessa cosa dall interno della classe DrawableNode , come faccio?
    vorrei fare :

    void DrawableNode::Select()
    {
    this = new DecoratorBoundingBox(this);
    }

    ma mi da un errore.


    grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    up

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da giuseppe500
    ma mi da un errore.
    Credo che specificare l'errore sia abbastanza fondamentale...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.