Ejemplo n.º 1
0
Model *Costume::getModel() {
    ModelComponent *comp = getMainModelComponent();
    if (comp) {
        return comp->getModel();
    }
    return NULL;
}
ActorComponent::ptr ActorFactory::createModelComponent()
{
	ModelComponent* comp = new ModelComponent;
	comp->setId(++m_LastModelComponentId);

	return ActorComponent::ptr(comp);
}
Ejemplo n.º 3
0
ModelNode *Costume::getModelNodes() {
    ModelComponent *comp = getMainModelComponent();
    if (comp) {
        return comp->getHierarchy();
    }
    return NULL;
}
void DeconvolutionAlgorithm::GetModelFromImage(Model &model, const double* image, size_t width, size_t height, double phaseCentreRA, double phaseCentreDec, double pixelSizeX, double pixelSizeY, double phaseCentreDL, double phaseCentreDM, double spectralIndex, double refFreq, PolarizationEnum polarization)
{
	for(size_t y=0; y!=height; ++y)
	{
		for(size_t x=0; x!=width; ++x)
		{
			double value = image[y*width + x];
			if(value != 0.0 && std::isfinite(value))
			{
				long double l, m;
				ImageCoordinates::XYToLM<long double>(x, y, pixelSizeX, pixelSizeY, width, height, l, m);
				l += phaseCentreDL; m += phaseCentreDM;
				ModelComponent component;
				long double ra, dec;
				ImageCoordinates::LMToRaDec<long double>(l, m, phaseCentreRA, phaseCentreDec, ra, dec);
				std::stringstream nameStr;
				nameStr << "component" << model.SourceCount();
				component.SetSED(MeasuredSED(value, refFreq, spectralIndex, polarization));
				component.SetPosRA(ra);
				component.SetPosDec(dec);
				
				ModelSource source;
				source.SetName(nameStr.str());
				source.AddComponent(component);
				model.AddSource(source);
			}
		}
	}
}
Ejemplo n.º 5
0
void Costume::getBoundingBox(int *x1, int *y1, int *x2, int *y2) {
    for (int i = 0; i < _numComponents; i++) {
        ModelComponent *c = dynamic_cast<ModelComponent *>(_components[i]);
        if (c) {
            c->getBoundingBox(x1, y1, x2, y2);
        }
    }
}
Ejemplo n.º 6
0
void KeyframeComponent::init() {
    ModelComponent *mc = dynamic_cast<ModelComponent *>(_parent);
    if (mc) {
        _anim = new Animation(_fname, mc->getAnimManager(), _priority1, _priority2);
    } else {
        Debug::warning(Debug::Costumes, "Parent of %s was not a model", _fname.c_str());
        _anim = NULL;
    }
}
Ejemplo n.º 7
0
void Costume::getBoundingBox(int *x1, int *y1, int *x2, int *y2) {
	for (int i = 0; i < _numComponents; i++) {
		if (_components[i] &&(_components[i]->isComponentType('M','M','D','L') ||
							  _components[i]->isComponentType('M','O','D','L'))) {
			ModelComponent *c = static_cast<ModelComponent *>(_components[i]);
			c->getBoundingBox(x1, y1, x2, y2);
		}
	}
}
Ejemplo n.º 8
0
void KeyframeComponent::init() {
	if (_parent->isComponentType('M','M','D','L') ||
		_parent->isComponentType('M','O','D','L')) {
		ModelComponent *mc = static_cast<ModelComponent *>(_parent);
		_anim = new Animation(_name, mc->getAnimManager(), _priority1, _priority2);
	} else {
		Debug::warning(Debug::Costumes, "Parent of %s was not a model", _name.c_str());
		_anim = NULL;
	}
}
Ejemplo n.º 9
0
SpriteComponent::~SpriteComponent() {
	if (_sprite) {
		if (_parent) {
			MeshComponent *mc = static_cast<MeshComponent *>(_parent);
			if (mc) {
				if (mc->getParent()->isComponentType('M','M','D','L') ||
					mc->getParent()->isComponentType('M','O','D','L')) {
					ModelComponent *mdlc = static_cast<ModelComponent *>(mc->getParent());
					if (mdlc->getHierarchy())
						mc->getNode()->removeSprite(_sprite);
				}
			}
		}
		delete _sprite->_material;
		delete _sprite;
	}
}
Ejemplo n.º 10
0
void MaterialComponent::init() {
	_mat = NULL;
	if (_parent->isComponentType('M','M','D','L') ||
		_parent->isComponentType('M','O','D','L')) {
		ModelComponent *p = static_cast<ModelComponent *>(_parent);
		Model *model = p->getModel();
		if (model) {
			for (int i = 0; i < model->_numMaterials; ++i) {
				if (_name.compareToIgnoreCase(model->_materials[i]->getFilename()) == 0) {
					_mat = model->_materials[i];
					return;
				}
			}
		}
	} else {
		warning("Parent of a MaterialComponent not a ModelComponent. %s %s", _name.c_str(), _cost->getFilename().c_str());
	}
}
void DeconvolutionAlgorithm::GetModelFromIQUVImage(Model &model, const double* images[4], size_t width, size_t height, double phaseCentreRA, double phaseCentreDec, double pixelSizeX, double pixelSizeY, double phaseCentreDL, double phaseCentreDM, double spectralIndex, double refFreq)
{
	for(size_t y=0; y!=height; ++y)
	{
		for(size_t x=0; x!=width; ++x)
		{
			bool isNonZero = false;
			double values[4];
			for(size_t p=0; p!=4; ++p)
			{
				values[p] = images[p][y*width + x];
				if(values[p] != 0.0 && std::isfinite(values[p]))
					isNonZero = true;
			}
			if(isNonZero)
			{
				long double l, m;
				ImageCoordinates::XYToLM<long double>(x, y, pixelSizeX, pixelSizeY, width, height, l, m);
				l += phaseCentreDL; m += phaseCentreDM;
				ModelComponent component;
				long double ra, dec;
				ImageCoordinates::LMToRaDec<long double>(l, m, phaseCentreRA, phaseCentreDec, ra, dec);
				std::stringstream nameStr;
				nameStr << "component" << model.SourceCount();
				MeasuredSED sed;
				component.SetSED(MeasuredSED(values, refFreq));
				component.SetPosRA(ra);
				component.SetPosDec(dec);
				
				ModelSource source;
				source.SetName(nameStr.str());
				source.AddComponent(component);
				model.AddSource(source);
			}
		}
	}
}