Wall_Circle class
Contents
Description
This is a sub-class of the Wall class for the implementation of Circle rigid walls.
classdef Wall_Circle < Wall
Public properties
properties (SetAccess = public, GetAccess = public)
% Position
center double = double.empty; % coordinates of center point
radius double = double.empty; % radius
end
Constructor method
methods
function this = Wall_Circle()
this = this@Wall(Wall.CIRCLE);
this.setDefaultProps();
end
end
Public methods: implementation of super-class declarations
methods
%------------------------------------------------------------------
function setDefaultProps(this)
% Behavior flags
this.fixed_motion = false;
this.fixed_therm = false;
this.insulated = false;
% Mechanical state variables
this.veloc_trl = [0;0];
this.veloc_rot = 0;
% Thermal state variables
this.temperature = 0;
end
%------------------------------------------------------------------
function setFCMotion(this,time,dt)
this.veloc_trl = [0;0];
this.veloc_rot = 0;
if (~this.fixed_motion)
return;
end
% Translation
for i = 1:length(this.fc_translation)
if (this.fc_translation(i).isActive(time))
this.veloc_trl = this.veloc_trl + this.fc_translation(i).getValue(time);
end
end
this.center = this.center + this.veloc_trl * dt;
% Rotation
for i = 1:length(this.fc_rotation)
if (this.fc_rotation(i).isActive(time))
this.veloc_rot = this.veloc_rot + this.fc_rotation(i).getValue(time);
end
end
end
%------------------------------------------------------------------
function [x1,y1,x2,y2] = getBBoxLimits(this)
x1 = this.center(1) - this.radius;
y1 = this.center(2) - this.radius;
x2 = this.center(1) + this.radius;
y2 = this.center(2) + this.radius;
end
end
end