MODULE = Ogre PACKAGE = Ogre::ManualObject
## note: if constructor/destructor ever added, refer to BillboardSet.xs
## (really need to fix that....)
void
ManualObject::clear()
void
ManualObject::estimateVertexCount(size_t vcount)
void
ManualObject::estimateIndexCount(size_t icount)
void
ManualObject::begin(String materialName, int opType=RenderOperation::OT_TRIANGLE_LIST)
C_ARGS:
materialName, (RenderOperation::OperationType)opType
void
ManualObject::setDynamic(bool dyn)
bool
ManualObject::getDynamic()
void
ManualObject::beginUpdate(size_t sectionIndex)
void
ManualObject::position(...)
CODE:
if (sv_isobject(ST(1)) && sv_derived_from(ST(1), "Ogre::Vector3")) {
Vector3 *vec = (Vector3 *) SvIV((SV *) SvRV(ST(1))); // TMOGRE_IN
THIS->position(*vec);
}
else if (items == 4) {
THIS->position((Real)SvNV(ST(1)), (Real)SvNV(ST(2)), (Real)SvNV(ST(3)));
}
else {
croak("Usage: Ogre::ManualObject::position(THIS, vec) or (THIS, x , y, z)\n");
}
## XXX: one day when I am a big boy I will know how to typemap Vector3 OR Reals
void
ManualObject::normal(...)
CODE:
if (sv_isobject(ST(1)) && sv_derived_from(ST(1), "Ogre::Vector3")) {
Vector3 *vec = (Vector3 *) SvIV((SV *) SvRV(ST(1))); // TMOGRE_IN
THIS->normal(*vec);
}
else if (items == 4) {
THIS->normal((Real)SvNV(ST(1)), (Real)SvNV(ST(2)), (Real)SvNV(ST(3)));
}
else {
croak("Usage: Ogre::ManualObject::normal(THIS, vec) or (THIS, x , y, z)\n");
}
void
ManualObject::textureCoord(...)
PREINIT:
char *usage = "Usage: Ogre::ManualObject::textureCoord(THIS, vec2) or (THIS, vec3) or (THIS, u [, v [, w]])\n";
CODE:
if (items == 2) {
if (sv_isobject(ST(1)) && sv_derived_from(ST(1), "Ogre::Vector2")) {
Vector2 *vec = (Vector2 *) SvIV((SV *) SvRV(ST(1))); // TMOGRE_IN
THIS->textureCoord(*vec);
}
else if (sv_isobject(ST(1)) && sv_derived_from(ST(1), "Ogre::Vector3")) {
Vector3 *vec = (Vector3 *) SvIV((SV *) SvRV(ST(1))); // TMOGRE_IN
THIS->textureCoord(*vec);
}
else if (looks_like_number(ST(1))) {
THIS->textureCoord((Real)SvNV(ST(1)));
}
else {
croak("%s", usage);
}
}
else if (items == 3) { // assuming Real
THIS->textureCoord((Real)SvNV(ST(1)), (Real)SvNV(ST(2)));
}
else if (items == 4) { // assuming Real
THIS->textureCoord((Real)SvNV(ST(1)), (Real)SvNV(ST(2)), (Real)SvNV(ST(3)));
}
else {
croak("%s", usage);
}
## XXX: one day when I am a big boy I will know how to typemap ColourValue OR Reals
void
ManualObject::colour(...)
CODE:
if (items == 2 && sv_isobject(ST(1)) && sv_derived_from(ST(1), "Ogre::ColourValue")) {
ColourValue *colour = (ColourValue *) SvIV((SV *) SvRV(ST(1))); // TMOGRE_IN
THIS->colour(*colour);
}
else if (items >= 4) {
Real a = 1.0f;
if (items == 5) a = (Real)SvNV(ST(4));
THIS->colour((Real)SvNV(ST(1)), (Real)SvNV(ST(2)), (Real)SvNV(ST(3)), a);
}
else {
croak("Usage: Ogre::ManualObject::colour(THIS, col) or (THIS, r, g, b [, a])\n");
}
void
ManualObject::index(uint16 idx)
void
ManualObject::triangle(uint16 i1, uint16 i2, uint16 i3)
void
ManualObject::quad(uint16 i1, uint16 i2, uint16 i3, uint16 i4)
ManualObjectSection *
ManualObject::end()
void
ManualObject::setMaterialName(size_t subindex, String name)
Mesh *
ManualObject::convertToMesh(String meshName, String groupName=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME)
CODE:
RETVAL = THIS->convertToMesh(meshName, groupName).getPointer();
OUTPUT:
RETVAL
void
ManualObject::setUseIdentityProjection(bool useIdentityProjection)
bool
ManualObject::getUseIdentityProjection()
void
ManualObject::setUseIdentityView(bool useIdentityView)
bool
ManualObject::getUseIdentityView()
void
ManualObject::setBoundingBox(const AxisAlignedBox *box)
C_ARGS:
*box
ManualObjectSection *
ManualObject::getSection(unsigned int index)
unsigned int
ManualObject::getNumSections()
String
ManualObject::getMovableType()
## const AxisAlignedBox & ManualObject::getBoundingBox()
Real
ManualObject::getBoundingRadius()
EdgeData *
ManualObject::getEdgeList()
bool
ManualObject::hasEdgeList()
## ShadowRenderableListIterator ManualObject::getShadowVolumeRenderableIterator(ShadowTechnique shadowTechnique, const Light *light, HardwareIndexBufferSharedPtr *indexBuffer, bool extrudeVertices, Real extrusionDist, unsigned long flags=0)