Class CollisionDetectorPtr


  • public class CollisionDetectorPtr
    extends java.lang.Object
    Ptr stores a pointer and optionally takes ownership of the value.
    • Constructor Detail

      • CollisionDetectorPtr

        public CollisionDetectorPtr​(long cPtr,
                                    boolean cMemoryOwn)
      • CollisionDetectorPtr

        public CollisionDetectorPtr()
        Default constructor yielding a NULL-pointer.
      • CollisionDetectorPtr

        public CollisionDetectorPtr​(CollisionDetector ptr)
        Do not take ownership of ptr.

        ptr can be null.

        The constructor is implicit on purpose.
    • Method Detail

      • delete

        public void delete()
      • isShared

        public boolean isShared()
        check if this Ptr has shared ownership or none
        ownership
        Returns:
        true if Ptr has shared ownership, false if it has no ownership.
      • isNull

        public boolean isNull()
        checks if the pointer is null
        Returns:
        Returns true if the pointer is null
      • inCollision

        public boolean inCollision​(State state,
                                   CollisionDetector.CollisionDetectorQueryResult result,
                                   boolean stopAtFirstContact)
        Check the workcell for collisions.

        Parameters:
        state - [in] The state for which to check for collisions.
        result - [out] If non-NULL, the pairs of colliding frames are
        inserted in result.
        stopAtFirstContact - [in] If result is non-NULL and
        stopAtFirstContact is true, then only the first colliding pair is
        inserted in result. By default all colliding pairs are inserted.

        Returns:
        true if a collision is detected; false otherwise.
      • inCollision

        public boolean inCollision​(State state,
                                   CollisionDetector.CollisionDetectorQueryResult result)
        Check the workcell for collisions.

        Parameters:
        state - [in] The state for which to check for collisions.
        result - [out] If non-NULL, the pairs of colliding frames are
        inserted in result.


        Returns:
        true if a collision is detected; false otherwise.
      • inCollision

        public boolean inCollision​(State state)
        Check the workcell for collisions.

        Parameters:
        state - [in] The state for which to check for collisions.



        Returns:
        true if a collision is detected; false otherwise.
      • inCollision

        public boolean inCollision​(State state,
                                   ProximityData data)
        Check the workcell for collisions.
        Parameters:
        state - [in] The state for which to check for collisions.
        data - [in/out] Defines parameters for the collision check, the results and also
        enables caching inbetween calls to incollision
        Returns:
        true if a collision is detected; false otherwise.
      • inCollision

        public boolean inCollision​(State state,
                                   FramePairVector result,
                                   boolean stopAtFirstContact)
        Check the workcell for collisions.

        Parameters:
        state - [in] The state for which to check for collisions.
        result - [out] Where to store pairs of colliding frames.
        stopAtFirstContact - [in] If result is non-NULL and
        stopAtFirstContact is true, then only the first colliding pair is
        inserted in result. By default all colliding pairs are inserted.

        Returns:
        true if a collision is detected; false otherwise.
      • inCollision

        public boolean inCollision​(State state,
                                   FramePairVector result)
        Check the workcell for collisions.

        Parameters:
        state - [in] The state for which to check for collisions.
        result - [out] Where to store pairs of colliding frames.


        Returns:
        true if a collision is detected; false otherwise.
      • getCollisionStrategy

        public CollisionStrategyPtr getCollisionStrategy()
        Get the narrow-phase collision strategy.
        Returns:
        the strategy if set, otherwise NULL.
      • addGeometry

        public boolean addGeometry​(FramePtr frame,
                                   GeometryPtr geometry)
        Add Geometry associated to frame

        The current shape of the geometry is copied, hence later changes to geometry has no
        effect

        Parameters:
        frame - [in] Frame to associate geometry to
        geometry - [in] Geometry to add
      • removeGeometry

        public void removeGeometry​(FramePtr frame,
                                   GeometryPtr geometry)
        Removes geometry from CollisionDetector

        The id of the geometry is used to match the collision model to the geometry.

        Parameters:
        frame - [in] The frame which has the geometry associated
        geometry - [in] Geometry with the id to be removed
      • removeGeometry

        public void removeGeometry​(FramePtr frame,
                                   java.lang.String geometryId)
        Removes geometry from CollisionDetector

        The geometryId is used to match the collision model to the geometry.

        Parameters:
        frame - [in] The frame which has the geometry associated
        geometryId - [in] Id of geometry to be removed
      • getGeometryIDs

        public vector_s getGeometryIDs​(FramePtr frame)
        return the ids of all the geometries of this frames.
      • hasGeometry

        public boolean hasGeometry​(FramePtr frame,
                                   java.lang.String geometryId)
        Returns whether frame has an associated geometry with geometryId.
        Parameters:
        frame - [in] Frame in question
        geometryId - [in] Id of the geometry
      • getGeometry

        public GeometryPtr getGeometry​(FramePtr frame,
                                       java.lang.String geometryId)
        Get the geometry from its ID
        Parameters:
        frame - [in] the frame of the geometry
        geometryId - [in] the ID of the geometry
        Returns:
        Pointer to the geometry
      • calculate

        public ProximityStrategyData calculate​(State state,
                                               ProximityStrategyDataPtr settings,
                                               SWIGTYPE_p_rw__core__PtrT_std__vectorT_rw__proximity__ProximityStrategyData_t_t results)
        Performece the Proximity calculation based on the chosen strategy type.
        As the varius strategies usese differenct settings all settings will be extracted
        from settings. If more then the default result is needed (first collision or shortest
        distance) result can given to get the extra info.
        Parameters:
        state - [in] The state the proximity calculation should be done in.
        settings - [in] The settings used for the calculations. Different settings are used
        for different ProximityStrategies:

        For CollisionStrategy the Collision Query Type is used. if not given only first collision
        is detected

        For DistanceStrategy no settings are used and it is expected to be null, otherwise an
        exception is thrown.

        For DistanceMultiStrategy the tolerance is used which is the maximum distance allowed for
        the result to be recorded. if not given the tolerance is set to the largest finite double

        results - [in/out] Defines parameters for the ProximityCalculation, stores the
        results and also enables caching inbetween calls.
        Returns:
        If no result is available an empty ProximityStrategyData is returned. else for
        Collisions the first contact is returned and for distance the shortest distance is
        returned
      • calculate

        public ProximityStrategyData calculate​(State state,
                                               ProximityStrategyDataPtr settings)
        Performece the Proximity calculation based on the chosen strategy type.
        As the varius strategies usese differenct settings all settings will be extracted
        from settings. If more then the default result is needed (first collision or shortest
        distance) result can given to get the extra info.
        Parameters:
        state - [in] The state the proximity calculation should be done in.
        settings - [in] The settings used for the calculations. Different settings are used
        for different ProximityStrategies:

        For CollisionStrategy the Collision Query Type is used. if not given only first collision
        is detected

        For DistanceStrategy no settings are used and it is expected to be null, otherwise an
        exception is thrown.

        For DistanceMultiStrategy the tolerance is used which is the maximum distance allowed for
        the result to be recorded. if not given the tolerance is set to the largest finite double


        Returns:
        If no result is available an empty ProximityStrategyData is returned. else for
        Collisions the first contact is returned and for distance the shortest distance is
        returned
      • calculate

        public ProximityStrategyData calculate​(State state)
        Performece the Proximity calculation based on the chosen strategy type.
        As the varius strategies usese differenct settings all settings will be extracted
        from settings. If more then the default result is needed (first collision or shortest
        distance) result can given to get the extra info.
        Parameters:
        state - [in] The state the proximity calculation should be done in.


        For CollisionStrategy the Collision Query Type is used. if not given only first collision
        is detected

        For DistanceStrategy no settings are used and it is expected to be null, otherwise an
        exception is thrown.

        For DistanceMultiStrategy the tolerance is used which is the maximum distance allowed for
        the result to be recorded. if not given the tolerance is set to the largest finite double


        Returns:
        If no result is available an empty ProximityStrategyData is returned. else for
        Collisions the first contact is returned and for distance the shortest distance is
        returned
      • getProximityFilterStrategy

        public ProximityFilterStrategyPtr getProximityFilterStrategy()
        The Proximity Filter strategy of the ProximityCalculator.
      • setProximityFilterStrategy

        public void setProximityFilterStrategy​(ProximityFilterStrategyPtr proxStrategy)
        Set the Proximity Filter strategy of the ProximityCalculator.
        Parameters:
        proxStrategy - [in] the new ProximityFilterStrategy.
        The strategy is not copied so changes to the strategy will affect the calculator
      • setStrategy

        public void setStrategy​(CollisionStrategyPtr strategy)
        Set a new strategy. OBS. models are stored in the strategy, so make sure that the
        new strategy includes all nessesary models
        Parameters:
        strategy - [in] the new strategy
      • getStrategy

        public CollisionStrategyPtr getStrategy()
        Get the ProximityStrategy.
        Returns:
        the strategy if set, otherwise NULL.
      • addRule

        public void addRule​(ProximitySetupRule rule)
        Adds rule specifying inclusion/exclusion of frame pairs in Proximity calculation
      • removeRule

        public void removeRule​(ProximitySetupRule rule)
        Removes rule specifying inclusion/exclusion of frame pairs in Proximity calculation
      • getComputationTime

        public double getComputationTime()
        Get the computation time used in the inCollision functions.
        Returns:
        the total computation time.
      • getNoOfCalls

        public long getNoOfCalls()
        Get the number of times the inCollision functions have been called.
        Returns:
        number of calls to inCollision functions.
      • resetComputationTimeAndCount

        public void resetComputationTimeAndCount()
        Reset the counter for inCollision invocations and the computation timer.