CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 2 of 2
  1. #1
    Join Date
    Dec 2010
    Posts
    907

    Impact of Interface changed?

    I am not 100% confident that changing the existing interfaces will not be error-prone.
    Should I discard the new changes for ease of use or
    Adapt to new changes but having a higher risk of introducing new bugs?

    old
    Code:
    ///ContactResultCallback is used to report contact points
    	struct	ContactResultCallback
    	{
    		short int	m_collisionFilterGroup;
    		short int	m_collisionFilterMask;
    		
    		ContactResultCallback()
    			:m_collisionFilterGroup(btBroadphaseProxy::DefaultFilter),
    			m_collisionFilterMask(btBroadphaseProxy::AllFilter)
    		{
    		}
    
    		virtual ~ContactResultCallback()
    		{
    		}
    		
    		virtual bool needsCollision(btBroadphaseProxy* proxy0) const
    		{
    			bool collides = (proxy0->m_collisionFilterGroup & m_collisionFilterMask) != 0;
    			collides = collides && (m_collisionFilterGroup & proxy0->m_collisionFilterMask);
    			return collides;
    		}
    
    		virtual	btScalar	addSingleResult(btManifoldPoint& cp,	const btCollisionObject* colObj0,int partId0,int index0,const btCollisionObject* colObj1,int partId1,int index1) = 0;
    	};
    New:
    Code:
    ///ContactResultCallback is used to report contact points
    	struct	ContactResultCallback
    	{
    		short int	m_collisionFilterGroup;
    		short int	m_collisionFilterMask;
    		
    		ContactResultCallback()
    			:m_collisionFilterGroup(btBroadphaseProxy::DefaultFilter),
    			m_collisionFilterMask(btBroadphaseProxy::AllFilter)
    		{
    		}
    
    		virtual ~ContactResultCallback()
    		{
    		}
    		
    		virtual bool needsCollision(btBroadphaseProxy* proxy0) const
    		{
    			bool collides = (proxy0->m_collisionFilterGroup & m_collisionFilterMask) != 0;
    			collides = collides && (m_collisionFilterGroup & proxy0->m_collisionFilterMask);
    			return collides;
    		}
    
    		virtual	btScalar	addSingleResult(btManifoldPoint& cp,	const btCollisionObjectWrapper* colObj0Wrap,int partId0,int index0,const btCollisionObjectWrapper* colObj1Wrap,int partId1,int index1) = 0;
    	};
    Last edited by lucky6969b; October 28th, 2014 at 03:08 AM.

  2. #2
    Arjay's Avatar
    Arjay is offline Moderator / EX MS MVP Power Poster
    Join Date
    Aug 2004
    Posts
    13,490

    Re: Impact of Interface changed?

    The fundamental rule of an interface is that it is generally immutable once published.

    So if 'users' are using your interface and you can't force to modify their code, then don't change the interface.

    However, if you are the only one that uses the interface and know the spots where you are calling the interface, you are free to change it - this is commonly called 'refactoring'.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured